Aller au contenu
Tous les projets

estock.ma

eStock

Ventes, achats et stock pour les entreprises marocaines.

Rôle
Seul : produit, design, code et infrastructure
Année
2026
Site
estock.ma
Le tableau de bord eStock avec le chiffre d’affaires, les achats, les créances et le graphique des ventes mensuelles

Le problème

eStock est la refonte multi-tenant d’une application de stock historique en Symfony et Vue, qu’un distributeur utilise encore chaque jour. Devis, bons de livraison, factures, achats, stock et paiements dans un seul outil qui fonctionne sur téléphone, pensé pour les règles marocaines : ICE, TVA, droit de timbre et montants en lettres.

Ce que j’ai construit

  1. 01 Des espaces avec des dossiers annuels, des rôles par espace et un catalogue de permissions résolu par dossier.
  2. 02 Un grand livre de stock comme unique source de vérité : lots FIFO, coût moyen pondéré et transferts entre dépôts.
  3. 03 Neuf types de documents partageant un seul moteur de formulaire : lignes réordonnables par glisser-déposer, sections, sous-totaux, et une remise répartie sur les taux de TVA avec le même algorithme en JavaScript et sur le PDF.
  4. 04 Un import qui transfère la base historique d’un vrai client dans un espace neuf, numérotation et historique compris.
  5. 05 Des tableaux de bord aux graphiques SVG rendus côté serveur, dans des couleurs vérifiées pour le daltonisme.
  6. 06 Une page d’accueil en français, anglais et arabe (de droite à gauche), dont les captures sont générées automatiquement depuis un espace de démonstration.

Les détails qui m’ont obsédé

  • Presque tout est annulable : un document validé revient en brouillon, ses mouvements de stock sont inversés et son numéro est conservé.
  • Montants et quantités sont calculés en décimales à précision arbitraire, jamais en flottants.
  • Chaque action utilisateur est enregistrée dans un journal d’audit ClickHouse à rotation automatique, lisible comme un historique en langage clair.
  • Une recherche globale ⌘K qui applique exactement les mêmes règles de visibilité que les listes qu’elle parcourt.

Stack

  • Laravel 13
  • PHP 8.4
  • ClickHouse
  • MySQL 8.4
  • Redis
  • Pest
  • Cloudflare R2
  • Resend
  • Alpine.js
  • Tailwind CSS
  • Blade
  • Docker
Projet suivant Nuvo Une boutique en ligne pensée pour le paiement à la livraison partout au Maroc.