This project is meant to be an improvement to the Computer Science and Mathematics timetable (of Babes Bolyai University) with options for personal customisation. At it's core, schedulator takes already existing timetable data from the university's website and displays it in an actually user-friendly and personalized way.
- Django 3.x - main framework
- Django Rest Framework
- Django knox - for auth tokens
- React (with react hooks) - main framework
- Material-UI
- Redux + Redux Thunk
- Axios
- create a python virtual environment
- do all backend project operations from inside the said venv
-
Move into the backend directory:
cd schedulator_backend -
Install the required python packages:
pip install -r requirements.txt -
Important: Before running any other command, copy the
.env.examplefile
into a new file named.env(this is where django takes some important configuration
from, the server will not run without this) -
Make the migrations for the django apps (scs_auth, api_* and crawler):
python manage.py makemigrations
python manage.py makemigrations scs_auth
python manage.py makemigrations crawler
python manage.py makemigrations api_core
python manage.py makemigrations api_reset_timetable
python manage.py makemigrations api_current_timetable
python manage.py makemigrations api_current_semester_status
python manage.py makemigrations api_static_timetables
python manage.py makemigrations api_enrollment_manager
python manage.py makemigrations api_export_timetable
python manage.py makemigrations api_custom_timetable_entries -
Migrate:
python manage.py migrate -
(Optional) Create admin user:
python manage.py createsuperuserand follow the prompted steps -
(Optional) Populate your db with crawled data:
python manage.py crawl -
(Optional) Generate aliases for subjects:
python manage.py alias -
(Optional) Generate types for formations (eg. GROUP, SEMIGROUP, etc.):
python manage.py formationtypes -
(Optional) Generate static tables:
python manage.py generatestatictables
- Run the development server:
py manage.py runserver - (Optional) Check the admin page at
http://localhost:8000/admin
The frontend react app is located in the folder /schedulator_frontend.
Run all the fronted operations from inside that folder: cd /schedulator_frontend
- node 12.x.y
- Install the required node modules:
npm install
- Run the local react development server:
npm start