This is a prototype of a mini e-learning platform designed to demonstrate core functionalities of an online learning system. Built using vanilla HTML, CSS, and JavaScript, it provides a clean, responsive interface for users to explore courses, track progress, and manage their learning journey.
- User Authentication: Simple username-based login system with local storage persistence
- Course Catalog: Browse available courses with detailed descriptions and categories
- Lesson Management: View course-specific lessons with individual completion tracking
- Progress Tracking: Visual progress bars showing completion percentage for each course
- Search & Filter: Real-time search functionality and category-based filtering
- Responsive Design: Mobile-first approach with adaptive layouts
- Interactive Elements: Hover effects and smooth transitions for enhanced usability
- Intuitive Navigation: Easy navigation between login, course list, and detail views
- Local Storage: Client-side data persistence for user sessions and progress
- Dynamic Rendering: JavaScript-powered content generation and updates
- Modular Architecture: Separated concerns with dedicated HTML, CSS, and JS files
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Styling: Custom CSS with CSS Grid and Flexbox for layouts
- Data Management: Browser Local Storage API
- Browser Compatibility: Modern browsers with ES6 support
mini-elearning-platform/
├── index.html # Login page
├── courses.html # Course listing page
├── course.html # Course detail page
├── script.js # Application logic
├── style.css # Styling and responsive design
└── README.md # Project documentation
- Modern web browser (Chrome, Firefox, Safari, Edge)
- No additional dependencies required
-
Download/Clone the Repository
git clone <repository-url> cd mini-elearning-platform
-
Launch the Application
- Open
index.htmlin your preferred web browser - Alternatively, serve the files using a local web server for better compatibility
- Open
-
Access the Platform
- Enter any username to log in
- Start exploring courses and tracking progress
- Login: Enter a username on the login page
- Browse Courses: View available courses on the main dashboard
- Search & Filter: Use the search bar or category dropdown to find specific courses
- View Details: Click "View Details" on any course card
- Track Progress: Monitor completion status with visual progress indicators
- Mark Completion: Toggle lesson completion status individually
- Use the "Back to Courses" button to return to the main listing
- Logout functionality clears user session data
{
id: number,
title: string,
description: string,
category: string,
lessons: [
{
id: number,
title: string,
completed: boolean
}
]
}- User Session: Stored as
vibeUserin localStorage - Course Completion: Array of completed course IDs
- Lesson Progress: Object mapping course IDs to arrays of completed lesson IDs
- Chrome 60+
- Firefox 55+
- Safari 12+
- Edge 79+
- Modular JavaScript functions for maintainability
- Semantic HTML structure
- CSS custom properties for consistent theming
- Responsive breakpoints for mobile optimization
- Lightweight vanilla JavaScript implementation
- Minimal DOM manipulation for optimal rendering
- Efficient local storage usage
- User registration and profile management
- Course enrollment system
- Quiz and assessment modules
- Discussion forums
- Certificate generation
- Admin dashboard for content management
- Backend API integration
- Database persistence
- User authentication with JWT
- Progressive Web App (PWA) capabilities
- Accessibility enhancements (ARIA labels, keyboard navigation)
This is an educational prototype. For contributions:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built as part of VibeCoding Week 1 assignment
- Demonstrates fundamental web development concepts
- Inspired by modern e-learning platforms
Note: This is a frontend-only prototype using local storage. For production use, implement proper backend services and secure authentication.
