Welcome to the Timetable Scheduling Backend repository! This project serves as the backend system for managing and automating the timetable scheduling process. Built with Django, it provides APIs, database management, and support for integrating with the Genetic Algorithm logic to create optimized timetables.
- Database Management: Handles storage for teachers, rooms, courses, and scheduling data.
- API Endpoints: Provides RESTful APIs for interacting with the timetable data.
- Admin Interface: A built-in admin panel to manage data easily.
- Integration Ready: Designed to integrate seamlessly with the Genetic Algorithm logic for timetable generation.
To run this backend project, follow these steps (Clients):
- Clone the Repository: Clone this repository to your local machine.
- Run setupTT.py file.
- Run
python manage.py runserverto start the server. - Access the app at
{HOSTED_URL}
Ensure you have the following installed:
- Python 3.8+
- pip
- A virtual environment tool (e.g.,
venv) - Database system (MongoDB and PostgreSQL)
-
Clone the Repository:
git clone https://github.com/yourusername/GEHU-TimeTable-BE.git cd GEHU-TimeTable-BE -
Set Up the Virtual Environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
Configure Database:
- Update the
DATABASESsetting intimetable/settings.pywith your database credentials.
- Update the
-
Run Migrations:
python manage.py makemigrations python manage.py migrate
-
Create a Superuser (for the admin panel):
python manage.py createsuperuser
-
Start the Development Server:
python manage.py runserver
- Timetable Integration: Integrate with the Genetic Algorithm logic to dynamically generate timetables based on constraints.
- Authentication: Add user roles (Admin, Faculty) for managing timetable access.
- Enhanced Scheduling Options: Support for recurring events, holidays, and priority-based scheduling.
- Special thanks to @vibha-chandola, for the endless efforts to make this happen.