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
C'est une application constitué d'un front en Angular + PrimeNG (Librairie CSS), et d'un back réalisé en NodeJS + SQLite
- Clonez le projet sur votre machine
- Installer les dépendances (
npm i
) - Lancez le back, puis le front (
npm start
dans les deux cas)
- 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.
Le site de e-commerce d'Alten a besoin de s'enrichir de nouvelles fonctionnalités.
- 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.
- 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".
- 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
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.
- Issue #13 /products GET
- Issue #14 /products POST
- Issue #18 /products/:id GET
- Issue #20 /products/:id PATCH
- Issue #22 /products/:id DELETE
- Issue #23 Vous pouvez ajouter des tests Postman ou Swagger pour valider votre API
- Remarque : Dans ce projet, j'ai fais mes tests en utilisant Insomnia (Alternative à Postman, disponible ici) Voir la documentation de Postman pour importer le fichier
api-tests.insomnia.json
dans Postman
- Remarque : Dans ce projet, j'ai fais mes tests en utilisant Insomnia (Alternative à Postman, disponible ici) Voir la documentation de Postman pour importer le fichier