Project 05 · of 11
Drive — order management
SAÉ 2.03, “Setting up an IT solution for a company”, consisted in developing a web application simulating a realistic service from the professional world. The assigned topic (topic 4) was a “Drive” (click-and-collect): a management interface allowing customers to create orders and select products. The project was carried out in a group of 3 people we did not choose (RT13: Louis Christmann, Noah Spiegel and myself), precisely to strengthen collaboration and adaptability within a team you do not necessarily know.
The core of the work was implementing a full CRUD for each data type in the schema: product categories, products, customers, orders and the list of products in an order (order lines) with their quantity. The SQL database had to be prepared in advance and pre-filled. The site had to allow entering new customers and new orders, importing products from a file (whose structure is described in a help page), and generating an order sheet listing the products with the total cost.
Once the CRUDs were developed and connected to each other, the last step was deployment to production on two virtual machines to be linked together, installing nginx and gunicorn (Python backend). This deployment part was new to the team and was an opportunity to learn something new.
My role — according to the Gantt chart, I was in charge of the SQL database and of the Product categories, Customers, Orders and Order lines CRUDs; the main page with the total cost, the slides and the production deployment were done together. The complete code is on the team's GitHub repository.
Design and develop a Drive web application: implement a full CRUD for categories, products, customers, orders and order lines, rely on a pre-filled SQL database, handle product import from a file and the generation of order sheets with the total cost, then deploy the solution to production on two VMs (nginx + gunicorn).
- Forming an assigned group of 3 and splitting tasks with a Gantt chart.
- Designing the SQL data model: Categories, Products, Customers, Orders and Order_Line tables (order/product link with quantity).
- Preparing and pre-filling the SQL database.
- Developing a full CRUD for each data type, then connecting the CRUDs to each other.
- Entering new customers and orders; importing products from a file (structure described in a help page).
- Generating an order sheet listing the products and the total cost.
- Deploying to production on two linked VMs, installing and configuring nginx and gunicorn.
- Writing the deployment procedure, preparing the slides / demo and pushing to GitHub.
- Production deployment (two linked VMs, nginx + gunicorn) was new to the team: real end-to-end deployment learning.
- We ran short of time to go into detail on some parts — a lesson in organisation and prioritisation.
- Working in an assigned group, with people you do not necessarily know, to build adaptability and collaboration.
- AC0311 — Use a computer system and its tools.
- AC0312 — Read, run, fix and modify a program.
- AC0313 — Translate an algorithm into a given language and environment.
- AC0314 — Know the architecture and technologies of a website.
- AC0315 — Choose data management mechanisms suited to developing the tool.
- AC0316 — Fit into an environment suited to development and collaborative work.
Deploying to production on two linked virtual machines, with nginx and gunicorn, was a new step for the team: we learned to handle it from start to finish.
Designing the SQL database and structuring the CRUDs upfront so that everyone could develop their part without blocking the others.
Collaborative work with Git, task split through a Gantt chart, compliance with the specification and documentation.
- Project GitHub repository (development, data model, Gantt chart).
- Schedule and Gantt chart (per group).
- Installation and deployment procedure (individual).
- Portfolio project sheet + summary in English (individual).
- Group presentation / demo (8 min + 5 min of questions).
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.
Previews
Documents & files