Skip to content

LMS-MERN: A full-stack Learning Management System with Authentication, Role-based Access, Notes Management, Cloudinary Integration, and Syllabus Uploads.

License

Notifications You must be signed in to change notification settings

abhishekkalme/LMS-MERN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

84 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“’JIT Learning - Full-Stack Learning Management System

LMS-MERN: A full-stack Learning Management System with Authentication, Role-based Access, Notes Management, Cloudinary Integration, and Syllabus Uploads.

License Last Commit Top Language Language Count

Built with the tools and technologies:

React Vite TailwindCSS Netlify Status Node.js Express MongoDB Tailwind CSS Cloudinary NPM


App Screenshot

πŸ’£ Live Demo: https://lms-learning-management-system.netlify.app/


πŸ”— Quick Links


πŸ“ Overview

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

πŸ‘Ύ Features

  • πŸ‘€ 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.

🧠 Tech Stack

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
Email Gmail for OTP mails

πŸ“ Project Structure

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

πŸš€ Getting Started

β˜‘οΈ Prerequisites

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

βš™οΈ Installation

Install LMS-MERN using one of the following methods:

Build from source:

  1. Clone the LMS-MERN repository:
❯ git clone https://github.com/abhishekkalme/LMS-MERN
  1. Navigate to the project directory:
❯ cd LMS-MERN
  1. Install the project dependencies:

Using npm Β 

❯ cd Backend && npm install
> cd Frontend && npm install

πŸ€– Usage

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.

πŸ§ͺ Testing

Run the test suite using the following command: Using npm Β 

❯ npm test

πŸ“Œ Project Roadmap

  • 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


πŸ”° Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.

  2. 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
  3. Create a New Branch: Always create a new branch for your changes.

    git checkout -b feature/your-feature-name
    
  4. Make Your Changes: Implement the changes or fix the issue. Test thoroughly before committing.

  5. Commit Your Changes: Commit with a clear message describing your updates.

    git add . 
    git commit -m "Add: Implemented feature XYZ"
  6. Push to Your Fork on GitHub: Push your branch to your GitHub repository:

    git push origin feature/your-feature-name
    
  7. 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.
  1. Get Reviewed & Merged: Wait for maintainers to review your PR. Once approved, it will be merged into the main branch.. βœ…Congratulations on your contribution!
Contributor Graph

Contributors


πŸŽ— License

This project is protected under the SELECT-A-LICENSE License. For more details, refer to the LICENSE file.


πŸ™Œ Acknowledgments

List any resources, contributors, inspiration, etc. here. React


🀝 Connect


About

LMS-MERN: A full-stack Learning Management System with Authentication, Role-based Access, Notes Management, Cloudinary Integration, and Syllabus Uploads.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages