NIAEFEUP / tts-be

A platform where students can experiment with the possible combination of schedule options they can pick at the start of the semester
https://tts.niaefeup.pt
5 stars 1 forks source link

TTS - Backend

The backend for the timetable selector, which is a platform that aims to help students better choose their class schedules by allowing them to see and play with all possible combinations.

Made with ❤️ by NIAEFEUP.

Installation

Prerequisites

Installing docker

to install docker, take a look on the official website and follow the Get docker section to install it. If you're using windows, make sure to have the wsl installed.

In case you're using linux, after installing docker check the Manage Docker as a non-root user, so you can use docker without the sudo command, which involves creating a user group for docker.

Data

The data is available at the NIAEFEUP drive (Only for NIAEFEUP members):

https://drive.google.com/drive/folders/1hyiwPwwPWhbAPeJm03c0MAo1HTF6s_zK?usp=sharing

Usage

Development environment

Building the container

After you installed docker, go to the folder where you cloned this repository and do:

docker compose build

This will build the docker container for the backend.

In case you have already build the server before and want to repopulate the database, make sure you run

sudo make clean

We need to clean the database to repopulate it, since the way the postgres container works is that it only runs the sql files present in the postgres/sql folder if the database is clean. This is way we need to issue sudo make clean in order for the insert sql queries to be run.

Running the container

Before running docker, you have to create an .env file with required environment variables for the backend to work.

cp .env.dev .env

And then you need to set the correct desired values in the .env file.

The .env file is not already on the repository in order to prevent sensitive information to be leaked. This way, the file with default non important values (.env.dev) serves as a template, while the real file with important sensitive values is on .gitignore so it is never accidentally uploaded to github with sensitive information.

docker compose up 

Some django caveats after running the container

Accessing the development database

We are currently using pgadmin and you can access it

  1. Go to localhost:4000

  2. On the login screen, both the credentials are as follows:

    • Email: admin@example.com
    • Password: admin

    This is fine, since this is only a development environment.