Skip to content

Latest commit

 

History

History
100 lines (81 loc) · 5.59 KB

README.md

File metadata and controls

100 lines (81 loc) · 5.59 KB

Getting started

Contexte

Ce projet est un exercice réalisé par Jean Sordes, en 3 jours de travail, dans le cadre d'un test technique pour l'entreprise Alten.

Le front a nécessité 2,5 jours de travail, le back 0,5 jours de travail

Stack technique

C'est une application constitué d'un front en Angular + PrimeNG (Librairie CSS), et d'un back réalisé en NodeJS + SQLite

Installation

  1. Clonez le projet sur votre machine
  2. Installer les dépendances (npm i)
  3. Lancez le back, puis le front (npm start dans les deux cas)

Page produits Page panier API Tests in Insomnia

Consignes reçues

  • Vous êtes développeur front-end : vous devez réaliser les consignes décrites dans le chapitre Front-end
  • Vous êtes développeur back-end : vous devez réaliser les consignes décrites dans le chapitre Back-end (*)
  • Vous êtes développeur full-stack : vous devez réaliser les consignes décrites dans le chapitre Front-end et le chapitre Back-end () () Afin de tester votre API, veuillez proposer une stratégie de test appropriée.

Front-end

Le site de e-commerce d'Alten a besoin de s'enrichir de nouvelles fonctionnalités.

Partie 1 : Shop

  • Issue #1 Afficher toutes les informations pertinentes d'un produit sur la liste
  • Issue #2 Permettre d'ajouter un produit au panier depuis la liste
  • Issue #3 Permettre de supprimer un produit du panier
  • Issue #4 Afficher un badge indiquant la quantité de produits dans le panier
  • Issue #5 Permettre de visualiser la liste des produits qui composent le panier.

Partie 2

  • Issue #6 Créer un nouveau point de menu dans la barre latérale ("Contact")
  • Issue #7 Créer une page "Contact" affichant un formulaire
  • Issue #8 Le formulaire doit permettre de saisir son email, un message et de cliquer sur "Envoyer"
  • Issue #9 Email et message doivent être obligatoirement remplis, message doit être inférieur à 300 caractères.
  • Issue #10 Quand le message a été envoyé, afficher un message à l'utilisateur : "Demande de contact envoyée avec succès".

Bonus :

  • Issue #11 Ajouter un système de pagination et/ou de filtrage sur la liste des produits
  • Issue #12 On doit pouvoir visualiser et ajuster la quantité des produits depuis la liste et depuis le panier

Back-end

Développer un back-end permettant la gestion de produits définis plus bas. Vous pouvez utiliser la technologie de votre choix parmi la liste suivante :

  • Node.js/Express (c'est cette option qui a été choisie)
  • Java/Spring Boot
  • C#/.net Core
  • PHP/Symphony

Le back-end doit gérer les API suivantes :

Resource POST GET PATCH PUT DELETE
/products Create a new product Retrieve all products X X X
/products/:id X Retrieve details for product 1 Update details of product 1 if it exists X Remove product 1

Un produit a les caractéristiques suivantes :

class Product {
  id: number;
  code: string;
  name: string;
  description: string;
  image: string;
  category: string;
  price: number;
  quantity: number;
  internalReference: string;
  shellId: number;
  inventoryStatus: "INSTOCK" | "LOWSTOCK" | "OUTOFSTOCK";
  rating: number;
  createdAt: number;
  updatedAt: number;
}

Le back-end créé doit pouvoir gérer les produits dans une base de données SQL/NoSQL ou dans un fichier json.

Bonus

  • Issue #23 Vous pouvez ajouter des tests Postman ou Swagger pour valider votre API