05/09

Projet 05 · sur 09

Drive — gestion de commandes

SAÉ 2.03 · BUT2 · Web / Données · groupe de 3 (RT13) Terminé
SQLCRUDPythonnginxgunicornWebVM LinuxGit / GitHub
Le projet

La SAÉ 2.03 « Mettre en place une solution informatique pour l'entreprise » consistait à développer une application web simulant un service réaliste du monde professionnel. Le sujet imposé (sujet 4) était un « Drive » : une interface de gestion permettant aux clients de créer des commandes et de sélectionner des produits. Le projet se faisait en groupe de 3 personnes non choisies (RT13 : Christmann Louis, Spiegel Noah et moi-même), précisément pour renforcer le travail collaboratif et l'adaptabilité au sein d'une équipe que l'on ne connaît pas forcément.

Le cœur du travail consistait à implémenter un CRUD complet pour chacun des types de données du schéma : catégories de produit, produits, clients, commandes et liste des produits d'une commande (détails) avec leur quantité. La base de données SQL devait être préparée à l'avance et pré-remplie. Le site devait permettre la saisie de nouveaux clients et de nouvelles commandes, l'import de produits via un fichier (dont la structure est décrite dans une aide), et la génération d'une fiche commande listant les produits avec le coût total.

Une fois les CRUD développés puis connectés entre eux, la dernière étape était la mise en production sur deux machines virtuelles à relier, avec l'installation de nginx et de gunicorn (backend Python). Cette partie déploiement était nouvelle pour l'équipe et a été l'occasion d'apprendre quelque chose de neuf.

Mon rôle — d'après le diagramme de Gantt, j'ai pris en charge la base de données SQL ainsi que les CRUD Catégories de produit, Clients, Commandes et Détails de commande ; la page principale avec le coût, le diaporama et la mise en production étant traités en commun. Le code complet est déposé sur le dépôt GitHub de l'équipe.

Objectif

Concevoir et développer une application web de Drive : implémenter un CRUD complet pour catégories, produits, clients, commandes et détails, s'appuyer sur une base SQL pré-remplie, gérer l'import de produits par fichier et la génération de fiches commande avec coût total, puis mettre la solution en production sur deux VM (nginx + gunicorn).

Démarche
  • Constitution d'un groupe de 3 imposé et répartition des tâches via un diagramme de Gantt.
  • Conception du schéma de données SQL : tables Catégories, Produits, Clients, Commandes et Détail_Commande (liaison commande/produit avec quantité).
  • Préparation et remplissage en amont de la base SQL.
  • Développement d'un CRUD complet pour chaque type de données, puis connexion des CRUD entre eux.
  • Saisie de nouveaux clients et commandes ; import de produits par fichier (structure décrite dans une aide).
  • Génération d'une fiche commande listant les produits et le coût total.
  • Mise en production sur deux VM à relier, avec installation et configuration de nginx et gunicorn.
  • Rédaction de la procédure de déploiement, préparation du diaporama / démo et dépôt sur GitHub.
Difficultés surmontées & apprentissages
  • La mise en production (deux VM à relier, nginx + gunicorn) était nouvelle pour l'équipe : un vrai apprentissage du déploiement de bout en bout.
  • Le temps a manqué pour aller dans le détail sur certaines parties — un enseignement sur l'organisation et la priorisation.
  • Travailler en groupe imposé, avec des personnes que l'on ne connaît pas forcément, pour renforcer l'adaptabilité et la collaboration.
Apprentissages critiques (référentiel)
  • AC0311 — Utiliser un système informatique et ses outils.
  • AC0312 — Lire, exécuter, corriger et modifier un programme.
  • AC0313 — Traduire un algorithme dans un langage et pour un environnement donné.
  • AC0314 — Connaître l'architecture et les technologies d'un site web.
  • AC0315 — Choisir les mécanismes de gestion de données adaptés au développement de l'outil.
  • AC0316 — S'intégrer dans un environnement propice au développement et au travail collaboratif.
Réflexivité
Difficultés surmontées

La mise en production sur deux machines virtuelles reliées, avec nginx et gunicorn, était une étape nouvelle pour l'équipe : nous avons appris à la maîtriser de bout en bout.

Idées mises en œuvre

Concevoir la base SQL et structurer les CRUD en amont pour que chacun puisse développer sa partie sans bloquer les autres.

Règles & interlocuteurs respectés

Travail collaboratif avec Git, répartition des tâches via un diagramme de Gantt, respect du cahier des charges et documentation.

Livrables
  • Dépôt GitHub du projet (développement, schéma de données, Gantt).
  • Planning et diagramme de Gantt (par groupe).
  • Procédure d'installation et de déploiement (individuelle).
  • Fiche de projet de portfolio + résumé en anglais (individuelle).
  • Présentation / démo de groupe (8 min + 5 min de questions).
Résumé en anglais

The goal of this project was to set up a realistic service that could happen in the professional world. For us, the subject was the drive: we created the CRUD, then connected them, and the next part was the production start-up with the two virtual machines that had to be connected, then installing nginx and gunicorn. It was new for us, and we learned something new. To put it in a nutshell, it was a very good project — maybe there just wasn't enough time to do things in real detail, but it was great.

Aperçus