Un système de commande de sandwichs en ligne pour les écoles — développé avec Flask, Stripe et Raspberry Pi
Contexte et objectifs du TFE
SandwichSchool est un projet de fin d'études (TFE) réalisé dans le cadre de ma formation. L'objectif était de créer une solution numérique complète permettant aux élèves de commander leurs sandwichs en ligne de manière simple et rapide.
Remplacer les commandes papier par une plateforme web moderne avec paiement en ligne via Stripe, confirmation par email automatique, et un tableau de bord administrateur pour gérer les commandes en temps réel.
Ce projet m'a permis de maîtriser le développement web full-stack, la gestion de base de données, l'intégration d'API de paiement, la configuration réseau et le déploiement sur Raspberry Pi.
Le site est fonctionnel et accessible en ligne sur sandwichschool.be. Il peut être utilisé par n'importe quelle école souhaitant digitaliser ses commandes de repas ou sandwichs.
Technologies et outils utilisés dans le projet
Backend et serveur web
Paiement en ligne sécurisé
Base de données locale
Emails automatiques
Serveur d'hébergement
Partage de fichiers réseau
Le parcours d'une commande de A à Z
L'élève accède au site sandwichschool.be et choisit son sandwich parmi les options disponibles dans le menu.
Les articles sélectionnés s'ajoutent au panier. L'élève peut modifier les quantités avant de passer à la caisse.
Le paiement se fait via Stripe de manière sécurisée. Les données bancaires ne transitent jamais par notre serveur.
Un email de confirmation est envoyé automatiquement au client avec le récapitulatif de sa commande. L'admin reçoit aussi une notification.
L'administrateur peut consulter toutes les commandes dans un tableau de bord dédié pour préparer et gérer les livraisons.
Architecture et fichiers du projet
Le code source complet du projet est disponible sur GitHub. Il comprend le backend Flask, les templates HTML et la base de données SQLite.
Voir sur GitHubLe cœur du projet. Contient toutes les routes Flask, la gestion du menu, l'intégration Stripe, l'envoi d'emails SMTP et la connexion à la base de données SQLite.
PythonLa page principale du site. Affiche le menu des sandwichs et boissons, le panier interactif en sidebar, et le bouton de paiement Stripe.
HTML / CSS / JSPage de confirmation affichée après un paiement réussi. Confirme la commande à l'utilisateur et lui indique qu'un email a été envoyé.
HTMLPage affichée si l'utilisateur annule le paiement sur Stripe. Propose de retourner au menu pour recommencer.
HTMLInstalle Flask et Stripe avec pip :
pip install flask stripe
Remplace les clés API dans app.py :
stripe.api_key = "sk_test_..."
Configure l'envoi Gmail dans app.py :
EMAIL_SENDER = "ton@gmail.com"
Démarre l'application Flask :
python app.py
Pour tester le paiement en mode test, utilise :
4242 4242 4242 4242
Date : n'importe quelle date future | CVC : n'importe quels 3 chiffres
Structure de la base de données SQLite
Étudiante TFE — Développement Web & Réseaux
Passionnée par le développement web et les nouvelles technologies, j'ai réalisé ce projet de fin d'études pour répondre à un besoin concret dans les établissements scolaires. SandwichSchool est le résultat de mois de travail et d'apprentissage.
Rapport TFE — Rabia Karakus