Application de bureau pour gérer les membres, activités et participations d'un club.
demo.mp4
python main.pyC'est tout ! Tkinter et SQLite sont inclus avec Python.
Project_python/
├── main.py # Point d'entrée de l'application
├── model.py # Modèles de données (Membre, Activite, Participation)
├── database.py # Fonctions de requêtes
├── config.py # Configuration
├── crud_operations.py # Formulaires CRUD
├── ui_components.py # Composants UI réutilisables
└── data.db # Base de données SQLite (auto-créée)
- Gestion des membres (ajouter, modifier, supprimer, rechercher)
- Gestion des activités (types, durées)
- Suivi des participations (qui participe à quoi)
- Statistiques en temps réel
- Tri par colonnes (cliquer sur les en-têtes)
- Détails complets (double-clic sur une ligne)
- Suivi des paiements
- Cliquer "Membre" pour voir la liste
- "Ajouter Membre" → Remplir le formulaire → "Sauvegarder"
- "Modifier Membre" → Entrer ID → Modifier → "Sauvegarder"
- "Supprimer Membre" → Entrer ID → "Supprimer"
- Double-clic sur une ligne pour voir les détails complets
- Cliquer "Activite" pour changer de vue
- "Ajouter Activité" → Remplir (ID, Nom, Type, Durée) → "Sauvegarder"
- Double-clic pour voir les participants
- "Ajouter Participation"
- Entrer: ID Membre, ID Activité, Date
- "Ajouter"
Cliquer sur n'importe quel en-tête de colonne (ID, Nom, Prenom, Role) pour trier.
id_membre: Identifiant uniquenom_mbr: Nom de familleprenom_mbr: Prénomrole_mbr: Rôle (Membre, Président, Trésorier...)payee_mbr: Statut de paiement (0/1)date_inscription_mbr: Date d'inscriptionnum_tel_mbr: Numéro de téléphoneemail_mbr: Email
id_activite: Identifiant uniquenom_act: Nom de l'activitétype_act: Type (sport, culture...)duree_act: Durée en minutes
id_membre: Référence au membreid_activite: Référence à l'activitédate: Date de participation
Relation: Many-to-Many (0,n ↔ 0,n) entre MEMBRE et ACTIVITE via PARTICIPATION
Modifier config.py pour personnaliser:
WINDOW_TITLE = "Project Club" # Titre de la fenêtre
WINDOW_WIDTH = 1000 # Largeur
WINDOW_HEIGHT = 600 # Hauteur
DATABASE_NAME = 'data.db' # Nom de la base de donnéesBase de données verrouillée: Fermer toutes les instances de l'application
Tkinter non trouvé (Linux):
sudo apt-get install python3-tk- Tkinter: Interface graphique (Treeview, LabelFrame, grid/pack layout)
- SQLite: Base de données (CRUD, clés étrangères)
- POO Python: Classes pour les modèles de données
- Événements: Double-clic, tri par colonnes
- StringVar: Mise à jour dynamique des statistiques
- Pas de validation pour les IDs dupliqués
- Format de date non vérifié (utiliser DD-MM-YYYY)
- Fonction recherche affiche messagebox au lieu de filtrer
- Filtrage dans le Treeview
- Export CSV/Excel
- Validation des formulaires
- Photos des membres
- Sauvegarde/restauration
- Vue calendrier
Projet d'apprentissage Python - Binôme scolaire