Skip to content

Mishra-coder/Coaching_Website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

209 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Success Mantra Institute

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.

Architecture Diagram

┌───────────────────────────────────────────────────────────────────┐
│                                                                   │
│  ┌─────────────┐      ┌─────────────┐      ┌─────────────┐        │
│  │             │      │             │      │             │        │
│  │  Front-end  │      │  Back-end   │      │  Database   │        │
│  │             │      │             │      │             │        │ 
│  │   ReactJS   │◄────►│   NodeJS    │◄────►│  MongoDB    │        │
│  │             │      │             │      │             │        │
│  │UI Components│      │  ExpressJS  │      │ Collections │        │
│  │             │      │             │      │             │        │
│  │ API calls   │      │API endpoints│      │  Documents  │        │
│  │             │      │             │      │             │        │
│  └─────────────┘      └─────────────┘      └─────────────┘        │
│                                                                   │
└───────────────────────────────────────────────────────────────────┘

Database Schema

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
    }
Loading

What This Project Does

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.

Main Features

For Students

  • 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)

For Admins

  • 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

Technology Stack

Frontend

  • React 18 with Vite
  • React Router for navigation
  • Axios for API calls
  • Context API for state management

Backend

  • 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

Development

Backend Development

cd backend
npm run dev

Server runs on http://localhost:5001

Frontend Development

cd frontend
npm run dev

App runs on http://localhost:3000

Building for Production

Frontend:

cd frontend
npm run build

Author

Devendra Mishra
GitHub: @Mishra-coder


Built with ❤️ for Success Mantra Institute

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages