International FreightLaravel + ReactMulti-currency

Manify

Un système de gestion d'entreprise spécialisé pour les opérations de fret international - gestion des factures avec des paramètres spécifiques au transport, flux de trésorerie multi-devises et analyses de performance des transporteurs.

MultiFacturation multi-devises
4-stateSuivi des paiements
Full-stackLaravel 12 + React
Real-timeTrésorerie & marges
manify Dashboard
Manify dashboard showing revenue, margin, cash flow, top clients and sales status

Aperçu

Conçu pour les spécificités de la facturation fret

Manify est un système de gestion d'entreprise conçu spécifiquement pour les sociétés de transport international de marchandises. Les outils ERP génériques ne correspondent pas bien à ce domaine - une facture de fret n'est pas qu'une liste de lignes et un total. Elle porte une référence de transport, des identifiants de camion et de remorque, un coût bateau pour la partie maritime, et une commission transporteur qui affectent directement la marge.

Le système gère la facturation multi-devises, lie les coûts d'achat aux ventes pour un calcul de marge réel, suit le vieillissement des paiements par client et fournit des analyses de performance par transporteur - exactement les données dont une entreprise de fret a besoin pour opérer de manière rentable.

Objectif

  • Gérer les factures avec des champs spécifiques au fret - référence de transport, camion, remorque, coût bateau et commission transporteur - directement sur le document de facturation

  • Gérer la facturation et les paiements multi-devises avec précision, indispensable pour les expéditions transfrontalières facturées en EUR, MAD ou d'autres devises

  • Calculer les marges réelles par expédition : chiffre d'affaires moins taxes, coûts d'achat, coûts bateau et commissions - pas seulement le chiffre d'affaires

  • Maintenir une visibilité claire sur la trésorerie : ce qui est payé, ce qui est partiel, ce qui est en retard, et depuis combien de temps

Mon rôle

Architecture et développement de bout en bout

Architecture backend modulaire

Conçu 12 modules de domaine Laravel 12, chacun avec ses propres modèles, couche de services, contrôleurs et routes API. Auth, Business, Client, Finance, Invoices, Purchases, Reports, Sales, Supplier, et plus.

Modélisation du domaine

Modélisé des entités spécifiques au fret : la vente porte une référence de transport, un camion, une remorque, un coût bateau et un transporteur - tous contribuant au calcul précis de la marge par expédition.

Frontend SPA React

SPA React + TypeScript entièrement découplée, développée avec Vite - TanStack Router pour le routage basé sur les fichiers, Zustand pour les états partagés, carte d'endpoints axios typée dans toute l'application.

Analyses & rapports

Développé quatre types de rapports : ventes & bénéfices (plage de dates), statut des paiements avec tranches de vieillissement, performance par transporteur (coûts bateau + commissions) et analyses par client.

Moteur de paiements & trésorerie

Paiements partiels, flux d'annulation/remboursement, multi-devises et vieillissement des paiements de 0-30 à 90+ jours - tout suivi par rapport aux dates d'échéance des factures configurées par client.

Stack technique

Laravel 12PHP 8.2+ReactTypeScriptViteTanStack RouterLaravel SanctumMySQLREST APIZustandreact-i18nextSpatie MediaLibraryDomPDFYajra DataTablesTailwind CSSZodReact Hook Form

Fonctionnalités principales

Conçu autour du fonctionnement réel de la facturation fret

Gestion des factures

  • Multi-statut : brouillon, complétée, annulée
  • Suivi des paiements en 4 états : payé, partiel, impayé, remboursement
  • Facturation multi-devises (EUR, MAD et plus)
  • Délais par client avec calcul automatique de l'échéance
  • Paiements partiels avec solde courant
  • Génération de PDF de factures à la demande

Paramètres de transport

  • Référence de transport sur chaque facture
  • Identifiants tracteur et remorque
  • Champ coût bateau pour le segment maritime
  • Commission transporteur suivie par facture
  • Transporteurs liés (ClientSuppliers) par client
  • Achats liés aux ventes pour le calcul de la marge

Trésorerie & recouvrements

  • Vieillissement des paiements : 0-30, 31-60, 61-90, 90+ jours
  • Tableau de bord des factures en retard avec montants dus
  • Multi-méthodes : espèces, virement, chèque, carte, crédit
  • Corrections de paiements par annulation et remboursement
  • Encaissements vs décaissements en un coup d'œil
  • Suivi des créances et dettes en cours

CRM & Analyses

  • Profils clients avec délai et données pays
  • Base de données fournisseurs et transporteurs
  • Performance par transporteur : coûts, commissions, moyenne/expédition
  • Analyses par client : dépenses, bénéfice, historique des paiements
  • Meilleurs clients par chiffre d'affaires avec filtrage par plage de dates
  • Marge réelle par expédition après tous les coûts de transport
Atlas Import Co.

Atlas Import Co.

ICE 001234567890001

Active

41

Invoices

184K

Revenue

3

Overdue

Souss Export Ltd

ICE 002345678901002

28 invoices

Maghreb Transit SARL

ICE 003456789012003

15 invoices

All data is fully isolated per business

Multi-entreprise

Plusieurs entreprises, une seule installation

Manify permet de gérer plusieurs entreprises entièrement indépendantes sous un seul déploiement. Chaque entreprise dispose de son propre jeu de données isolé - changer de contexte dans la barre de navigation cible immédiatement chaque facture, client, fournisseur, paiement et rapport sur l'entreprise sélectionnée.

  • Isolation totale des données

    Un scope de requête global sur chaque modèle filtre automatiquement par business_id - aucun scope manuel nécessaire dans le code.

  • Changement de contexte instantané

    Le sélecteur d'entreprise envoie X-Business-ID sur chaque requête API. Changer d'entreprise invalide le router - toutes les données se rafraîchissent sans rechargement de page.

  • Charte graphique par entreprise

    Chaque entreprise configure son propre logo, tampon, thème couleur, numéro fiscal, ICE et RIB. Les PDFs et factures sont brandés par entreprise automatiquement.

  • Sélection persistante

    L'entreprise sélectionnée est sauvegardée dans le localStorage. Les utilisateurs arrivent dans le bon contexte d'entreprise à chaque retour.

Captures d'écran

Un aperçu de la plateforme

manify · Invoices
Invoice list

Invoices

manify · New Invoice
Invoice creation form

New Invoice

manify · Reports
Reports and analytics

Reports

Architecture

API découplée + SPA, backend modulaire

Le backend est une API Laravel 12 organisée en 12 modules autonomes. Le frontend est une SPA React TypeScript entièrement découplée - elle communique uniquement via REST, sécurisée avec Laravel Sanctum. Les deux couches peuvent évoluer indépendamment.

Backend

  • 12 modules de domaine Laravel 12
  • Pattern couche de services - contrôleurs minces
  • Authentification API Laravel Sanctum
  • DomPDF pour les PDFs de factures côté serveur
  • Spatie MediaLibrary pour les pièces jointes
  • Yajra DataTables pour les listes paginées

Frontend

  • SPA React + TypeScript avec Vite
  • TanStack Router pour le routage basé sur les fichiers
  • Stores Zustand pour les données partagées
  • React Hook Form + validation Zod
  • Support multilingue avec react-i18next
  • Carte d'endpoints axios typée centralisée

Points clés

Niche > Générique

Un outil spécialisé qui modélise le domaine réel - réf. transport, camion, remorque, coût bateau - vaut infiniment plus qu'un outil générique qui force des contournements.

La marge est la vraie métrique

Le chiffre d'affaires seul est trompeur dans le fret. Bénéfice réel = CA vente − taxes − coûts achat − coût bateau − commission. Le système calcule cela par expédition, automatiquement.

Le multi-devises est une décision de conception, pas une fonctionnalité

Les opérations internationales facturent en EUR, se font payer en MAD et règlent les transporteurs en devises mixtes. Traiter la devise comme une préoccupation de premier plan dès le début évite des réécritures coûteuses.

Les frontends découplés sont rentables

Construire la SPA React comme un consommateur entièrement séparé de l'API a permis une itération UI plus rapide sans toucher au backend - et a laissé la porte ouverte pour une future application mobile.

Impact

Clarté opérationnelle pour les entreprises de fret

Facturation fret précise

Chaque facture capture le tableau de coûts complet d'une expédition - pas seulement la ligne de service, mais les frais bateau, les commissions transporteur et les détails du camion.

Visibilité réelle de la marge

Le bénéfice par expédition est calculé automatiquement en déduisant tous les coûts de transport du chiffre d'affaires - les propriétaires savent exactement où ils en sont.

Contrôle des recouvrements

Les rapports de vieillissement des paiements montrent exactement quelles factures sont en retard et depuis combien de temps - prioriser les recouvrements devient simple.

Responsabilisation des transporteurs

Les rapports de performance des transporteurs font ressortir lesquels coûtent le plus par expédition - permettant des négociations et des décisions de routage basées sur les données.

Travaillez avec moi

Vous avez un projet similaire en tête ?

Qu'il s'agisse d'un outil métier spécifique à un domaine, d'une plateforme SaaS ou d'un système devant modéliser des opérations réelles complexes - je vous aide à définir la bonne approche avant d'écrire une seule ligne de code.