Application de pointage RFID développée pour le Raspberry Pi, utilisée par l'ORIF (Section Informatique). Les utilisateurs badgent à l'entrée et à la sortie, et l'application calcule automatiquement les heures de travail.
- Python 3.9+ (compatible 3.11)
- Pygame — interface graphique tactile
- MariaDB — base de données locale
- MFRC522 — lecteur de badges RFID (Raspberry Pi)
- API REST — synchronisation avec un serveur distant
├── main.py # Point d'entrée, orchestre view/model/rfid
├── view.py # Interface graphique Pygame (scènes, boutons, clavier)
├── model.py # Accès base de données MariaDB
├── api_client.py # Client API pour synchronisation distante
├── rfid.py # Lecture RFID via MFRC522 (Raspberry Pi)
├── fake_rfid.py # Mock RFID pour le développement sur PC
├── requirements.txt # Dépendances Python
├── sql/
│ ├── createDB.sql # Schéma de la base de données
│ ├── procedures.sql # Procédures stockées (format DELIMITER)
│ └── test_data.sql # Données de test
├── fonts/ # Polices (LiberationSans)
├── icons/ # Icônes des boutons (format BMP)
├── img/ # Images (logo ORIF)
├── run.sh # Script de lancement sur Raspberry Pi
└── make # Script de build
- Python 3.9+ installé
- Docker Desktop (pour MariaDB)
python -m venv timbreuse
source timbreuse/Scripts/activate # Git Bash / MinGW
# ou
timbreuse\Scripts\activate.bat # CMDpip install pygame pygame-vkeyboard mariadbdocker run -d --name timbreuse-db \
-p 3306:3306 \
-e MARIADB_ROOT_PASSWORD="" \
-e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 \
-e MARIADB_DATABASE=timbreuse2022 \
mariadb:11.4docker cp sql/createDB.sql timbreuse-db:/tmp/createDB.sql
docker exec timbreuse-db bash -c "mariadb -u root < /tmp/createDB.sql"
docker cp sql/procedures.sql timbreuse-db:/tmp/procedures.sql
docker exec timbreuse-db bash -c "mariadb -u root < /tmp/procedures.sql"docker cp sql/test_data.sql timbreuse-db:/tmp/test_data.sql
docker exec timbreuse-db bash -c "mariadb -u root < /tmp/test_data.sql"source timbreuse/Scripts/activate
python main.pyL'application détecte automatiquement Windows (os.name == 'nt') et utilise fake_rfid.py au lieu du vrai lecteur RFID.
sudo apt install mariadb-server libmariadb-dev
pip install -r requirements.txt
sudo mariadb-secure-installationLancer avec ./run.sh ou python main.py.
- Écran d'attente : affiche l'heure et le logo ORIF (rebondissant)
- Badge détecté : affiche le nom de l'utilisateur avec boutons Entrée/Sortie
- Badge inconnu : clavier virtuel pour saisir nom/prénom
- Historique : 5 derniers pointages, détail par jour, heures semaine courante/précédente
- Fermer :
Escape, clic sur X, ouCtrl+Cdans le terminal
| Paquet | Usage |
|---|---|
| pygame | Interface graphique |
| pygame-vkeyboard | Clavier virtuel tactile |
| mariadb | Connecteur base de données |
| mfrc522 | Lecteur RFID (Raspberry Pi uniquement) |