LMS-MERN: A full-stack Learning Management System with Authentication, Role-based Access, Notes Management, Cloudinary Integration, and Syllabus Uploads.
Built with the tools and technologies:
π£ Live Demo: https://lms-learning-management-system.netlify.app/
- π Overview
- πΎ Features
- π§ Tech Stack
- π Project Structure
- π Getting Started
- π Project Roadmap
- π° Contributing
- π License
- π Acknowledgments
- π€ Connect
LMS-MERN is a full-featured Learning Management System for students and educators. It supports:
- Role-based access (Student, Teacher, Admin)
- Secure authentication (JWT, refresh tokens, OTP)
- Notes upload & approval
- Dynamic syllabus filters
- PDF previews with Cloudinary integration
- Dark/light theme support
- π€ User Authentication: Secure login/signup with JWT, OTP verification.
- π§βπ« Role Management: Admin, Teacher, Student support.
- π Notes Uploading & Downloading with unit structure.
- π Syllabus Filters: Based on branch, year, semester.
- πΌ PDF Preview Modal (Cloudinary-hosted)
- π Protected Routes with refresh token auto-renewal.
- βοΈ Cloudinary structured uploads.
Layer | Tech Used |
---|---|
Frontend | React.js + Vite, Tailwind CSS |
Backend | Node.js, Express.js |
Database | MongoDB + Mongoose |
Auth | JWT (Access + Refresh) + Cookies |
Cloud Storage | Cloudinary SDK |
Gmail for OTP mails |
See complete file tree in repo: LMS-MERN
LMS-MERN/
βββ Backend/
β βββ routes/, models/, config/, middleware/, utils/
β βββ index.js
βββ Frontend/
β βββ src/components/* (Admin, Notes, Auth, etc.)
β βββ public/, assets/, context/
β βββ main.jsx, App.jsx
βββ README.md
Before getting started with LMS-MERN, ensure your runtime environment meets the following requirements:
- Programming Language: JavaScript
- Package Manager: Npm
- Node.js β₯ 18
- npm β₯ 9
- MongoDB instance
- Cloudinary credentials
Install LMS-MERN using one of the following methods:
Build from source:
- Clone the LMS-MERN repository:
β― git clone https://github.com/abhishekkalme/LMS-MERN
- Navigate to the project directory:
β― cd LMS-MERN
- Install the project dependencies:
β― cd Backend && npm install
> cd Frontend && npm install
Run LMS-MERN using the following command:
Using npm
Β
β― # In one terminal
cd Backend && npm run dev
# In another
cd Frontend && npm run dev
Visit http://localhost:5173 in your browser.
Run the test suite using the following command:
Using npm
Β
β― npm test
-
Setup Authentication (JWT + OTP + Email)
-
PDF Uploading (Cloudinary with folder structure)
-
Admin Approval + Feedback
-
Role-based UI rendering
-
AI-based note summaries (Upcoming π)
-
Download Analytics Dashboard
- π¬ Join the Discussions: Share your insights, provide feedback, or ask questions.
- π Report Issues: Submit bugs or feature requests.
- π‘ Submit Pull Requests: Review open PRs and submit your own.
Contributing Guidelines
-
Fork the Repository: Start by forking the project repository to your github account.
-
Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/abhishekkalme/LMS-MERN.git cd LMS-MERN
-
Create a New Branch: Always create a new branch for your changes.
git checkout -b feature/your-feature-name
-
Make Your Changes: Implement the changes or fix the issue. Test thoroughly before committing.
-
Commit Your Changes: Commit with a clear message describing your updates.
git add . git commit -m "Add: Implemented feature XYZ"
-
Push to Your Fork on GitHub: Push your branch to your GitHub repository:
git push origin feature/your-feature-name
-
Open a Pull Request:
- Go to the original LMS-MERN repository.
- Click "Compare & pull request".
- Provide a meaningful PR title and description.
- Submit the pull request.
- Get Reviewed & Merged: Wait for maintainers to review your PR. Once approved, it will be merged into the main branch.. β Congratulations on your contribution!
This project is protected under the SELECT-A-LICENSE License. For more details, refer to the LICENSE file.
List any resources, contributors, inspiration, etc. here. React