The theme of the site is: Moroccan artisanal products (of your choice)
- As a customer I want to add a product to my cart so that I can order it if I want to
- As a customer, I want to remove a product from my cart so that it is no longer taken into account when I place the order
- As a customer, I want to be able to change the quantity of each product in my basket in order to order the desired number
- As an administrator, I want to be able to manage my categories (add, delete, modify) in order to be able to store the products in the categories
- As an administrator, I want to be able to deactivate a category so that it does not appear on the site
- As an administrator, I want to be able to reactivate a category so that it appears on the site
- As a 'user, I can leave a comment on a product in order to give my opinion
- As a user, I want to be able to re-edit my previous comment in order to correct elements
- As an administrator I want to be able to delete a comment
First of all, you must, ++ For the database part: ++
- Create the data dictionary
- Create the relational data schema
- Create the physical schema
- Create the MYSQL database
- Write the following SQL queries :
- List all products
- List categories
- List active categories
- List inactive categories
- List all products by categories
- List products by price
- List products by categories and by price
- Add a product to the basket
- Delete a product from the cart
- Remove all products from a cart
- Update the quantity of a product in the cart • List comments for a product • Update a comment
- Delete a comment
- Delete all comments for a user ++For the backend part: ++
- Install Express JS
- Install an ORM (Sequelize)
- Create the HTTP routes while respecting the API Rest principles. You must have at least one route for each of the following HTTP methods: POST, PUT, DELETE, GET.
- Set up functional tests to test your API. To go further:
- Set up a connection system to verify that it is only a connected user who can add a product to a basket
Deliverables :
- Entities / relations schema
- Physical schema
- UML diagrams
- Application github link
- The scripts for creating the relational database respecting the data modeling schema.
- The scripts of the SQL queries requested previously.
- Techno unit / functional tests
- ExpressJS
- MySQL
- an ORM of your choice (Sequelize, etc.)
- git
- library of tests (JEST, jasmine, mocha, etc.) of your choice
Your code should be documented and well indented. You must be able to explain all parts of the code!
- You will make an individual presentation of your application during the sprint review at the end of the second week.