0%
Aymen
Retour aux projets
WebLivré2026

One Bite Candy

E-commerce de confiserie : catalogue, panier, livraison à domicile et stop-desk avec suivi transporteur, et back-office complet.

Mon rôle
Développeur Full Stack
Période
juin 2026 — août 2026
Statut
Livré
One Bite Candy
Aperçu

One Bite Candy est la boutique en ligne d'une marque de confiserie, en production sur onebitecandy.com. Le client parcourt le catalogue de sucreries, compose son panier et commande en paiement à la livraison, en choisissant entre livraison à domicile et retrait dans un stop-desk du transporteur — les bureaux de retrait qu'Ecotrack opère, à raison d'un par commune.

Sous le capot, la base de code est en TypeScript de bout en bout : boutique et back-office en Next.js, API Node.js et base PostgreSQL. Les médias produits sont stockés sur Cloudflare R2, chaque entité métier suit une convention de suppression logique, et la plateforme est déployée sur un serveur de production via une chaîne CI/CD.

Le défi

Le problème à résoudre

Le réseau de livraison d'Ecotrack s'organise autour de stop-desks, chaque desk correspondant à une commune — et un checkout qui propose une liste de desks obsolète, ou un champ de retrait en texte libre, génère des commandes que le transporteur ne peut pas honorer. Comme tout se règle à la livraison, une remise ratée signifie qu'aucun paiement n'est encaissé. Le vrai problème consistait à modéliser cette géographie du transporteur dans la plateforme et à la maintenir synchronisée, pour que le checkout ne propose que des points de retrait réellement en service.

Catalogue produits
Catalogue produits
La solution

Comment cela a été construit

La plateforme maintient sa propre table de desks, synchronisée depuis Ecotrack, et le sélecteur de stop-desk du checkout lit directement cette table : le client choisit sa commune et obtient le desk que le transporteur y opère réellement, la livraison à domicile restant l'alternative. Une fois la commande expédiée, son statut est suivi en direct via la même intégration.

Autour de ce cœur, le back-office gère produits et commandes ; les médias produits sont déportés sur Cloudflare R2 plutôt que sur le serveur applicatif ; et toutes les entités métier sont en suppression logique, si bien que retirer un produit ne casse jamais l'historique des commandes qui y font référence. L'ensemble tourne sur un serveur de production, avec des déploiements assurés par une chaîne CI/CD.

Fonctionnalités clés

Ce que ça fait

🛒

Catalogue et panier

Les clients parcourent la gamme de confiseries et composent un panier multi-articles avant de passer commande.

💵

Paiement à la livraison

La commande se passe sans aucun paiement en ligne : le client règle en espèces au transporteur à la remise du colis.

📍

Sélecteur de stop-desk

Une table de desks synchronisée depuis Ecotrack alimente le sélecteur du checkout ; chaque desk correspondant à une commune, le client ne choisit que des points de retrait réellement en service.

🚚

Suivi transporteur en direct

Les expéditions passent par l'intégration Ecotrack et le statut de livraison de chaque commande se suit en direct.

🗂️

Back-office d'administration

Une interface d'administration dédiée gère le catalogue produits et le flux des commandes de bout en bout.

♻️

Suppression logique

Aucune entité métier n'est supprimée physiquement : les enregistrements sont simplement marqués, et l'historique des commandes reste intact quand un produit quitte la vente.

Composez votre box
Composez votre box
Technologies utilisées

Construit avec

Frontend

Next.js

Next.js rend le catalogue et les fiches produit côté serveur — pages rapides et indexables — tandis que la boutique et le back-office partagent la même base React.

TypeScript

TypeScript type tout le chemin du payload de checkout jusqu'à l'appel API du transporteur : les écarts avec les structures de données d'Ecotrack apparaissent à la compilation, pas sur une commande réelle.

Tailwind CSS

Tailwind habille la boutique et le back-office avec un même vocabulaire utilitaire, ce qui permet d'itérer vite tout en gardant un rendu cohérent sur les deux surfaces.

Backend

Node.js

L'API Node.js porte le flux des commandes et les appels Ecotrack : la synchronisation des desks et la création d'expéditions sont des tâches d'E/S qui conviennent à son modèle asynchrone, dans le même langage que le front.

Données

PostgreSQL

PostgreSQL maintient produits, commandes et la table de desks synchronisée sous de vraies contraintes relationnelles, et rend la suppression logique — marquer la ligne, jamais de DELETE — simple à appliquer sur toutes les entités métier.