jeansordes / alten-exercise

Boutique TRÈS simplifiée avec Angular + NodeJS + SQLite
https://alten-exercise.vercel.app
0 stars 0 forks source link

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

Partie 2

Bonus :

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