ANDRIATSARAFARA Befakomanana Armando Landos
← Retour aux projets

CommuneConnecte

Plateforme collaborative pour organiser les dossiers et les échanges d'une commune.

ReactExpressPrismaMySQLSocket.ioLiveKitZustandRBAC

9

rôles applicatifs documentés

8

vues documentées

5

modules métier

Plateforme collaborative pour organiser les dossiers et les échanges d'une commune.

Contexte

Les services communaux peuvent rencontrer des difficultés pour partager les dossiers, suivre les validations et conserver l'historique des actions. CommuneConnecte propose un espace centralisé pour organiser les documents et faciliter la collaboration entre les services. Le projet a été réalisé et présenté lors de la porte ouverte de la mention Automatisme et Informatique de l'Université de Vakinankaratra.

Mon rôle

J'ai coordonné une équipe de quatre personnes et participé à la conception de l'architecture, du modèle de données, des règles d'accès, des flux API et des écrans d'administration.

Architecture

01

React

Interface administrative dense, organisee pour la consultation repetee.

02

Express API

Routes métier pour dossiers, utilisateurs, rapports et messages.

03

RBAC

Controle des actions selon agent, responsable de service et administrateur.

04

Prisma + MySQL

Modele relationnel clair, migrations et requetes typees.

05

Audit logs

Historique des changements pour renforcer confiance et traçabilite.

06

Socket.io + LiveKit

Messagerie, présence et réunions temps réel raccordées au serveur applicatif.

Flux principal

  1. 1

    Créer

    Un agent soumet un dossier dans son périmètre.

  2. 2

    Autoriser

    L'API vérifie le rôle et la permission.

  3. 3

    Valider

    Le service métier contrôle la transition demandée.

  4. 4

    Persister

    Prisma applique l'écriture transactionnelle.

  5. 5

    Tracer

    Le journal d'audit conserve l'auteur et l'action.

Décisions et compromis

RBAC centralisé côté API

Pourquoi

Garantir les règles même lorsque l'interface est contournée.

Compromis

La matrice de permissions doit rester synchronisée avec les modules.

Journal d'audit séparé

Pourquoi

Conserver une trace lisible des mutations sensibles.

Compromis

Augmente le stockage et exige une politique de rétention.

Défis rencontrés

Problème

Gérer des droits différents sans dupliquer la logique métier dans chaque écran.

Solution

Centralisation des permissions par role et validation cote API avant toute mutation sensible.

Problème

Rendre une application administrative riche lisible pour des usages quotidiens.

Solution

Navigation stable, tableaux scannables, et separation claire entre administration, rapports, messages et notifications.

Fonctionnalités clés

  • Tableaux de bord agent et administrateur
  • Gestion des utilisateurs et roles
  • Rapports, pièces jointes et détails de dossier
  • Messagerie et reunions internes
  • Journal d'audit administrateur
  • Messagerie temps reel avec Socket.io
  • Visioconference integree avec LiveKit

Pistes d'amélioration

Ajouter signature electronique, notifications WhatsApp et workflow d'approbation configurable.

Limites actuelles

  • Les gains de temps doivent être validés pendant un déploiement pilote.
  • La signature électronique et les notifications externes ne sont pas encore intégrées.