phase 4 - isel-leic-ls/2122-2-common GitHub Wiki
This document describes the requirements for the fourth and final phase of the Software Laboratory project.
-
Update the create user operation, to receive a password.
-
Create a new operation that receives the user's email and password, and returns the user's token.
- Produce views to create a new user (Sign In) and to obtain the user's token (Login).
- The received token should be stored until the user closes the browser window/tab or explicitly executes logout.
Host the application on the Heroku.
- Create an Heroku free account. Heroku is an example of a Platform-as-a-Service (PaaS) provider.
- Install the Heroku CLI (Command Line Interface) on all the development machines.
- On the Heroku web site, create a new application
- The name should follow the following structure:
isel-ls-2122-2-<turma>-g<número-do-grupo>
. - Select the "Europe" region.
- The name should follow the following structure:
- On the application home page, provision the "Heroku Postgres" add-on using the "Hobby Dev - Free" plan.
- Add a
JDBC_DATABASE_URL
environment variable to your heroku application, using the credentials available in heroku dashboard.
- Add a
- Create the tables in the heroku postgres database, use psql, pgAdmin or a similar tool.
- On the command line,
gradlew build
- Install docker desktop
- Add the Dockerfile to the the root of the group repository, this file should contain all the information to create the docker image, see our example here
- On the command line, do
heroku container:login
. - Create the docker image and push the image to the Heroku Registry, on the command line, do
heroku container:push web -a isel-ls-2122-2-<turma>-g<número-do-grupo>
- On the command line, do
heroku container:release web -a isel-ls-2122-2-<turma>-g<número-do-grupo>
To launch application in developer machine
-
docker build -t <name:x>
. docker run -d -p 9000:8080 --env PORT=8080 --env JDBC_DATABASE_URL="jdbc:postgresql://host.docker.internal/<database>?user=<username>&password=<password>" <name:x>
This phase should be used to critically review all code baseline, and refactoring to improve code quality should be a goal. Also, more tests should be produced ir order to increase the overall coverage.
The technical report should be updated and/or extended with the relevant technical information. The sections developed in the previous phases can be improved or changed. There should not be a separate report for each phase.
The completed project must be delivery until June 18 (end of week 15), via the creation of a 1.0.0
tag on the GitHub repository.