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: admin@aarambh.edu
- Password: admin123
- Email: sarah.johnson@aarambh.edu
- Password: teacher123
- Email: alice.williams@student.aarambh.edu
- 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