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:
75
README.md
75
README.md
@@ -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)
|
||||
|
||||

|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user