Team Paralax
A web-based Class Routine Creation System that helps administrators manage professors, subjects, classes, and schedules efficiently with real-time teacher conflict detection.

About This Project
Team Paralax is a college team project (4 members) built during a 36-hour hackathon to streamline academic scheduling. The system is a web-based Class Routine Creation System that helps administrators manage professors, subjects, classes, and schedules efficiently. It features real-time teacher scheduling conflict detection, preventing double-booking of professors across classes and time slots. The backend is built with Node.js, Express, and MongoDB, exposing clean CRUD APIs consumed by a React + Tailwind CSS frontend dashboard. The dashboard displays total counts of professors, classes, and routines, and automatically validates teacher availability during routine creation. A modular architecture ensures scalability and ease of future updates.
Key Features
- Add, update, and delete professors, classes, and subjects via CRUD operations
- Create routines based on specific classes and days of the week
- Prevent scheduling conflicts for teachers in real-time with conflict-detection algorithm
- Display total number of professors, classes, and routines on the dashboard
- Automatically validate teacher availability during routine creation
Challenges & Solutions
Designing a system that dynamically checks whether a teacher is already booked for a given period across all classes
On each routine-creation request, the Express API queried all existing routine documents for the same day and period, returning a 409 conflict response if the selected teacher already appeared in any — the React frontend surfaced this as an inline validation error before saving
Creating a flexible, user-friendly interface to build routines for any class and any day of the week
Built a grid-based React UI where rows represented time periods and columns represented weekdays; each cell held a dropdown of available teachers and subjects, populated dynamically from the backend based on the selected class
Managing complex relationships between professors, subjects, and classes in a normalized database structure
Used MongoDB references (ObjectId) to link subjects and professors to their parent class documents, then resolved them in a single aggregation pipeline on the backend, keeping each collection normalized and avoiding data duplication