A comprehensive Learning Management System built with the MERN stack (MongoDB, Express, React, Node.js), featuring real-time communication, course management, and a responsive design embedded with PWA capabilities.
- User Authentication: Secure login and registration using JWT (JSON Web Tokens) and secure cookie storage.
- Role-Based Access: Specialized views and capabilities for students and administrators.
- Real-time Chat: Integrated socket.io for instant messaging between users.
- Course Management: Create, update, and manage course content (implied).
- Responsive Design: Fully responsive UI built with Tailwind CSS, optimized for mobile and desktop.
- PWA Support: Installable as a native-like app on mobile devices.
- Dark/Light Mode: User-preference persistence for theme selection.
- Interactive Dashboard: Analytics and visualization using Recharts.
- Framework: React (powered by Vite)
- State Management: Redux Toolkit
- Styling: Tailwind CSS
- Routing: React Router DOM
- Icons: Lucide React
- Real-time Communication: Socket.IO Client
- Charts: Recharts
- HTTP Client: Axios
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (with Mongoose)
- Authentication: JWT, BCryptJS
- Real-time Communication: Socket.IO
- Email Service: Nodemailer
lms/
βββ backend/ # Node.js/Express API server
β βββ config/ # Database and other configurations
β βββ controllers/ # Request handlers
β βββ models/ # Mongoose schemas
β βββ routes/ # API route definitions
β βββ utils/ # Utility functions
β βββ index.js # Entry point
βββ frontend/ # React application
β βββ public/ # Static assets
β βββ src/ # Source code
β β βββ components/ # Reusable UI components
β β βββ pages/ # Application views
β β βββ redux/ # State slices and store
β β βββ App.jsx # Main component
β βββ vite.config.js
βββ README.md # Project documentation- Node.js (v18+ recommended)
- MongoDB (Local or Atlas)
git clone https://github.com/Rampravsh/lms.git
cd lmsNavigate to the backend directory and install dependencies:
cd backend
npm installCreate a .env file in the backend directory with the following variables:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
NODE_ENV=development
# Add other necessary variables (e.g., mailer config) hereStart the backend server:
npm startOpen a new terminal, navigate to the frontend directory, and install dependencies:
cd frontend
npm installStart the development server:
npm run devThe application should now be running at http://localhost:5173 (or the port specified by Vite).
Contributions are welcome! Please feel free to submit a Pull Request.