87 lines
1.7 KiB
Plaintext
87 lines
1.7 KiB
Plaintext
@startuml
|
|
left to right direction
|
|
|
|
skinparam component {
|
|
BackgroundColor<<Logiciel>> #FFE4B5
|
|
BackgroundColor<<Matériel>> #98FB98
|
|
BackgroundColor<<Infrastructure>> #87CEEB
|
|
BorderColor #333
|
|
}
|
|
|
|
package "Matériel" <<Matériel>> {
|
|
component "RPi 4B + Cam" as pi {
|
|
[Module Caméra] --> [Scripts Python]
|
|
}
|
|
|
|
component "Système d'énergie" as energy {
|
|
[STM32] --> [Batterie LiPo]
|
|
[Panneau Solaire] --> [Gestion d'énergie]
|
|
}
|
|
|
|
component "Boîtier Mécanique" as box {
|
|
[PLA IP67] --> [Système de Montage]
|
|
}
|
|
}
|
|
|
|
package "Logiciel" <<Logiciel>> {
|
|
component "Backend" as backend {
|
|
[Node.js] --> [FFMPEG]
|
|
[Express] --> [PostgreSQL]
|
|
}
|
|
|
|
component "Frontend" as web {
|
|
[React] --> [Nginx]
|
|
}
|
|
|
|
component "Application Mobile" as mobile {
|
|
[Kotlin] --> [Android API]
|
|
}
|
|
}
|
|
|
|
package "Infrastructure" <<Infrastructure>> {
|
|
component "Proxmox" as proxmox {
|
|
[VM Ubuntu] --> [Docker]
|
|
}
|
|
}
|
|
|
|
pi --> backend : "HTTP/MQTT\n(images)"
|
|
energy --> pi : "Alimentation"
|
|
box --> pi : "Protection physique"
|
|
backend --> web : "API REST"
|
|
backend --> mobile : "API REST"
|
|
proxmox --> backend : "Hébergement"
|
|
proxmox --> web : "Proxy inverse"
|
|
|
|
note right of pi
|
|
<b>Technologie Matérielle:</b>
|
|
• Altium Designer
|
|
• STM32 CubeIDE
|
|
• I2C/SPI
|
|
• RDM6/CES
|
|
end note
|
|
|
|
note bottom of backend
|
|
<b>Stack Logicielle:</b>
|
|
• Node.js/Express
|
|
• FFMPEG
|
|
• Auth JWT
|
|
• CI/CD Gitea
|
|
end note
|
|
|
|
note left of proxmox
|
|
<b>Infrastructure:</b>
|
|
• Docker Swarm
|
|
• Let's Encrypt
|
|
• VPN/Wireguard
|
|
• Sauvegardes Automatisées
|
|
end note
|
|
|
|
note top of box
|
|
<b>Mécanique:</b>
|
|
• Solidworks
|
|
• BambuLab X1
|
|
• Analyse Thermique
|
|
• Classification IP67
|
|
end note
|
|
|
|
@enduml |