For detailed API usage, testing workflows, and data insertion guides, please refer to the API Documentation.
The TimeTable Management & Generation System is a sophisticated full-stack application designed to automate the complex process of academic scheduling. By leveraging AI-powered constraint programming (Google OR-Tools), it generates conflict-free timetables that respect resource availability, faculty constraints, and curriculum requirements.
- Automated Scheduling: AI-driven generation of conflict-free timetables.
- Role-Based Access: Distinct portals for Admins, Faculty, and Students.
- Resource Management: Comprehensive management of Classrooms, Labs, Subjects, and Batches.
- Constraint Handling: Respects faculty unavailability, room capacities, and load limits.
- Modern UI/UX: Responsive React frontend with intuitive dashboards.
| Component | Technology | Description |
|---|---|---|
| Frontend | React 19, Vite, Tailwind CSS | Fast, responsive user interface |
| Backend | Node.js, Express 5 | RESTful API architecture |
| Database | MongoDB, Mongoose | Flexible document storage |
| AI Engine | Python, FastAPI, Google OR-Tools | Constraint satisfaction solver |
| Auth | JWT, bcrypt | Secure authentication & authorization |
The system follows a microservices-inspired architecture:
- Client Layer: React SPA interacting with the Backend API.
- API Layer: Express.js server handling business logic, auth, and data persistence.
- Scheduler Service: Python FastAPI service dedicated to heavy computational scheduling tasks.
- Data Layer: MongoDB storing all institutional data and generated schedules.
- Node.js (v16+)
- Python (v3.8+)
- MongoDB (Local or Atlas)
cd backend
npm install
# Configure Environment
# Create .env file with:
# PORT=5000
# MONGO_URI=your_mongodb_connection_string
# JWT_SECRET=your_secret_key
# SCHEDULER_URL=http://localhost:8000
npm startcd scheduler_core
python -m venv venv
# Windows: venv\Scripts\activate
# Mac/Linux: source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000cd frontend
npm install
npm run devThis project is licensed under the MIT License - see the LICENSE file for details.