# Web Application Engineering Assignment 1 -- Group 04 ## Technology Stack * Angular for our single-page frontend * Django for our backend * Database: sqlite3 We chose this specific stack because all of our team members have previously worked with this combination of Angular/Django and there is a lot of documentation for it online. We chose sqlite3 as persistence layer because it comes out of the box with django. Django also provides a built-in ORM mapper. Our db schema is very simple, sqlite3 handles it well. ## Linting We use the `ng lint` command to lint our frontend. For this to work, `angular-cli` must be installed. After that run the following in the frontend folder: ```bash $ ng lint ``` ## Setup Our project can be run with a simple `docker-compose up` from the project's root folder. By default it will pull the required images from [docker hub](https://hub.docker.com). To instead build the images locally, comment out the `build` keys inside the `docker-compose.yml` file. The `docker-compose.yml` file builds the images by calling the `Dockerfiles` in the folders `frontend` and `backend`. The frontend is served via nginx on port 4200. The backend is served via gunicorn on port 8000. The container's database folder is mounted to ./container_db of the host's docker-compose folder. Therefore, the database is persisted at the client's filesystem. The docker images are available at: * [waecm-2021-group-04-bsp1-fe](https://hub.docker.com/r/pfingstfrosch/waecm-2021-group-04-bsp-1-fe) * sha256 digest: 41c3392154185ceb02273aa9edf87df2c0eaac2112f4b2bf923c7f7f3e39909b * [waecm-2021-group-04-bsp1-be](https://hub.docker.com/r/pfingstfrosch/waecm-2021-group-04-bsp-1-be) * sha256 digest: c1e755bea6ca93d04838c110dbee3a8306faac7b7a8e066ea8a4dec122575683