📄️ Intro
La base de ce projet est la détection et le tracking de personnes, mais cela ne sert à rien si les informations obtenues ne sont pas centralisées pour être traitées et visionnées. Il est donc nécessaire de prévoir un moyen de communiquer les informations, que ce soit pour superviser les caméras ou pour qu'elles communiquent entre elles si besoin.
📄️ API Backend
Le rôle de cette API est de récupérer les données émises par les caméras, les traiter, les mettre en base de données, ainsi que de fournir aux caméras leur configuration.
📄️ API Frontend
Le rôle de cette API est d'effectuer la liaison entre le frontend et la base de données. Elle se charge donc principalement de faire du CRUD (Create Read Update Delete) sur les données de la base de données, et de quelques fois faire appel au serveur de stockage d'objets et à l'API backend afin d'effectuer certains calculs.
📄️ Base de données
Malgré la présence de deux API, ce qui serait normalement accompagné de deux bases de données, nous avons choisi de n'utiliser qu'une seule base de données pour les deux API. En effet, cela rend le développement plus simple dans un premier temps, car les informations ne transitent pas directement entre les deux API. De plus, les deux API n'écrivent pas des données sur les mêmes tables, il n'y a donc pas de risque d'écrasement de données de l'autre API.
📄️ Serveur de stockage d'objets
En plus de toutes les données simples que nous conservons, nous souhaitions conserver aussi des fichiers :