@startuml Architecture Générale du Système Timelapse !define ICONURL https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/v2.4.0 !include ICONURL/common.puml !include ICONURL/devicons/python.puml !include ICONURL/font-awesome-5/raspberry_pi.puml !include ICONURL/font-awesome-5/cloud.puml !include ICONURL/font-awesome-5/camera.puml !include ICONURL/font-awesome-5/database.puml skinparam { BackgroundColor white ArrowColor #666666 BorderColor #666666 FontName "Arial" } rectangle "Système Raspberry Pi" as raspi { DEV_PYTHON(pyonline, "timelapse_online.py") #lightblue DEV_PYTHON(pyoffline, "timelapse_offline.py") #lightgreen rectangle "timelapse/" { DEV_PYTHON(config, "config.py") #lightyellow DEV_PYTHON(apiclient, "api_client.py") #pink DEV_PYTHON(capture, "capture.py") #lightcyan DEV_PYTHON(sensors, "sensors.py") #lightyellow } FA5_DATABASE(localdb, "CONFIG/config.json") #lightgrey FA5_CAMERA(camera, "Caméra") #white } cloud "Serveur Distant" { rectangle "API REST" as api #pink database "Base de données" as db #lightgrey } pyonline --> config : utilise pyoffline --> config : utilise pyonline --> apiclient : utilise pyonline --> capture : utilise pyoffline --> capture : utilise capture --> config : lit/écrit capture --> sensors : utilise apiclient --> api : communique config --> localdb : lit/écrit sensors --> camera : contrôle note bottom of pyonline : "Mode connecté" note bottom of pyoffline : "Mode hors ligne" note right of api : "Authentification\net gestion des données" note bottom of camera : "Capture des images" @enduml