Clone Tricount est une reproduction fidèle de l’application populaire Tricount, qui facilite la gestion collective des dépenses entre amis, familles ou colocataires lors d’événements partagés.
L’application réplique les fonctionnalités principales de Tricount : création d’événements, ajout de participants, saisie des dépenses et calcul automatique des remboursements équitables.
Elle est développée en PHP avec une base de données MySQL et une interface responsive basée sur Bulma.
L’objectif ?
Simplifier la création d’événements, l’ajout de membres, la saisie des dépenses partagées et le calcul des remboursements.
Le tout dans une optique d’apprentissage des bonnes pratiques : sécurité, qualité logicielle, normalisation de base de données, virtualisation avec Docker.

Pourquoi un clone de Tricount ?
Tricount est une application très populaire pour gérer les dépenses partagées, notamment :
- Voyages entre amis : vacances, road trips, weekends
- Colocations : courses, loyer, factures
- Événements : mariages, anniversaires, soirées
- Activités de groupe : sorties, restaurants, sports
Ce projet reproduit ces fonctionnalités tout en ajoutant une dimension pédagogique axée sur les bonnes pratiques de développement web moderne.
Authentification et sécurité
Le système d’authentification reprend les principes de Tricount :
- Connexion sécurisée avec chiffrement des mots de passe
- Récupération de mot de passe par e-mail
- Sessions utilisateur sécurisées
- Protection contre les injections SQL et XSS
Fonctionnalités principales déjà en place
- Gestion des comptes utilisateurs : inscription, connexion, mise à jour, suppression.
- Événements : création, édition, suppression (CRUD), gestion fine des membres invités ou éjectés.
- Dépenses partagées : saisie d’un montant, désignation d’un payeur et des participants, répartition automatique.
- Visualisation d’événements via un code secret partagé, même sans connexion.
Gestion des droits
- Propriétaire : gestion complète (membres, édition, suppression).
- Membres : gestion de leur participation et des dépenses.
- Sécurité : accès partagé en lecture seule, mot de passe oublié, contraintes sur les champs des formulaires.
Travaux en cours & Améliorations prévues
- Refonte du calcul des dettes : algorithme optimisé pour réduire le nombre de transactions nécessaires (remboursements croisés intelligemment).
- Dynamisation de l’interface (JavaScript, AJAX) : actions instantanées sans rechargement de page (ajout/retrait de membres, modification des dépenses…).
- API REST (JWT) : pour connecter le frontend dynamique et activer l’auto-complétion, la validation en temps réel (login, e-mail, membres à inviter…).
- Géolocalisation : intégration d’une carte pour visualiser où les dépenses ont été effectuées

Refonte technique
- Architecture en couches (services, modèles, routes, vues Twig…).
- Normalisation complète du schéma de base de données.
- Couverture de test unitaire sur la logique métier (PHPUnit).
- Isolation parfaite via containers Docker (application + base de données).
- Utilisation d’une API externe pour la conversion des montants lors d’une dépense dans une devise étrangère.
Technologies & outils
- Backend : PHP, architecture MVC, tests avec PHPUnit
- Frontend : Bulma, HTML, CSS, JS, Ionicons
- Base de données : MySQL/MariaDB, modélisation normalisée
- Docker : virtualisation de l’environnement de développement et déploiement reproductible
- API REST, JWT (prochainement : AJAX interactif)
Statut du projet
L’application est fonctionnelle dans ses bases mais en pleine évolution vers :
- plus d’ergonomie,
- meilleure sécurité,
- code et base de données refactorisés pour la qualité et la maintenabilité,
- automatisation et déploiement facilité via Docker.
