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.
Authors
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