BTS SIO · épreuve PAPPE
PharmaEquip
Réserver un équipement de laboratoire depuis son téléphone, avec le bon technicien au bon créneau.
a. Le contexte
Dans le laboratoire fictif GSB, l'accès aux équipements sensibles (HPLC, centrifugeuses, autoclaves...) doit être encadré par un technicien qualifié et tracé. Les demandes se faisaient à la main.
L'objectif : une application mobile pour consulter les équipements, réserver un créneau, et laisser l'administrateur valider et assigner les techniciens.
b. Ce que j’ai fait
- 01Trois espaces selon le rôle (employé, technicien, administrateur), avec navigation par onglets et garde de route côté Expo Router
- 02API REST Express organisée en routes, contrôleurs, modèles et middlewares
- 03Base MariaDB de 8 tables, avec historique horodaté de chaque utilisation (access_logs)
- 04Notifications in-app à chaque changement de statut d’une demande
- 05Déploiement de l’API en Docker sur une VM Ubuntu derrière Cloudflare, APK Android généré avec EAS Build
c. Les points techniques
Créneaux calculés, pas stockés
Le back-end génère 8 plages fixes, retire celles déjà réservées et bloque aussi un créneau si tous les techniciens de l'équipement sont occupés ailleurs. Une contrainte UNIQUE en base protège contre deux réservations simultanées.
Authentification JWT + rôles
Middleware protectRoute (token valide, utilisateur non supprimé) puis authorize(...roles) qui renvoie 403. Le token est conservé dans Expo SecureStore et non dans un stockage en clair.
Suppression logique
Utilisateurs marqués supprimés et équipements passés indisponibles : l'historique reste intact et un compte supprimé ne peut plus se connecter.
d. En images
-
fig. 01 · Catalogue employé -
fig. 02 · Connexion -
fig. 03 · Détail et réservation -
fig. 04 · Suivi des demandes -
fig. 05 · Dashboard technicien -
fig. 06 · Techniciens (admin)