GitLab need a path from the root of the project even it's in a sub-folder Signed-off-by: Klagarge <remi@heredero.ch>
Software Engineering Project - Team Raclette
This monorepo hosts all parts of the project for the Software Engineering course.
Table of contents
Project flow • Architecture • Authors • Licence
Project flow
For our project, we choose a flow near to a Trunk-based flow. The Main idea was to keep shot-branch directly merged to the main branch.
We diverge from the Trunk-based flow in the sense that we don't have a release branch. Release would be directly a tag in the main as we decide to have only atomic commits in the main branch. We don't create a new release on each merge, but all merges are releasable.
We also have an additional constraint. We need a semi-linear history on the main branch. This means that we don't
have several branches in parallel in the history.
We need to rebase our own branch before merging it to the main branch.
The purpose of this constraint is to have a clean history and to be able to use the git bisect command to find
bugs easily.
Architecture
As required by the course, we have dockerized all parts of the project. But we deploy all our components on a real server (*.mse.kb28.ch). This server auto-fetches new docker image with the watchtower service to auto-deploy new versions of the components.
In addition to using our own server, we also push all the time data with other connected sensors. So, as we have a lot of data, we don't display the 100 last measurements as requested, but the last 24h of measurements (This design choice was validated by Mr. S. Fringeli).
Web application
The web application is deployed on the server at the following URL: app.mse.kb28.ch.
The most interesting measurement is under Rémi -> Terrasse -> Shed.
More details in web-app/README.md.
Gateway MQTT / Rest API / influxDB
The MQTT part is accessible via the following URL: mqtt.mse.kb28.ch on the port 1883.
The Rest API is accessible via the following URL: rest.mse.kb28.ch with swagger documentation on the following URL: rest.mse.kb28.ch/swagger/index.html.
Influx DB
The InfluxDB is deployed on the server at the following URL: influxdb.mse.kb28.ch.
Credentials are available on request.
Pico Sensor
Details in pico-sensor/README.md.
Test environment
A partial test environment is deployed on the server.
Web app has a second container with the same code but made a GET request on /test instead of /raclette for the
development environment. The gateway include a route to /test that return the 100 last measurement instead of the
last 24h. Has everything else is still a development environment, the database is the same for the test and
development environment.
Authors
- Sylvan Arnold - Mainly pico-sensor part
- Rémi Heredero - Mainly gateway and docker part
- Yann Sierro - Mainly web-app part
Licence
- This repository is under GPL 3.0
- Some parts can be under other licences, they are specified in the README of the concerned part