Application Qt Widgets en C++ avec architecture MVC stricte pour la gestion de budget personnel.
FinanceApp est un système de gestion de budget permettant de :
- Gérer plusieurs comptes (courant, épargne)
- Enregistrer des opérations (revenus et dépenses)
- Catégoriser les opérations
- Suivre les budgets mensuels
- Filtrer et exporter les données
Le projet respecte une architecture MVC (Model-View-Controller) stricte :
- Modèle métier (
model_metier/) : Classes métier pures, sans dépendance Qt - Repositories (
database/) : Accès aux données (DAO pattern) - Modèles Qt (
qt_models/) : Adapter le modèle métier pour Qt (QAbstractItemModel) - Vue/Contrôleur (
ui/) : Interface utilisateur et contrôleur
FinanceApp/
├── model_metier/ # Modèle métier (UML → C++)
│ ├── Utilisateur.h/cpp
│ ├── Compte.h/cpp
│ ├── CompteCourant.h/cpp
│ ├── CompteEpargne.h/cpp
│ ├── Operation.h/cpp
│ ├── Revenu.h/cpp
│ ├── Depense.h/cpp
│ ├── Categorie.h/cpp
│ ├── Budget.h/cpp
│ ├── Transfert.h/cpp
│ └── Frequence.h
│
├── database/ # Couche de persistance
│ ├── DatabaseManager.h/cpp
│ ├── OperationRepository.h/cpp
│ └── CompteRepository.h/cpp
│
├── qt_models/ # Modèles Qt (QAbstractItemModel)
│ ├── OperationTableModel.h/cpp
│ └── CompteListModel.h/cpp
│
└── ui/ # Interface utilisateur
├── MainWindow.h/cpp
└── MainWindow.ui
- C++17
- Qt 6/5 (Widgets)
- SQLite (base de données)
- CMake (build system)
- Doxygen (documentation)
- Qt 6 ou Qt 5 (avec composants Widgets et Sql)
- CMake 3.16+
- Compilateur C++17
mkdir build
cd build
cmake ..
cmake --build .La documentation Doxygen peut être générée avec :
doxygen DoxyfileLa documentation HTML sera générée dans le dossier docs/html/.
- Modèle métier : Classes métier pures (pas de dépendance Qt)
- Repositories : Pattern DAO pour l'accès aux données
- Modèles Qt : QAbstractItemModel pour adapter le modèle métier à Qt
- Contrôleur : MainWindow coordonne l'interaction
- Classes abstraites → champ
typedans les tables - Relations UML → clés étrangères SQLite
- Associations → tables de liaison si nécessaire
OperationTableModel: Affiche les opérations dans une QTableViewCompteListModel: Affiche les comptes dans une QListViewQSortFilterProxyModel: Filtrage et tri des données
- ✅ Pas de SQL dans l'UI
- ✅ Pas de logique métier dans les vues
- ✅ Pas d'héritage Qt dans le modèle métier
- ✅ Pas de tout-en-un MainWindow
- ✅ Affichage de la liste des opérations (QTableView)
- ✅ Affichage des détails d'une opération sélectionnée
- ✅ Création/édition/suppression d'opérations
- ✅ Filtrage par date, type, catégorie
- ✅ Gestion des comptes (création, suppression)
- ✅ Export JSON
- ✅ Architecture MVC stricte
- ✅ Persistance SQLite
- ✅ Documentation Doxygen
- Implémentation complète du chargement des opérations depuis la DB
- Interface de gestion des catégories
- Calcul et affichage du budget mensuel
- Export PDF
- Gestion des transferts entre comptes
- Graphiques de dépenses
FinanceApp Team - Projet universitaire Génie Logiciel
Projet académique - Usage éducatif