Kopeck - Application de Gestion de Dépenses en Groupe
Début: 17 Mar 2023
Résumé du Projet
Kopeck est une application web complète et intuitive développée avec Symfony 7, conçue pour simplifier la gestion des finances entre amis, en colocation ou en voyage. Elle permet aux utilisateurs de créer des groupes, d'enregistrer des dépenses, et de visualiser en temps réel qui doit quoi à qui, le tout dans une interface moderne, réactive et installable sur n'importe quel appareil (PWA).
Fonctionnalités Principales
L'application offre un éventail de fonctionnalités pensées pour une expérience utilisateur fluide et complète :
- Gestion des Utilisateurs :
- Inscription sécurisée avec vérification par e-mail.
- Processus de réinitialisation de mot de passe.
- Profil utilisateur personnalisable avec photo.
- Groupes de Dépenses ("Splitters") :
- Création de groupes personnalisés avec un nom, une description et une catégorie (ex: Vacances, Colocation).
- Invitation de membres facile via un lien de partage unique.
- Tableau de bord par groupe, offrant une vue d'ensemble des dépenses et des soldes.
- Gestion des Dépenses :
- Ajout de dépenses avec montant, date, et description.
- Téléversement de justificatifs (photos des tickets de caisse) pour une transparence totale.
- Répartition des coûts entre les membres du groupe (qui a payé et qui sont les bénéficiaires).
- Catégorisation des dépenses (ex: Logement, Nourriture, Transport).
- Équilibrage des Comptes :
- Calcul automatique et en temps réel des soldes de chaque membre.
- Synthèse claire des remboursements à effectuer pour équilibrer les comptes du groupe.
- Expérience Utilisateur Avancée :
- Interface dynamique et réactive grâce à Symfony UX (Live Components), offrant des mises à jour instantanées sans rechargement de page.
- Progressive Web App (PWA) : l'application est installable sur mobile et ordinateur et peut fonctionner hors ligne.
- Design responsive et moderne (basé sur Bootstrap) avec un thème clair et sombre.
Architecture et Stack Technique
Ce projet a été construit sur des technologies robustes et modernes, en mettant l'accent sur la qualité du code et la maintenabilité.
- Backend : PHP 8.3 et Symfony 7.
- Base de Données : MySQL avec l'ORM Doctrine pour la gestion des données. Les extensions Doctrine (Gedmo) sont utilisées pour automatiser le suivi des modifications (Loggable), les dates de création/mise à jour (Timestampable), et la suppression logique (SoftDeleteable).
- Frontend : L'interface est rendue avec Twig et dynamisée par l'écosystème Symfony UX (LiveComponent, TwigComponent, Turbo). L'intégration d'AssetMapper et de SASS permet une gestion moderne et performante des assets.
- Qualité de Code : L'outil GrumPHP est configuré pour lancer automatiquement une suite de vérifications (PHPStan, PHP-CS-Fixer, PHPMD, TwigCS) avant chaque commit, garantissant ainsi un code propre et cohérent.
- Environnement de Développement : Le projet est entièrement conteneurisé avec Docker, assurant une installation et une exécution fiables et reproductibles. Un Makefile simplifie toutes les commandes courantes (installation, démarrage, tests, etc.).
- Tests : Une suite de tests unitaires et fonctionnels avec PHPUnit assure la non-régression et la fiabilité des fonctionnalités.
Technologies Utilisées









