A comprehensive full-stack web application built with the MERN stack for managing courses, assignments, attendance, and grades in educational institutions.
This system provides complete functionality for three types of users with role-based access control:
- Free Registration: No cost account creation with email verification
- Course Enrollment: Browse and enroll in approved courses with capacity validation
- Course Content Access: View course materials (PDFs, videos, notes) after enrollment
- Assignment Submission: Submit assignments with file uploads and text submissions
- Grade Tracking: Monitor academic performance, GPA, and course progress
- Attendance Monitoring: View personal attendance records and percentages
- Messaging: Communicate directly with instructors
- Dashboard: Personalized dashboard showing upcoming deadlines, recent grades, and course progress
- Document Verification: Upload credentials for admin approval
- Course Management: Create, edit, and manage course content and materials
- Content Upload: Upload course materials (PDFs, videos, documents)
- Class Scheduling: Set class schedules and manage course timelines
- Attendance Management: Mark and track student attendance with detailed reports
- Assignment Creation: Create assignments with rubrics, file restrictions, and deadlines
- Grading System: Grade submissions with feedback and rubric-based scoring
- Student Communication: Message students and provide announcements
- Analytics Dashboard: View course performance metrics and student analytics
- User Management: Approve instructor accounts and manage all user roles
- Instructor Verification: Review and approve instructor credentials
- Course Oversight: Approve course listings and monitor course quality
- System Analytics: Comprehensive reports on platform usage and performance
- Account Management: Activate/deactivate accounts and manage permissions
- Platform Analytics: View system-wide statistics and performance metrics
- React.js - Modern UI framework with hooks
- React Router - Client-side routing and navigation
- Tailwind CSS - Utility-first CSS framework for responsive design
- Headless UI - Accessible UI components
- Axios - HTTP client for API communication
- React Hot Toast - Toast notifications
- Heroicons - Beautiful SVG icons
- Node.js - JavaScript runtime environment
- Express.js - Fast web application framework
- MongoDB - NoSQL database for flexible data storage
- Mongoose - ODM for MongoDB with validation
- JWT - JSON Web Tokens for secure authentication
- bcryptjs - Password hashing for security
- Express Validator - Input validation and sanitization
- Multer - File upload handling middleware
- Node.js (v14 or higher)
- MongoDB (local installation or MongoDB Atlas)
- npm or yarn package manager
- Navigate to backend directory:
cd backend- Install dependencies:
npm install- Create environment file (.env):
NODE_ENV=development
PORT=5000
MONGODB_URI=mongodb://127.0.0.1:27017/edumanage_db
JWT_SECRET=your_super_secret_jwt_key_here_make_it_long_and_secure
JWT_EXPIRES_IN=7d
# Admin User (for initial setup)
ADMIN_EMAIL=admin@edumanage.com
ADMIN_PASSWORD=SecureAdminPassword123!
ADMIN_FIRST_NAME=System
ADMIN_LAST_NAME=Administrator
# Email Configuration (Optional)
EMAIL_FROM=noreply@edumanage.com
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_app_password
# File Upload Settings
MAX_FILE_SIZE=10485760
UPLOAD_PATH=./uploads
CLIENT_URL=http://localhost:3000- Create admin user:
npm run create-admin- Start the backend server:
npm run dev- Navigate to frontend directory:
cd frontend- Install dependencies:
npm install- Start the development server:
npm startThe application will be available at http://localhost:3000
- JWT-based authentication with secure token management
- Role-based access control (Student, Instructor, Admin)
- Password hashing using bcryptjs with salt rounds
- Instructor verification system with document upload and admin approval
- Session management with automatic token refresh
- User Management: Comprehensive user profiles with role-based permissions and verification status
- Course System: Hierarchical course structure with enrollment tracking and approval workflow
- Assignment Workflow: Complete assignment lifecycle from creation to grading with file handling
- Attendance Tracking: Detailed attendance records with percentage calculations and reporting
- Grade Management: Flexible grading system with GPA calculations and progress tracking
- Student Registration: Free and immediate account activation
- Instructor Verification: Document upload requirement with admin approval process
- Admin Oversight: Complete control over user approval and system management
- Capacity Management: Automatic enrollment limits with real-time availability
- Approval Workflow: Admin approval required for course activation
- Enrollment Validation: Prevents duplicate enrollments and capacity overflow
- File Upload Support: Multiple file types with size restrictions and validation
- Text Submissions: Rich text support for written assignments
- Late Submission Handling: Configurable late penalties and deadline management
- Submission History: Complete audit trail of all submissions with timestamps
- Real-time Tracking: Mark attendance with multiple status options (Present, Absent, Late, Excused)
- Automated Calculations: Automatic attendance percentage computation
- Historical Records: Complete attendance history with analytics and reporting
- Internal Messaging: Secure messaging between students and instructors
- Role-based Communication: Appropriate messaging permissions based on user roles
- Notification System: Real-time updates for important events and deadlines
- Input Validation: Comprehensive validation using Express Validator
- File Upload Security: Restricted file types, size limits, and secure storage
- Authentication Middleware: Protected routes with role verification
- Data Encryption: Bcrypt password hashing with secure salt rounds
- Role-based Access: Granular permissions based on user roles and verification status
- Mobile-First Approach: Optimized for all device sizes
- Intuitive Navigation: Clean and organized interface with role-based menus
- Accessible Components: ARIA-compliant UI elements
- Fast Loading: Optimized performance with efficient data loading
- Role-specific Dashboards: Customized views for students, instructors, and admins
- Real-time Statistics: Live updates on course progress and performance
- Visual Analytics: Charts and progress indicators for better data understanding
- Performance Metrics: Detailed insights into academic progress and system usage
POST /api/auth/register- User registration (students: immediate, instructors: pending approval)POST /api/auth/login- User login with role verificationGET /api/auth/me- Get current user profile and verification statusPUT /api/auth/profile- Update user profile information
GET /api/courses- List courses with filtering and approval statusPOST /api/courses- Create new course (instructors only, requires approval)GET /api/courses/:id- Get course details with enrollment informationPUT /api/courses/:id/approve- Approve course (admin only)
POST /api/enrollments- Enroll in approved courseGET /api/enrollments/student/:id- Get student enrollments with progressDELETE /api/enrollments/:id- Drop from course
GET /api/assignments- Get user's assignments based on rolePOST /api/assignments- Create assignment (instructors only)GET /api/assignments/:id- Get assignment details and submission statusPOST /api/submissions- Submit assignment with file handling
GET /api/users/pending-approval- Get pending instructor verificationsPUT /api/users/:id/approve- Approve instructor accountGET /api/admin/users- Comprehensive user management interface
- Set up production MongoDB database with proper indexes
- Configure environment variables for production security
- Set up file storage system for uploaded content
- Configure email service for notifications and verification
- Environment variables secured
- Database connection with authentication
- File upload directories with proper permissions
- HTTPS enabled for production
- Rate limiting configured
- Input validation on all endpoints
- Registration: Free account creation with email verification
- Course Discovery: Browse approved courses with detailed information
- Enrollment: Enroll in courses with capacity validation
- Learning: Access course materials, submit assignments, track attendance
- Progress Tracking: Monitor grades, GPA, and overall academic progress
- Registration: Account creation with document upload requirement
- Verification: Admin review and approval of credentials
- Course Creation: Build courses with materials, schedules, and requirements
- Teaching: Manage enrollments, create assignments, mark attendance
- Assessment: Grade submissions, provide feedback, track student progress
- User Management: Review and approve instructor applications
- Course Oversight: Approve course listings and monitor quality
- System Monitoring: Track platform usage and performance metrics
- Quality Control: Ensure educational standards and user satisfaction
- User Base: Students (unlimited free), Verified Instructors, System Administrators
- Course Capacity: Unlimited courses with enrollment limits
- File Handling: Secure upload/download with type restrictions
- Performance: Optimized for educational workflows
- Scalability: Designed for institutional growth
EduManage - Complete Course Management Solution for Modern Education
Empowering students, supporting instructors, enabling administrators