1. Contexte et objectif du projet
Résumé
L'école met à disposition du matériel (informatique et fournitures) empruntable par les élèves et enseignants. L'application vise à gérer les utilisateurs, suivre l'état du matériel (neuf / mauvais état), détecter les retards, générer des amendes et centraliser les informations dans une base de données sécurisée et sauvegardée régulièrement.
Objectifs détaillés
- Faciliter la gestion des emprunts et des retours.
- Réduire les pertes et retards.
- Suivi précis de l'état et de l'utilisation du matériel.
- Système de notifications automatiques (retards) et génération d'amendes.
- Sauvegarde régulière et sécurisée des données (résilience).
2. Impératifs du projet
Le projet couvre les domaines demandés par le jury TFE.
| Domaine | Livrable / exigence |
|---|---|
| Systèmes d'exploitation | Script de sauvegarde automatique (cron / service) |
| Structure matérielle & logicielle | Base de données SQLite (intégrée à l'application Python) |
| Réseaux informatiques | Serveur NAS pour centralisation et partage des sauvegardes |
| Informatique embarquée | Interface Python (application principale côté client / GUI ou CLI) |
Fonctionnalités proposées
- Gestion des utilisateurs (élèves, professeurs, admins).
- Inventaire des matériels avec état, photos et historique.
- Emprunt / retour avec date prévue et état au prêt / retour.
- Notifications automatiques par e-mail (ou alertes internes) pour les retards.
- Génération d'amendes en cas de non‑respect des délais.
- Historique et rapports exportables (CSV / PDF).
- Sauvegardes régulières vers le NAS et versioning des dumps SQLite.
Architecture technique (proposition)
Voici une architecture simple et robuste adaptée aux contraintes :
- Frontend / Interface : Application Python (Tkinter ou Flask + interface web légère) utilisée par les utilisateurs.
- Base de données : SQLite stockée sur une machine centrale ou sur le NAS (avec accès contrôlé).
- Partage & sauvegarde : Serveur NAS monté via SMB/NFS ; script de sauvegarde qui fait des dumps périodiques et copie vers NAS.
- Notifications : Service périodique (cron) qui vérifie les emprunts en retard et envoie des e-mails ou ajoute des pénalités.
- Sécurité : sauvegardes chiffrées, permissions d'accès restreintes, logs d'audit.
Exemple de schéma de base (simplifié)
-- tables principales (SQLite)
CREATE TABLE users (
id INTEGER PRIMARY KEY,
role TEXT NOT NULL, -- student, teacher, admin
name TEXT NOT NULL,
email TEXT UNIQUE
);
CREATE TABLE items (
id INTEGER PRIMARY KEY,
code TEXT UNIQUE,
name TEXT,
category TEXT,
status TEXT, -- neuf, bon, mauvais
notes TEXT
);
CREATE TABLE loans (
id INTEGER PRIMARY KEY,
user_id INTEGER,
item_id INTEGER,
date_out TEXT,
date_due TEXT,
date_returned TEXT,
fine_amount REAL DEFAULT 0,
FOREIGN KEY(user_id) REFERENCES users(id),
FOREIGN KEY(item_id) REFERENCES items(id)
);