A comprehensive Learning Management System built with the MERN stack (MongoDB, Express.js, React, Node.js). This platform provides a robust solution for online education, featuring course management, user authentication, content delivery, and learning progress tracking.
- Course creation and management
- User authentication and authorization
- Content organization (Courses β Modules β Lessons)
- Progress tracking
- Interactive learning interface
- Role-based access (Admin, Instructor, Student)
- Google OAuth integration
- Profile customization
- Course enrollment tracking
- Video content delivery via BunnyCDN
- Course categorization and tagging
- Advanced search functionality
- Progress monitoring
- Interactive assessments
- Responsive design
- Dark mode support
- Real-time updates
- Secure file handling
- API security implementation
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose
- Authentication: JWT & Passport
- Storage: BunnyCDN
- Framework: React 18
- Build Tool: Vite
- Styling: TailwindCSS
- State Management: Redux Toolkit
- Router: React Router DOM
- Framer Motion (animations)
- React Hot Toast (notifications)
- Axios (API calls)
- ESLint (code quality)
- Multer (file uploads)
project/ βββ Backend/ β βββ src/ β β βββ controllers/ β β βββ middleware/ β β βββ models/ β β βββ routes/ β β βββ utils/ β βββ server.js β βββ package.json β βββ Frontend/ βββ src/ β βββ components/ β βββ pages/ β βββ store/ β βββ config/ β βββ assets/ βββ index.html βββ package.json
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
- BunnyCDN account
- Navigate to backend directory:
cd Backend- Install dependencies:
npm install- Create
.envfile:
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
BUNNY_STORAGE_API_KEY=your_bunny_key
BUNNY_STORAGE_ZONE_NAME=your_zone_name
BUNNY_CDN_URL=your_cdn_url- Start the server:
npm start- Navigate to frontend directory:
cd Frontend- Install dependencies:
npm install- Create
.envfile:
VITE_API_BASE_URL=http://localhost:3000/api- Start the development server:
npm run dev- JWT authentication
- Password hashing with bcrypt
- Role-based access control
- Secure file upload
- Input validation
- CORS configuration
- Rate limiting
POST /api/auth/register- Register userPOST /api/auth/login- User loginGET /api/auth/google- Google OAuth
GET /api/courses- Get all coursesPOST /api/courses/create- Create courseGET /api/courses/:id- Get course by IDPUT /api/courses/:id- Update courseDELETE /api/courses/:id- Delete course
GET /api/users/profile- Get user profilePUT /api/users/profile- Update profileGET /api/users/courses- Get user's courses
/- Home page/login- Login page/register- Registration page/courses- Course listing/courses/:id- Course details/profile- User profile/dashboard- User dashboard
- Fork the repository
- Create your 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
This project is licensed under the MIT License - see the LICENSE file for details
- Your Name - Initial work - YourGithub
- Hat tip to anyone whose code was used
- Inspiration
- etc
This unified README provides a comprehensive overview of your entire project, making it easier for developers to understand and work with both the frontend and backend components. It includes all necessary setup instructions, available features, API documentation, and contribution guidelines.
You can customize the content further based on your specific project needs, such as adding more detailed setup instructions, troubleshooting guides, or specific configuration requirements.