Student Management
Budget: $30 – $250 USD
Authentication
Google OAuth 2.0 for user login.
Session-based login persistence using Passport.js.
Only authenticated users can access the application.
Role-Based Access Control (RBAC)
User roles: admin, teacher, student.
Role is assigned during user creation or set by an admin.
UI and data access are customized based on role.
User Management
Admin can manage users (assign roles, deactivate/reactivate).
Each user is mapped to either a Student or a Teacher entity.
Teacher profile includes subjects they teach.
Student profile links to enrolled classes.
Class Management
Admin can create, update, delete classes.
Each class is assigned to a teacher.
Many-to-many relationship between classes and students.
Teaching Schedule
Schedule table includes:
Class ID
Teacher ID
Date
Start and End Time
Teachers can view their schedule.
Students can view schedules of their enrolled classes.
Class Allocation / Reallocation
Admin can allocate students to classes.
Reassign students to different classes.
Reallocate teachers to different classes or subjects.
Reporting & Dashboard
Role-based dashboards:
Admin: Total users, class distribution, schedule conflicts.
Teacher: My classes, teaching schedule.
Student: Enrolled classes, weekly timetable.
Tech Stack
Frontend: React (with role-based views)
Backend: Node.js + Express
Auth: Google OAuth via Passport.js
Database: PostgreSQL using Sequelize ORM
Google OAuth 2.0 for user login.
Session-based login persistence using Passport.js.
Only authenticated users can access the application.
Role-Based Access Control (RBAC)
User roles: admin, teacher, student.
Role is assigned during user creation or set by an admin.
UI and data access are customized based on role.
User Management
Admin can manage users (assign roles, deactivate/reactivate).
Each user is mapped to either a Student or a Teacher entity.
Teacher profile includes subjects they teach.
Student profile links to enrolled classes.
Class Management
Admin can create, update, delete classes.
Each class is assigned to a teacher.
Many-to-many relationship between classes and students.
Teaching Schedule
Schedule table includes:
Class ID
Teacher ID
Date
Start and End Time
Teachers can view their schedule.
Students can view schedules of their enrolled classes.
Class Allocation / Reallocation
Admin can allocate students to classes.
Reassign students to different classes.
Reallocate teachers to different classes or subjects.
Reporting & Dashboard
Role-based dashboards:
Admin: Total users, class distribution, schedule conflicts.
Teacher: My classes, teaching schedule.
Student: Enrolled classes, weekly timetable.
Tech Stack
Frontend: React (with role-based views)
Backend: Node.js + Express
Auth: Google OAuth via Passport.js
Database: PostgreSQL using Sequelize ORM