107 lines
3.7 KiB
Markdown
107 lines
3.7 KiB
Markdown
<h1 align="center">
|
||
<br>
|
||
Software Engineering Project - Team Raclette
|
||
<br>
|
||
</h1>
|
||
This monorepo hosts all parts of the project for the Software Engineering course.
|
||
|
||
|
||
# Table of contents
|
||
|
||
<p align="center">
|
||
<a href="#project-flow">Project flow</a> •
|
||
<a href="#architecture">Architecture</a> •
|
||
<a href="#Authors">Authors</a> •
|
||
<a href="#licence">Licence</a>
|
||
</p>
|
||
|
||
# Project flow
|
||
[(Back to top)](#table-of-contents)
|
||
|
||
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
|
||
[(Back to top)](#table-of-contents)
|
||
|
||

|
||
|
||
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
|
||
[(Back to top)](#table-of-contents)
|
||
|
||
The web application is deployed on the server at the following URL: [app.mse.kb28.ch](https://app.mse.kb28.ch). <br>
|
||
The most interesting measurement is under Rémi -> Terrasse -> Shed.
|
||
|
||
More details in [web-app/README.md](web-app/README.md).
|
||
|
||
|
||
## Gateway MQTT / Rest API / influxDB
|
||
[(Back to top)](#table-of-contents)
|
||
|
||
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](https://rest.mse.kb28.ch/) with swagger
|
||
documentation on the following URL: [rest.mse.kb28.ch/swagger/index.html](https://rest.mse.kb28.ch/swagger/index.html).
|
||
|
||
|
||
## Influx DB
|
||
[(Back to top)](#table-of-contents)
|
||
|
||
The InfluxDB is deployed on the server at the following URL: [influxdb.mse.kb28.ch](http://influx.mse.kb28.ch:8086/).
|
||
<br>
|
||
Credentials are available [on request](mailto:remi@heredero.ch).
|
||
|
||
|
||
## Pico Sensor
|
||
[(Back to top)](#table-of-contents)
|
||
|
||
Details in [pico-sensor/README.md](pico-sensor/README.md).
|
||
|
||
|
||
## Test environment
|
||
[(Back to top)](#table-of-contents)
|
||
|
||
A partial test environment is deployed on the server. <br>
|
||
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
|
||
|
||
[(Back to top)](#table-of-contents)
|
||
|
||
* [Sylvan Arnold](https://github.com/Sylvan22) - Mainly pico-sensor part
|
||
* [Rémi Heredero](https://github.com/Klagarge) - Mainly gateway and docker part
|
||
* [Yann Sierro](https://github.com/Fastium) - Mainly web-app part
|
||
|
||
|
||
|
||
# Licence
|
||
|
||
[(Back to top)](#table-of-contents)
|
||
|
||
* This repository is under GPL 3.0
|
||
* Some parts can be under other licences, they are specified in the README of the concerned part |