This repository contains the source code and documentation for the bunkmate backend.
- Django Rest Framework: For serving the main API.
- Celery: Celery is used for distributed task processing, here it is used for the resource intensive process of creating hundreds of sessions for a certain timetable.
- Redis: For message brokering between djano and celery.
- PostgreSQL: Database to store user data.
Getting Started (OUT OF DATE SINCE DOCKERISATION, please refer to .env.sample until this readme gets updated)
To get started with the Bunk Mate backend, follow these steps:
-
Clone the repository:
git clone https://github.com/Bunk-Mate/backend
-
Install dependencies:
pip install -r requirements.txt
-
Create a
.creds
file following this template:DBNAME= DBHOST= DBUSER= DBPASS= CACHELOCATION= BROKERLOCATION= SECRET_KEY=
CACHELOCATION
andBROKERLOCATION
correspond to the urls of the redis databases.- This env file is used for a local development environment, for production -
- Set the environment variable
WEBSITE_HOSTNAME
to the domain of the website. - Load the above listed variables into the environment using platform specific methods.
- Set the environment variable
-
Set up the database:
python manage.py migrate
-
Run the development server:
python manage.py runserver
The backend server will be up and running at http://localhost:8000/
.
- Implement better authentication
- Set up sentry
- Refactor codebase
- Set up logging and remove print statements
- Implement ranked bunking
- Test out timetable autodetection from images
This project is licensed under the MIT License.