This project is a full-stack Learning Management System (LMS). It helps organizations manage courses, track student progress, and provide educational materials in a secure and organized way.
The system is built with a focus on ease of use, security, and detailed reporting.
- User Management: Support for multiple roles including Super Admin, Admin, Trainer, and Learner.
- Course & Enrollment: Tools to create courses and manage student enrollments.
- Knowledge Base: A library for articles and documents to help students learn.
- Quizzes: Integrated assessments to test knowledge after completing modules.
- Certifications: Automated PDF certificate generation for students who finish courses.
- Reports & Analytics: Visual charts to track course engagement and user activity.
- Audit Logs: Every administrative action is recorded for security and accountability.
- Notifications: Automated emails and system alerts for reminders and updates.
- Node.js & Express: Handles the server logic and API requests.
- MongoDB: A database used to store all user and course information.
- JWT (JSON Web Tokens): Used for secure user login and session management.
- Bcrypt: Encrypts user passwords to ensure account security.
- Nodemailer: Sends automated emails for password resets and system notifications.
- React: Used to build a responsive and modern user interface.
- Vite: A fast tool for building and running the frontend application.
- Tailwind CSS: A styling framework used for a clean and consistent design.
- Recharts: Provides charts and graphs for the reporting dashboard.
- jsPDF & html2canvas: Tools used to generate downloadable PDF certificates.
backend/: Contains the server code, database models, and API routes.lms-frontend/: Contains the React application and user interface components.
- Node.js: Install version 16 or higher.
- MongoDB: You need a running MongoDB instance (local or cloud-based).
- Go to the backend folder:
cd backend - Install the required packages:
npm install
- Create a
.envfile in thebackendfolder with these settings:PORT=5000 MONGO_URI=mongodb://localhost:27017/lms_database JWT_SECRET=your_secret_key SMTP_HOST=your_smtp_host SMTP_PORT=587 SMTP_USER=your_email SMTP_PASS=your_password
- Start the server:
npm start
- Go to the frontend folder:
cd lms-frontend - Install the required packages:
npm install
- Start the application:
The application will be available at
npm run dev
http://localhost:5173.
The system seeds a default Super Admin account when first started.
- Email:
superadmin@lms.com - Password:
Admin@123
| Role | Permissions |
|---|---|
| Super Admin | Full control over the entire system, including user deletion. |
| Admin | Manages users, courses, and views system reports. |
| Trainer | Creates courses, manages content, and tracks student progress. |
| Learner | Enrolls in courses, takes quizzes, and earns certificates. |
The backend includes several scripts for database management and initial setup:
seed_questions.js: Populates the database with initial quiz questions.seed_kb_library.js: Sets up the initial knowledge base articles.fix_accounts.js: A utility script to repair or update user accounts.debug_trainer.js: Helps in debugging trainer-specific permissions or data.
To run a script, navigate to the backend folder and use:
node <script_name>.jsMade for the Naan Mudhalvan - IBM Full Stack Development Internship provided by AdroIT Technologies Pvt. Ltd.