Learnify is a modern and comprehensive online learning platform designed to bridge the gap between traditional education and digital learning. Built with cutting-edge web technologies, it offers a seamless and interactive learning experience for students, instructors, and administrators with powerful role-based features and intuitive course management.
🎯 Platform Overview
Learnify serves as a complete educational ecosystem where:
- Students can discover, enroll in, and access courses with video lectures
- Instructors can create, manage, and deliver comprehensive courses
- Administrators can oversee the entire platform and manage users
The platform emphasizes user experience, security, and scalability, making it suitable for educational institutions, training companies, or individual educators.
👥 User Roles & Capabilities
🎓 Students
- Secure Registration & Login: JWT-based authentication ensures safe access to the platform
- Course Discovery: Browse available courses with detailed descriptions and instructor information
- Enrollment System: Enroll and unenroll from courses with a single click
- Video Learning: Access high-quality video lectures for enrolled courses
- Progress Tracking: Monitor learning progress and course completion status
- Profile Management: Update personal information and change passwords securely
👨🏫 Instructors
- Course Creation: Build comprehensive courses with detailed descriptions and learning objectives
- Lecture Management: Upload and organize video lectures for each course
- Student Management: View enrolled students and track their progress
- Content Updates: Modify course content, descriptions, and lecture materials
- Analytics: Access insights on course popularity and student engagement
👨💼 Administrators
- User Management: Create, update, and manage all user accounts across the platform
- Platform Oversight: Monitor overall platform activity and user engagement
- Course Moderation: Review and approve courses created by instructors
- System Configuration: Manage platform settings and configurations
- Analytics Dashboard: Access comprehensive reports on platform usage and performance
✨ Core Features
🔐 Advanced Authentication System
- JWT-based secure authentication with role-based access control
- Password hashing using bcryptjs for enhanced security
- Protected routes ensuring only authorized users access specific features
📚 Comprehensive Course Management
- Full CRUD operations for courses (Create, Read, Update, Delete)
- Rich course descriptions with learning objectives and prerequisites
- Instructor assignment and course categorization
- Real-time course availability and enrollment status
🎥 Video Lecture System
- Secure video upload and storage using multer
- Organized lecture structure within courses
- Progress tracking for individual lectures
- Responsive video player for optimal viewing experience
📊 Smart Dashboard
- Personalized dashboard for each user role
- Real-time activity tracking and notifications
- Course progress visualization
- Quick access to enrolled courses and management tools
🎨 Modern User Interface
- Responsive design that works seamlessly across all devices
- Intuitive navigation with role-specific menus
- Clean and modern UI built with Tailwind CSS
- Smooth animations and transitions for enhanced user experience
🛠️ Technology Stack
Frontend Technologies
- ⚛️ React.js – Component-based UI development with hooks and modern patterns
- 🚀 React Router – Client-side navigation and route protection
- 🌐 Axios – HTTP client for API communication with interceptors
- 🔥 React Hot Toast – Beautiful notification system for user feedback
- 🎨 Tailwind CSS – Utility-first CSS framework for rapid UI development
- 🎭 React Icons – Comprehensive icon library for consistent design
Backend Technologies
- 🖥️ Node.js – JavaScript runtime for server-side development
- 🌍 Express.js – Fast and minimalist web framework
- 🗃️ Mongoose – Elegant MongoDB object modeling with schema validation
- 🔒 bcryptjs – Secure password hashing and verification
- 🔑 jsonwebtoken (JWT) – Stateless authentication and authorization
- 📦 multer – Middleware for handling multipart/form-data (file uploads)
- ⚙️ dotenv – Environment variable management for configuration
Database & Storage
- 🏢 MongoDB – NoSQL database for flexible data storage and scalability
- 📁 File System – Local storage for uploaded videos and course materials
🚀 Getting Started
🔧 Prerequisites
🎯 Backend Setup
-
Clone the repository:
git clone https://github.com/siddharth9300/learnify.git cd learnify -
Navigate to backend directory:
cd backend -
Install dependencies:
npm install -
Create environment file: Create a
.envfile in thebackenddirectory:MONGO_URI=mongodb://localhost:27017/learnify JWT_SECRET=your_super_secret_jwt_key_here ADMIN_TOKEN=your_admin_access_token PORT=5000 -
Start the backend server:
npm start
🎨 Frontend Setup
-
Navigate to frontend directory:
cd frontend -
Install dependencies:
npm install -
Start the development server:
npm run dev -
Access the application: Open http://localhost:3000 in your browser
📁 Project Structure
learnify/
├── backend/ # Backend API Server
│ ├── controllers/ # Route controllers
│ ├── models/ # MongoDB models
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ ├── uploads/ # File uploads storage
│ └── server.js # Main server file
├── frontend/ # React Frontend
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── context/ # React context
│ │ ├── utils/ # Utility functions
│ │ └── App.js # Main app component
│ └── public/ # Static assets
├── README.md
└── package.json
🔗 API Endpoints
Authentication Routes
POST /api/users/register– Register a new userPOST /api/users/login– User login and JWT token generationGET /api/users/profile– Get authenticated user profilePUT /api/users/change-password/:userId– Change user password
User Management Routes
GET /api/users/:userId– Get user by IDPUT /api/users/:userId– Update user informationDELETE /api/users/:userId– Delete user account
Course Management Routes
GET /api/courses– Get all available coursesPOST /api/courses– Create new course (Instructor only)PUT /api/courses/:courseId– Update course details (Instructor only)DELETE /api/courses/:courseId– Delete course (Instructor only)
Enrollment Routes
POST /api/courses/enroll– Enroll in a course (Student only)POST /api/courses/unenroll– Unenroll from a course (Student only)
Lecture Management Routes
GET /api/courses/:courseId/lectures– Get course lectures (Protected)POST /api/courses/:courseId/lectures– Add lecture to course (Instructor only)
Dashboard Routes
GET /api/dashboard– Get personalized dashboard data (Protected)
🔒 Security Features
Authentication & Authorization
- JWT-based stateless authentication
- Role-based access control (Student, Instructor, Admin)
- Protected API endpoints with middleware validation
- Secure password hashing with bcryptjs
Data Protection
- Environment variables for sensitive configuration
- Input validation and sanitization
- CORS configuration for secure cross-origin requests
- File upload security with type and size validation
Best Practices
- No sensitive data stored in client-side storage
- Secure API communication with proper error handling
- Regular token expiration and refresh mechanisms
- Comprehensive input validation on both client and server
🎯 Usage Scenarios
For Students
- Registration & Login: Create account and access the platform securely
- Course Discovery: Browse available courses with detailed information
- Enrollment: Enroll in courses of interest with one-click functionality
- Learning: Access video lectures and track progress
- Profile Management: Update personal information and change passwords
For Instructors
- Course Creation: Build comprehensive courses with detailed descriptions
- Content Management: Upload and organize video lectures
- Student Interaction: Monitor enrolled students and their progress
- Course Updates: Modify course content and descriptions as needed
For Administrators
- User Management: Oversee all user accounts and permissions
- Platform Monitoring: Track overall platform activity and usage
- Content Moderation: Review and approve instructor-created courses
- System Administration: Configure platform settings and manage resources
🚀 Future Enhancements
- Real-time Chat: Live communication between students and instructors
- Assignment System: Submit and grade assignments within courses
- Quiz & Assessment: Interactive quizzes and progress assessments
- Certificate Generation: Automated certificate creation upon course completion
- Payment Integration: Monetization features for premium courses
- Mobile Application: Native mobile apps for iOS and Android
- Advanced Analytics: Detailed learning analytics and insights
- Video Streaming: Optimized video delivery with CDN integration
🤝 Contributing
Contributions are welcome! Here's how you can help improve Learnify:
- Fork the repository 🍴
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a pull request 🚀
Development Guidelines
- Follow existing code style and conventions
- Write comprehensive tests for new features
- Update documentation for any API changes
- Ensure all tests pass before submitting PR
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙋 Support & Contact
- GitHub Issues: Report bugs or request features
- Email: siddharthjain8276@gmail.com
- LinkedIn: Connect with me
Ready to transform education? Check out the live demo and explore the source code to see how Learnify is revolutionizing online learning! 🚀