Contexte
Ce projet à été réalisé dans le cadre d'un stage scolaire au sein du BSA, iun service public de la DSFE chargé de la lutte contre le sans-abrisme en Polynésie Française. Le personnel n'est composé que deux personnes, la responsable et une secrétaire. Ils ne disposent d'aucun effectif informatique à part celui de la DSI du pays, qui met souvent beaucoup de temps avant de pouvoir répondre aux besoins. C'est pourquoi le service a décidé de faire appel aux élèves du Lycée Diadème.
Le BSA possède 5 missions principales:
- Pilotage - Participer à l'accompagnement des personnes sans-abri.
- Observatoire - Observer, analyser, évaluer et documenter.
- Innovation - Développer de nouvelles solutions.
- Formation - Sensibiliser, former et communiquer.
- Institution - Orienter et consolider les actions à un niveau institutionnel.
- Gestion - Gérer le BSA de manière efficace et transparente.
Pour répondre aux besoins du service, l'application devait respecter un cahier des charges précis. Dans les grandes lignes, l'application devait proposer un système de gestion de dossiers d'usagers avec leurs données (nom, prénom, etc...).
Elle devait également être accessible depuis n'importe où pour permettre une mobilité dans les actions de l'organisme.
Toutes les demandes ont été satsifaites dans les fonctionnalités détaillées plus loin.
Technologies
Backend
Le serveur tourne sous Apache avec des modules installés comme mod_rewritepour la réécriture d'url et un fichier .htaccess. Pour la logique côté serveur, PHP a été choisi pour sa polyvalence et sa simplicité. Le backend est assuré par un mini framework fait maison qui permet un routage simple et une structure en MVC. Une API est exposée pour permettre à des utilisateurs externes certifiés de manipuler les données. Le front-end utilise cette API pour gérer ses ressources.
Frontend
Pour l'affichage des données interfaces utilisateurs, l'application utilise le moteur de templatesSmarty connu pour sa simplicité. Tailwind assure un style cohérent dans toutes les pages sans compromettre la vitesse de chargement des pages grâce aux fichiers css minifiés.
Stockage
Le stockage de données se fait sur une base MariaDB SQL. La base de données adopte des conventions orientées objet pour assurer une cohérence de nommage avec l'application PHP.

Librairies externes
D'autres ressources externes ont été utilisées pour compléter les fonctionnalités de l'application. Par exemple Leaflet, une API Javascript libre a été utilisée pour réaliser les cartes.Chart.js, une autre API Javascript a été utilisée pour les graphiques des statistiques. Divers autres outils externes renforcent la sécurité de l'application comme Google reCAPTCHA.


Hébergement
Actuellement l'hébergement se fait sur un serveur public LAMP du BTS SIO. Des pistes sont en cours d'études pour un hébergement sur les serveurs du pays...
Fonctionnalités
Version PC
- Gestion des bénéficiaires : Création et suivi de fiches individuelles comprenant l'identité, l'historique et les services impliqués. Permet une prise en charge adaptée et un meilleur suivi des parcours de réinsertion.
- Coordination des utilisateurs : Système de gestion des comptes avec accès limité dans le temps. Assure une mise à jour continue des intervenants tout en sécurisant les informations sensibles.
- Statistiques et reporting : Génération de rapports sur la population sans-abri (répartition par âge, genre, typologies, etc.), facilitant les décisions administratives et politiques basées sur des données concrètes.
- Gestion des zones de comptage : Définition de zones personnalisées sur une carte pour recenser les sans-abris et suivre l'évolution des situations par secteur géographique.
- Sécurité et restriction d'accès : Authentification forte avec limitation des accès selon les rôles (Admin / Utilisateur) afin de garantir la confidentialité des données et éviter toute intrusion non autorisée.
Version Mobile
- Relevé de terrain : Permet aux agents de terrain d'enregistrer les personnes rencontrées avec des notes détaillées. Facilite la collecte d'informations cruciales directement depuis la rue.
- Comptage par zone : Recensement du nombre de sans-abris dans les différentes zones définies pour suivre les tendances et adapter les actions en conséquence.
- Envoi de notifications en temps réel (en développement): Signalement immédiat des situations d'urgence (mineurs en danger, besoin d'intervention médicale, etc.), garantissant une réactivité rapide des services concernés.
Défis
Dans ce projet, plusieurs défis ont été relevés. Tout d'abord, un défi majeur a été de gérer un grand volume de données tout en garantissant un accès rapide et sécurisé aux utilisateurs. La mise en place d'une architecture performante avec MariaDB et une API REST a permis de répondre à ce besoin.
Un autre défi résidait dans la création d'une interface utilisateur intuitive pour des personnes ne maîtrisant pas l'informatique. L'équipe a privilégié une interface simple et fluide, tout en intégrant des outils puissants comme Leaflet et Chart.js.
Enfin, la prise en charge des bénéficiaires en déplacement a également posé un défi technologique, car il a fallu adapter l'application pour qu'elle soit entièrement fonctionnelle sur mobile.
Avenir
Le développement de cette application est encore en cours. Des améliorations sont prévues dans l'avenir pour améliorer la gestion des bénéficiaires, la visualisation des données, et la sécurité des informations personnelles.
Il est également envisagé de rendre l‘application plus accessible aux institutions partenaires du BSA.