A complete web platform for coaching institute management built with React and Node.js. This application handles everything from student enrollment to video lectures, quizzes, and contests.
┌───────────────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ │ │ │ │ │ │
│ │ Front-end │ │ Back-end │ │ Database │ │
│ │ │ │ │ │ │ │
│ │ ReactJS │◄────►│ NodeJS │◄────►│ MongoDB │ │
│ │ │ │ │ │ │ │
│ │UI Components│ │ ExpressJS │ │ Collections │ │
│ │ │ │ │ │ │ │
│ │ API calls │ │API endpoints│ │ Documents │ │
│ │ │ │ │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
└───────────────────────────────────────────────────────────────────┘
erDiagram
Users ||--o{ QuizResults : takes
Users ||--o{ ContestResults : participates
Users ||--o{ Enrollments : submits
Users ||--o{ DemoBookings : books
Users ||--o{ Videos : uploads
Courses ||--o{ Videos : contains
Courses ||--o{ Enrollments : enrolls_in
Contests ||--o{ ContestResults : has
Users {
ObjectId _id PK
String name
String email UK
String password
String role
String phone
String address
Number xp
DateTime createdAt
DateTime updatedAt
}
Courses {
ObjectId _id PK
String title UK
String description
String category
Number price
String duration
String level
Boolean isActive
DateTime createdAt
DateTime updatedAt
}
Videos {
ObjectId _id PK
String title
String description
String cloudinaryId
String videoUrl
String hlsUrl
String thumbnail
Number duration
ObjectId courseId FK
String class
String chapter
ObjectId uploadedBy FK
Number views
String status
DateTime createdAt
DateTime updatedAt
}
Questions {
ObjectId _id PK
String question
Array options
String correctAnswer
String class
String chapter
Boolean isActive
DateTime createdAt
DateTime updatedAt
}
QuizResults {
ObjectId _id PK
ObjectId userId FK
String class
String chapter
Number score
Number totalQuestions
Number xpEarned
Array answers
DateTime createdAt
DateTime updatedAt
}
Contests {
ObjectId _id PK
String title UK
String description
Array questions
DateTime startTime
Number duration
DateTime endTime
String status
DateTime createdAt
DateTime updatedAt
}
ContestResults {
ObjectId _id PK
ObjectId userId FK
ObjectId contestId FK
Number score
Number totalQuestions
Number timeTaken
Array answers
Number rank
DateTime submittedAt
DateTime createdAt
DateTime updatedAt
}
Enrollments {
ObjectId _id PK
String studentName
String fatherName
String motherName
Date dateOfBirth
String gender
String aadharNumber UK
String mobileNumber
String address
String class
String board
String competitiveCourse
String status
String adminRemarks
ObjectId userId FK
DateTime createdAt
DateTime updatedAt
}
DemoBookings {
ObjectId _id PK
String studentName
String parentName
String mobileNumber
String email
String class
String subject
Date preferredDate
String preferredTime
String status
String adminRemarks
ObjectId userId FK
DateTime createdAt
DateTime updatedAt
}
This is a full-featured coaching institute website where students can enroll in courses, watch video lectures, take quizzes, and participate in contests. Admins can manage everything through a dedicated dashboard.
- Create account with email or Google
- Browse available courses
- Watch video lectures (stored on Cloudinary)
- Take chapter-wise quizzes and earn XP
- Participate in timed contests
- View leaderboards and rankings
- Track progress and quiz history
- Book free demo classes
- Submit enrollment forms
- Ask Math doubts anytime using the built-in AI Math tutor (available 24/7)
- Manage student enrollments
- Upload and organize video lectures
- Create quizzes with bulk upload (Excel/CSV)
- Schedule and manage contests
- Review demo booking requests
- Update enrollment status with remarks
- View statistics and analytics
- Automatic data backup to Google Sheets
- React 18 with Vite
- React Router for navigation
- Axios for API calls
- Context API for state management
- Node.js with Express
- MongoDB for database
- JWT for authentication
- Cloudinary for video storage
- Nodemailer for emails
- Google Sheets API for data backup
- Multer for file uploads
- Groq API for AI Math tutor
cd backend
npm run devServer runs on http://localhost:5001
cd frontend
npm run devApp runs on http://localhost:3000
Frontend:
cd frontend
npm run buildDevendra Mishra
GitHub: @Mishra-coder
Built with ❤️ for Success Mantra Institute