A comprehensive Learning Management System with role-based access for Admins, Teachers, and Students.
- Browse and enroll in courses
- Submit assignments with AI detection
- Track grades and attendance
- Participate in discussion forums
- Receive real-time notifications
- View learning progress and badges
- Create and manage courses
- Create assignments with plagiarism detection
- Grade student submissions
- Mark attendance
- Post announcements
- Manage discussions
- View student analytics
- Manage users (students, teachers)
- Oversee all courses
- System-wide announcements
- View analytics and reports
- Database management
- Node.js 16+ installed
- MongoDB Atlas account
- Git installed
-
Clone the repository
git clone <repository-url> cd Aarambh
-
Install dependencies
# Install frontend dependencies npm install # Install backend dependencies cd server npm install
-
Configure environment variables
The
.envfile already exists in/server/.envwith MongoDB Atlas credentials. -
Whitelist your IP in MongoDB Atlas
β οΈ IMPORTANT- Go to MongoDB Atlas
- Navigate to Network Access
- Add your current IP address
- Wait 2-3 minutes
-
Initialize the database
cd server node quick-init-database.js -
Start the development servers
Backend (Terminal 1):
cd server npm run devFrontend (Terminal 2):
npm run dev
-
Access the application
- Frontend: http://localhost:5173
- Backend: http://localhost:3001
- Email:
[email protected] - Password:
admin123
- Email:
[email protected] - Password:
teacher123
- Email:
[email protected] - Password:
student123
The application uses MongoDB with 9 comprehensive collections:
- Users - Admin, Teachers, Students (role-based)
- Courses - Course content with modules and lessons
- Assignments - Tasks with AI detection and plagiarism check
- Submissions - Student work with grading workflow
- Discussions - Course forums with threaded replies
- Notifications - Real-time user alerts
- Attendance - Attendance tracking with statistics
- Grades - Comprehensive grade management with GPA
- Announcements - System and course-specific messages
π See DATABASE_STRUCTURE.md for detailed schema documentation.
- React 18 - UI framework
- TypeScript - Type safety
- Tailwind CSS - Styling
- Shadcn/ui - UI components
- Vite - Build tool
- Node.js - Runtime
- Express - Web framework
- MongoDB Atlas - Database
- Mongoose - ODM
- JWT - Authentication
- Bcrypt - Password hashing
- Nodemailer - Email service
Aarambh/
βββ src/ # Frontend source code
β βββ components/ # React components
β βββ services/ # API services
β βββ config/ # Configuration
β βββ styles/ # CSS styles
βββ server/ # Backend source code
β βββ config/ # Database & email config
β βββ controllers/ # Route controllers
β βββ middleware/ # Auth middleware
β βββ models/ # Mongoose models
β βββ routes/ # API routes
β βββ services/ # Business logic
β βββ server.js # Entry point
βββ DATABASE_STRUCTURE.md # Database documentation
βββ DATABASE_SETUP_GUIDE.md # Setup instructions
βββ DATABASE_DIAGRAM.md # Visual relationships
βββ README.md # This file
cd server
node quick-init-database.jsCreates all collections with sample data.
cd server
node clear-database.jsRemoves all data (requires confirmation).
cd server
node view-users.jsDisplay all users by role.
cd server
node test-connection.jsVerify MongoDB connectivity.
- DATABASE_SETUP_GUIDE.md - Complete setup instructions
- DATABASE_STRUCTURE.md - Detailed schema documentation
- DATABASE_DIAGRAM.md - Visual database relationships
- MONGODB_ATLAS_SETUP.md - MongoDB Atlas configuration
- USER_REGISTRATION_GUIDE.md - User registration process
- VOICE_ASSISTANT_GUIDE.md - Voice assistant features
- DEPLOYMENT_GUIDE.md - Deployment instructions for various platforms
- DEPLOYMENT_SUMMARY.md - Summary of deployment files and process
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production buildcd server
npm run dev # Start with nodemon (auto-reload)
npm start # Start production serverThe UI design is based on the Figma project: https://www.figma.com/design/zkzPr2Es2INclQCyS2RrFL/Learning-Management-System-UI-Design
- Pink Accent (#FF69B4) for key UI elements
- Persistent Navigation - Always visible
- Theme Support - Light and dark modes
- Responsive Design - Mobile-friendly
Problem: "Could not connect to MongoDB" Solution:
- Whitelist your IP in MongoDB Atlas
- Check
.envfile has correct URI - Verify internet connection
Problem: "Port 3001 already in use" Solution:
# Find and kill the process
lsof -ti:3001 | xargs kill -9Problem: Module not found Solution:
# Clean install
rm -rf node_modules package-lock.json
npm installContributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
-
Prepare for deployment:
# Make sure all dependencies are installed npm install -
Deploy to Vercel:
- Install Vercel CLI:
npm install -g vercel - Login to Vercel:
vercel login - Deploy:
vercel --prod
OR (on Windows):
npm run deploy:windows
OR
- Connect your GitHub repository to Vercel
- Select your repository
- Configure the project with these settings:
- Framework Preset:
Vite - Root Directory:
./ - Build Command:
npm run build - Output Directory:
build(Note: This project usesbuildinstead of the defaultdist) - Install Command:
npm install
- Framework Preset:
- Install Vercel CLI:
-
Environment Variables: Set the following environment variables in your Vercel project settings:
VITE_API_BASE_URL=https://your-backend-url.com/api
Since Vercel is primarily for frontend deployments, you'll need to deploy the backend separately. Here are some options:
- Create an account at Render
- Create a new Web Service
- Connect your GitHub repository
- Configure the service:
- Name:
aarambh-backend - Region: Select the closest region
- Branch:
main - Root Directory:
server - Environment:
Node - Build Command:
npm install - Start Command:
npm start
- Name:
- Add environment variables in the Dashboard:
PORT=3001 MONGO_URI=your_mongodb_atlas_uri JWT_SECRET=your_jwt_secret GMAIL_USER=your_gmail_address GMAIL_PASS=your_app_password ALLOWED_ORIGINS=https://your-vercel-frontend.vercel.app
- Create an account at Railway
- Create a new project
- Provision a new service using your GitHub repository
- Set the root directory to
server - Configure environment variables in the Railway dashboard
- Create an account at Heroku
- Install Heroku CLI
- Login:
heroku login - Create app:
heroku create your-app-name - Set buildpack:
heroku buildpacks:set heroku/nodejs - Deploy:
git subtree push --prefix server heroku main - Set environment variables:
heroku config:set KEY=VALUE
- Update the frontend environment variable
VITE_API_BASE_URLto point to your deployed backend URL - Redeploy the frontend with the updated environment variable
- Test the connection between frontend and backend
- Initialize the database on your deployed backend if needed
This project is licensed under the MIT License.
- Original Figma design by the LMS UI Design team
- MongoDB Atlas for database hosting
- Shadcn/ui for beautiful components
- The open-source community
For issues and questions:
- Check the documentation files
- Review troubleshooting section
- Open an issue on GitHub
- Contact the development team
Built with β€οΈ for education
Documentation β’ Setup Guide β’ Database Diagram