Aller au contenu
Signal actifTizi Ouzou, Algérie

Développeur Full Stack & ERPMehdi
Messaoudene

Je construis les outils qui font tourner les entreprises.

Applications web & SaaSERP et outils métierApplications desktopAutomatisation de processusDesign d'interface

Je conçois et je livre des logiciels de bout en bout : le site public qui amène les clients, l'application métier qui traite leurs dossiers, et l'automatisation qui supprime la saisie manuelle derrière.

Trois produits en production aujourd'hui, un quatrième en cours de validation client, un SaaS en propre, et une pile d'outils internes qui tournent tous les jours dans une vraie entreprise.

Voir les réalisations
Nœud 02

En chiffres

3
produits en production

web, SaaS et desktop

418
références catalogue

gérées sur BioInteraction DZ

200+
clients desservis

laboratoires et agences

6
automatisations internes

en service quotidien

Nœud 04

Réalisations

Quatre réalisations, du SaaS en production à la démo en cours de validation. Le champ de particules adopte la forme et la couleur de chaque projet à mesure qu'il défile.

Nœud 01SaaS B2B · produit en propre2025 - aujourd'huien production

FleetOra

Le logiciel de gestion des agences de location de voitures en Algérie. Range le cahier.

modules métier
9

modules métier

agences adressables
1 177

agences adressables

paliers d'abonnement
4

paliers d'abonnement

hors ligne capable
100 %

hors ligne capable

Signal reçu

Les agences de location algériennes de 10 à 40 véhicules tiennent leur activité sur un cahier et un tableur. Personne ne sait, à un instant donné, quelle voiture est libre la semaine prochaine, quel contrat est en retard, ni quel véhicule perd de l'argent. Le double-booking est la norme, pas l'accident.

Signal émis

Un SaaS complet qui remplace le cahier : parc, clients, contrats, réservations, entretiens, infractions et comptes. Il fonctionne hors ligne - indispensable quand la connexion tombe - et se synchronise sans jamais perdre une version.

Flux de traitement

  1. Interface

    9 vues métier, responsive sans détection de plateforme - une seule base de code, un point de rupture à 820 px. Site vitrine et application dans le même bundle.

  2. Logique métier pure

    packages/shared - calculs de contrat, détection de chevauchement, validation, matrice de droits. Aucune dépendance UI ni réseau : testable sans navigateur.

  3. Politique de synchronisation

    sync-policy.ts - une fonction pure qui prend un instantané et rend une décision : pousser, appliquer, ou ne rien faire. Avec archivage systématique.

  4. Persistance

    Supabase comme source de vérité, localStorage comme cache hors ligne. Isolation par agence, appliquée en RLS côté base et en RPC pour les actions privilégiées.

  • React 19
  • Vite 6
  • TypeScript
  • Supabase
  • PostgreSQL + RLS
  • PWA
  • Playwright
  • Vercel
Nœud 02Site & catalogue technique · client2025 - aujourd'huien production

BioInteraction DZ

Le catalogue de référence du diagnostic in vitro en Algérie - 418 réactifs, 19 analyseurs, deux langues.

références réactifs
418

références réactifs

analyseurs
19

analyseurs

fiches traduites
273

fiches traduites

langues
2

langues

Signal reçu

Un distributeur de réactifs et d'équipements de laboratoire dont tout le catalogue vivait dans des PDF envoyés par email. Les biologistes ne trouvaient pas les références, l'équipe commerciale renvoyait les mêmes fiches techniques dix fois par semaine, et Google ne connaissait pas l'entreprise.

Signal émis

Un catalogue technique complet et indexable, avec fiches produit, notices téléchargeables, hubs éditoriaux par marque, blog et espace client. Servi en HTML statique depuis un hébergement mutualisé - donc rapide et increvable - avec Supabase pour tout ce qui bouge.

Flux de traitement

  1. Interface

    Deux groupes de routes - français à la racine, anglais sous /en/. Une couche src/views partagée évite de dupliquer la moindre logique entre les locales.

  2. Contenu typé

    Le catalogue est du TypeScript, pas une base : 418 entrées sur 21 sections, versionnées dans git, vérifiées par le compilateur, à coût runtime nul.

  3. Fonctions serveur

    Edge Functions Supabase avec une couche _shared : limitation de débit en token bucket, vérification de JWT, CORS, envoi d'email. Aucun secret dans le bundle.

  4. Livraison

    Export statique déployé en SFTP incrémental sur OVH, avec une configuration Apache portant redirections, en-têtes de sécurité et CSP.

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind v4
  • Supabase
  • Edge Functions
  • OVH
Nœud 03Application desktop · outil interne2026en service

Bio Réactifs

Le catalogue de réactifs de laboratoire, sur le poste de travail. Sans internet, sans serveur, sans compte.

serveur requis
0

serveur requis

hors ligne
100 %

hors ligne

services métier
6

services métier

canaux IPC
34

canaux IPC

Signal reçu

Le catalogue technique vivait dans des classeurs Excel qui circulaient par email. Chaque commercial avait sa version, personne n'avait la bonne, et sortir une fiche technique pour un client demandait de retrouver le bon PDF fournisseur dans une arborescence réseau.

Signal émis

Une application de bureau qui tient tout le catalogue en local : recherche plein-texte instantanée, import Excel guidé qui ne détruit jamais une donnée, dépôt intelligent des fiches fournisseurs, impression silencieuse en lot, sauvegardes automatiques. Elle fonctionne dans un laboratoire sans connexion.

Flux de traitement

  1. Interface

    Écran unique, table virtualisée, recherche débouncée à 200 ms déléguée à SQLite - aucun filtrage côté client. Sept modales, raccourcis clavier en cascade.

  2. Pont IPC

    Isolation de contexte active, aucun accès Node dans le renderer. Le preload énumère explicitement la surface exposée : 34 canaux nommés domaine:action, pas d'ipcRenderer brut.

  3. Couche de services

    Six services dans le processus principal - produits, documents, import, export, impression, sauvegarde. L'enregistrement des canaux est séparé de leur implémentation.

  4. Stockage local

    SQLite en mode WAL, clés étrangères actives, index plein-texte FTS5 en trigrammes synchronisé par triggers. Prix stockés en centimes.

  • Electron 31
  • React 18
  • Vite 5
  • SQLite FTS5
  • better-sqlite3
  • ExcelJS
  • pdf-lib
  • Tailwind CSS
Nœud 04SaaS métier · démonstrateur client2026en cours

Cabinet Médical

Sept métiers différents - analyses, parapharmacie, location, stock, facturation, RH, paie - un seul pivot qui les tient tous.

modules métier
7

modules métier

modèles de données
22

modèles de données

pages d'administration
23

pages d'administration

mutations auditées
100 %

mutations auditées

Signal reçu

Un centre médical algérien gère sept activités distinctes sur des supports séparés : commandes d'analyses, ventes parapharmaceutiques, location de véhicules sanitaires, stock, facturation, RH et cotisations CNAS. Le périmètre initial a été chiffré et validé, puis la RH et la paie s'y sont ajoutées en cours de route - sans qu'aucune de ces briques ne devienne un silo de plus.

Signal émis

Un SaaS construit autour d'une entité pivot, Commande, qui fait transiter les trois métiers générateurs de flux (analyses, parapharmacie, location) par le même circuit devis → bon de commande → livraison ou contrat → facture, avec un suivi QR public pour les entreprises clientes. La RH et la paie vivent dans un domaine séparé, avec leurs propres calculs de cotisations et de solde de congés.

Flux de traitement

  1. Interface

    23 pages en App Router, thème shadcn/ui générique en attente de la charte finale du client. Les fiches détail 360° (patient, entreprise, véhicule, produit) suivent toutes le même patron : deux colonnes, historique complet, formulaire d'édition repliable.

  2. Domaine pivot

    Commande, avec un type discriminant analyse | parapharma | location, porte statut, token QR et alimente le même pipeline devis → BC → BL/contrat → facture. La RH reste un domaine séparé, hors de ce pivot.

  3. Actions serveur

    13 modules de Server Actions validées par Zod. Chaque mutation écrit dans le journal d'audit append-only, dans la même transaction que l'écriture qu'elle documente.

  4. Persistance

    PostgreSQL via Prisma 7 et @prisma/adapter-pg, une contrainte EXCLUDE au niveau base contre le chevauchement de réservations, et un cabinetId déjà présent sur chaque table métier.

  • Next.js 16
  • React 19
  • TypeScript
  • Prisma 7
  • PostgreSQL
  • Supabase
  • @react-pdf/renderer
  • Zod
Nœud 05

Parcours

  1. 2026

    Bio Réactifs - application desktop

    Le catalogue technique circulait en classeurs Excel par email. Personne n'avait la bonne version.

    Une application de bureau hors ligne : recherche plein-texte, import Excel qui ne détruit rien, impression en lot, sauvegardes automatiques. En service quotidien.

    ElectronSQLiteReact
  2. 2026

    BioInteraction DZ - version anglaise et hubs SEO

    Le catalogue n'existait qu'en français et l'entreprise était invisible sur les recherches par marque.

    Un site bilingue dont le compilateur garantit qu'aucune traduction ne manque, cinq hubs éditoriaux par marque, et 273 fiches techniques traduites.

    Next.jsi18nSEO
  3. 2026

    FleetOra - multi-utilisateur et abonnements

    Une agence, ce n'est pas un utilisateur : c'est un patron et ses employés sur le même parc.

    Refonte de l'isolation des données autour de l'agence, trois rôles avec matrice de droits testable, invitations par code, et quatre paliers d'abonnement.

    RBACSupabaseRLS
  4. 2026

    BioInteraction DZ - migration d'infrastructure

    La pile Firebase + Vercel coûtait cher et imposait un serveur applicatif pour un site essentiellement statique.

    Migration vers Supabase et export statique sur hébergement mutualisé. Toute la logique serveur repensée en Edge Functions, avec une frontière nette entre public et privé.

    MigrationSupabaseOVH
  5. 2025

    FleetOra - du cahier au SaaS

    Les agences de location algériennes gèrent leur parc sur un cahier. Le double-booking est la norme.

    Un SaaS complet : parc, contrats, réservations avec détection de conflit, entretiens, finances. Local-first, synchronisé sans jamais perdre une version.

    ReactPWAOffline
  6. 2025

    BioInteraction DZ - mise en ligne du catalogue

    418 références et 19 analyseurs qui n'existaient que dans des PDF envoyés par email.

    Un catalogue technique indexable avec fiches produit, notices téléchargeables, blog et espace client.

    Next.jsCatalogue
  7. 2025

    Automatisation des processus internes

    Des tâches répétitives absorbaient un temps significatif chaque semaine.

    Six outils en service : tri des ventes, remplissage de décomptes, sauvegarde des mails, recherche avancée, états de stock, agent marketing.

    PythonAutomatisation
Nœud 06

Outillage

Front

  • React 19
  • Next.js 16
  • TypeScript
  • Vite
  • Tailwind CSS
  • GSAP
  • Three.js

Back & données

  • Supabase
  • PostgreSQL
  • SQLite
  • Edge Functions
  • Node.js
  • RLS

Desktop & système

  • Electron
  • better-sqlite3
  • electron-builder
  • Python
  • PowerShell

Métier

  • Odoo
  • ERP
  • Design graphique
  • SEO
  • i18n
Nœud 07

Automatisations

Des outils internes en service quotidien. Ils ne font pas de bruit - ils suppriment de la saisie manuelle.

  • Tri des ventes

    Classe et consolide les fichiers de ventes, distribué en exécutable autonome.

    Python · PyInstaller

  • Remplisseur de décomptes

    Remplit automatiquement les décomptes administratifs à partir des données sources.

    Python · Excel

  • Sauvegarde mail OVH

    Archive les boîtes mail hébergées chez OVH, avec guide de restauration.

    Python · IMAP

  • Recherche avancée mail

    Interroge Outlook ou un dossier .eml sur plusieurs critères simultanés.

    Python · COM

  • États de stock

    Génère les états de stock et leurs diagrammes d'activité.

    Python · Reporting

  • Agent marketing IA

    Produit et planifie les contenus marketing depuis une base de connaissances.

    IA · Node

Autres travaux

  • Outil Windows

    MailSearch

    Recherche avancée d'emails sur Outlook ou sur des fichiers .eml locaux, avec critères combinables en ET/OU.

  • Concept e-learning

    SCHOOL4U

    Plateforme e-learning pour l'Algérie - étude et présentation produit.

  • Démonstration web

    Goodman

    Maquette fonctionnelle de site.

Nœud 08

Prendre contact

Un outil métier à construire, un ERP à faire parler avec le reste, un produit à sortir ? Envoyez le signal.

messaoudenemehdi0@gmail.com
Téléphone
0562908581
Localisation
Tizi Ouzou, Algérie
GitHub
Mehdi-afk