doc: added project documentation

Add documentation according to the requirements of the project.
 Including:
 - Project flow (git flow or trunk-base flow)
 - Architecture with Kruchten diagram (context+container)
 - Explanation of points that deviate from requirements
 - Detail information about how run each parts

Signed-off-by: Klagarge <remi@heredero.ch>
This commit is contained in:
2025-06-15 11:24:09 +02:00
parent 2426d8d8d1
commit 01ad66daa8
3 changed files with 74 additions and 4 deletions

View File

@@ -9,10 +9,77 @@ 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="#license">License</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)
![2-Container-Server.svg](docs/2-Container-Server.svg)
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).
# Authors
[(Back to top)](#table-of-contents)
@@ -21,9 +88,11 @@ This monorepo hosts all parts of the project for the Software Engineering course
* [Rémi Heredero](https://github.com/Klagarge)
* [Yann Sierro](https://github.com/Fastium)
# License
# Licence
[(Back to top)](#table-of-contents)
* This repository is under GPL 3.0
* Some parts can be under other licenses, they are specified in the README of the concerned part
* Some parts can be under other licences, they are specified in the README of the concerned part

1
docs/ci-strategy.md Normal file
View File

@@ -0,0 +1 @@
C.f. [Project Flow](../README.md#project-flow)

View File

@@ -1,4 +1,4 @@
# Pokerregistry.sdi.hevs.ch/mqtt2influx:v1.1.1
# Poker
For some Users stories (issues) we did a Poker like in Scrum methodology.
We select 4 issues that we wanted to discuss.