A sophisticated web application for creating and delivering interactive multimedia training modules. Build engaging educational experiences by placing interactive hotspots on images and guiding learners through timeline-driven sequences.
The Interactive Learning Hub allows content creators to transform static images into dynamic, interactive learning experiences. Users can:
- Create Interactive Modules: Add clickable hotspots to images with rich multimedia content
- Build Timeline Sequences: Guide learners through step-by-step experiences with 17+ interaction types
- Deliver Engaging Content: Present information through videos, audio, quizzes, and visual effects
- Support Multiple Devices: Responsive design optimized for both desktop and mobile
- Visual Hotspot Editor: Drag-and-drop interface for placing interactive markers
- Rich Media Integration: Videos (MP4, YouTube), audio files, images, and text
- Timeline Builder: Create sequential learning experiences with multiple interaction types
- Mobile-Responsive Editing: Simplified mobile interface for content creation
- Real-time Preview: Test learning modules as you build them
- Interactive Hotspots: Clickable markers with customizable colors, sizes, and descriptions
- Guided Navigation: Step-by-step timeline with progress tracking
- Multiple Interaction Types:
- Show/hide content and pulse animations
- Spotlight effects and pan/zoom to specific areas
- Video modals and audio narration
- Interactive quizzes with multiple choice answers
- YouTube integration with start/end times
- Self-Paced Learning: Learners control timing and can review previous steps
- Cross-Device Compatibility: Automatic scaling between desktop and mobile
- Real-time Data Sync: Firebase backend with live updates
- Performance Optimized: Throttled calculations and memoized components
- Accessibility Features: Keyboard navigation and screen reader support
- Node.js 18+ and npm
- Firebase project (for backend)
- Modern web browser
# Clone the repository
git clone <repository-url>
cd interactive_learning
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Add your Firebase configuration
# Start development server
npm run dev
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run test # Run test suite
npm run test:ui # Run tests with UI
- React 18 with TypeScript for type-safe component development
- Vite for fast development and optimized builds
- Tailwind CSS for responsive styling and design system
- Custom Hooks for mobile detection, touch gestures, and positioning
- Firebase Firestore for real-time NoSQL database
- Firebase Storage for media file hosting
- Firebase Hosting for web application deployment
- Vitest for comprehensive testing
- TypeScript for enhanced developer experience
- ESLint & PostCSS for code quality
- Start New Project: Click "Create New Project" and add title/description
- Upload Background: Add the base image learners will explore
- Add Hotspots: Click on the image to place interactive markers
- Configure Content: Set hotspot titles, descriptions, and multimedia
- Build Timeline: Create guided learning sequences
- Test & Publish: Preview the experience and save when ready
- Corporate Training: Equipment walkthroughs, safety procedures
- Educational Content: Anatomy lessons, historical timelines, scientific processes
- Product Demos: Feature highlights, user onboarding flows
- Museum Exhibits: Digital interactive displays and virtual tours
- Technical Documentation: Step-by-step procedures with visual guidance
src/client/components/
├── App.tsx # Main application shell
├── InteractiveModule.tsx # Core learning module container
├── HotspotViewer.tsx # Individual hotspot rendering
├── HorizontalTimeline.tsx # Step-by-step navigation
├── MediaModal.tsx # Video/audio/image modals
├── EditorToolbar.tsx # Content creation tools
└── Mobile*Components # Mobile-optimized interfaces
src/lib/
├── firebaseApi.ts # Database operations
├── firebaseProxy.ts # API abstraction layer
├── dataSanitizer.ts # Input validation & security
└── safeMathUtils.ts # Mathematical operations
- Create a Firebase project at console.firebase.google.com
- Enable Firestore Database and Storage
- Add your Firebase config to
.env
:
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=123456789
VITE_FIREBASE_APP_ID=your_app_id
VITE_FIREBASE_*
: Firebase configurationNODE_ENV
: Development/production mode- Additional configuration options in
vite.config.ts
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For questions, issues, or feature requests:
- Create an issue on GitHub
- Check the documentation in the
/docs
folder - Review the component examples in
/src/client/components
Interactive Learning Hub - Transforming static content into engaging, interactive educational experiences.
This project uses Claude Code automation for PR reviews and continuous integration.