statuts & projects
Rapport d'estimation — www.liismaiil.org
Rapport d'estimation — www.liismaiil.org
Document préparé le : 2 août 2026
Destinataires : Associés / Investisseurs
Objet : Évaluation technique, architecture applicative et estimation financière du projet
Vue d'ensemble du projet
www.liismaiil.org est une plateforme de suivi et d'évaluation de stages/programmes internes, développée de juillet 2023 à mars 2026, couvrant :
- Un espace de gestion des stagiaires (interns) avec statistiques hôte/invité
- Un module de progression (stages) avec plateaux d'évaluation interactifs (drag & drop), minuteur et étapes guidées
- Un module d'analyse (insight) avec visualisations de données custom (D3.js)
- Un espace marketing public avec abonnement payant (Stripe)
- Une intégration cartographique (Google Maps)
L'architecture s'appuie sur les route groups et parallel routes du Next.js App Router — un pattern avancé qui permet de charger plusieurs vues indépendantes (statistiques, templates, étapes) en parallèle sur une même page.
Architecture applicative — routes et patterns
Routes constatées dans le code
| Route | Groupe | Rôle |
|---|---|---|
/ | racine | Page d'accueil |
/interns | (dashbord) | Dashboard de suivi des stagiaires — statistiques hôte/invité |
/insight | (progress) | Analyse de données — parallel routes @souras et @template chargées simultanément |
/stages | (progress) | Suivi de progression — parallel route @steps pour les étapes d'évaluation |
/subscription + /subscription/success | (marketing) | Tunnel d'abonnement payant (Stripe) |
/about | (marketing) | Présentation publique |
/confidentialite | (marketing) | Page légale |
Le recours aux parallel routes (@souras, @template, @steps) sur /insight et /stages est une technique avancée du App Router : plusieurs "slots" indépendants sont rendus en même temps dans le même layout (par exemple les statistiques et le template de référence s'affichent côte à côte sans se bloquer mutuellement au chargement), ce qui complexifie l'architecture mais améliore nettement l'expérience utilisateur.
Modules de composants (50 composants React)
| Dossier | Contenu |
|---|---|
components/interns | Statistiques hôte/invité, vue D3 dédiée (InternsD3ViewWrapper) |
components/insight | Visualisations D3 (barres, catégories), templates, menu d'analyse |
components/stage / components/space | Plateaux d'évaluation interactifs : EvalDragOrderBoard (classement par glisser-déposer), EvalClickBoard, EvalSuits, minuteur (timer/useLaunch), étapes guidées (StageSteps, StagesRehearsal) |
components/maps | Carte interactive Google Maps (@vis.gl/react-google-maps) |
components/auth | Authentification (Firebase Auth + JWT) |
components/front | Navigation, footer, tracking analytics, thème |
components/organisation, components/liismaiil, components/presentation, components/search, components/shared | Composants transverses (organisation des données, présentation, recherche) |
Visualisations de données — D3.js
Le module d'analyse ne s'appuie pas sur une librairie de graphiques prête à l'emploi mais sur D3.js directement, ce qui implique un travail de construction manuelle des visualisations (échelles, axes, transitions) :
InternsD3ViewWrapper.tsx— vue D3 dédiée au suivi des stagiairesInsightBars.tsx,InsightCategories.tsx— graphiques en barres et par catégoriesStatSouraDialog.tsx,WindowDialog.tsx— fenêtres de détail statistiqueGuestStats.tsx,HostInterns.tsx,Interns.tsx— tableaux de bord associés
Plateaux d'évaluation interactifs
Les modules stage et space implémentent des interactions riches, plus coûteuses en développement qu'un simple formulaire :
- Drag & drop de classement (
EvalDragOrderBoard) - Sélection par clic (
EvalClickBoard) et suites d'évaluation (EvalSuits) - Minuteur dédié aux sessions d'évaluation (
timer/useLaunch.ts) - Parcours guidé par étapes (
StageSteps,StagesRehearsal,OpenBoard)
Volume et complexité technique
Chiffres mesurés directement sur le codebase
| Indicateur | Valeur |
|---|---|
| Fichiers source (TypeScript + React) | 129 fichiers |
| Lignes de code | ~14 200 lignes |
| Pages et routes | 10 routes (dont 3 slots de parallel routes) + 3 endpoints API |
| Composants React | 50 composants |
| Composants connectés au store (Redux) | 35 composants |
| Slices de state management (Redux) | 3 slices (stageSlice, guestPrismaSlice, searchSlice) |
| Fichiers utilisant Firebase/Firestore | 4 fichiers |
| Fichiers liés au paiement Stripe | 11 fichiers |
| Tests E2E Playwright | 6 suites (accueil, navigation, paiement, connexion, abonnement, smoke test) |
| Dépendances | 65 packages (45 production + 20 dev) |
Stack technique
| Couche | Technologie | Usage |
|---|---|---|
| Framework | Next.js 14 (App Router) | Route groups + parallel routes |
| Interface | HeroUI + Tailwind CSS + Framer Motion | Design system + animations |
| State | Redux Toolkit | Gestion d'état globale |
| Base de données | Firebase/Firestore + Prisma (SQL) | Architecture hybride, migration de données en cours (scripts d'export/synchronisation Firestore ↔ SQL) |
| Authentification | Firebase Auth + JWT custom | app/api/lib/authJwt.ts |
| Paiement | Stripe (checkout + session + webhooks) | Abonnement récurrent |
| Visualisation de données | D3.js | Graphiques et tableaux de bord custom |
| Cartographie | Google Maps (@vis.gl/react-google-maps) | Intégration carte interactive |
| Tests | Playwright | E2E automatisé (6 suites) |
| Typage | TypeScript strict | ~97% du codebase (3 fichiers .jsx restants) |
Note architecture : la présence de scripts dédiés (
migrate:statistics,check:statistics,check:coherence,export:firestore) et de fichiers*-backup.jsondansprisma/indique un travail de migration de données de Firestore vers une base SQL (Prisma), avec des outils de vérification de cohérence — un chantier technique généralement plus long qu'une simple intégration de base de données neuve.
Estimation financière
Méthodologie
Estimation basée sur le volume de code mesuré, la complexité des modules interactifs (D3, drag & drop) et les standards du marché pour un développeur senior full-stack (React / Next.js / Firebase / Prisma).
Décomposition par module
| Module | Heures |
|---|---|
| Architecture Next.js App Router (route groups, parallel routes, middleware) | 40h |
| Authentification et gestion des profils (Firebase Auth + JWT) | 60h |
| Abonnement & paiement Stripe (checkout, session, webhooks) | 70h |
| Dashboard interns (statistiques hôte/invité + vue D3) | 130h |
| Module insight (visualisations D3 custom) | 140h |
| Module stages (plateaux d'évaluation drag & drop, minuteur, étapes) | 150h |
| Intégration cartographie Google Maps | 40h |
| Migration & synchronisation Firestore ↔ Prisma/SQL | 60h |
| Tests E2E Playwright (6 suites) | 30h |
| Qualité du code (TypeScript, ESLint, nettoyage) | 40h |
| Total | 760 heures |
Équivalent : 95 jours de travail (base 8h/jour) soit environ 4,5 mois pour un développeur à temps plein.
Valorisation selon profil et marché
| Profil | Tarif journalier | Estimation totale |
|---|---|---|
| Développeur senior — France (freelance) | 600 €/j | 57 000 € |
| Agence web — France | 800 €/j | 76 000 € |
| Développeur senior — Europe (freelance) | 400 €/j | 38 000 € |
| Développeur senior — Maghreb (freelance) | 250 €/j | 24 000 € |
Comparaison avec le marché
| Type de projet comparable | Fourchette marché |
|---|---|
| SaaS B2B avec dashboard et abonnement | 15 000 € — 35 000 € |
| Plateforme avec visualisations de données custom (D3) | 25 000 € — 45 000 € |
| Application avec cartographie interactive | 20 000 € — 35 000 € |
| www.liismaiil.org (cumul des trois + interactions drag & drop + migration de données) | 45 000 € — 70 000 € |
Résumé exécutif
Ce que représente ce projet
www.liismaiil.org est une plateforme de suivi et d'évaluation avec des interactions riches, au-delà d'un simple CRUD :
- Un dashboard temps réel — statistiques hôte/invité sur les stagiaires
- Des visualisations de données custom en D3.js — pas de librairie clé-en-main, construction manuelle des graphiques
- Des plateaux d'évaluation interactifs — glisser-déposer, minuteur, parcours par étapes
- Un abonnement payant Stripe — tunnel complet checkout + webhooks
- Une architecture Next.js avancée — route groups et parallel routes pour des vues indépendantes chargées simultanément
- Une migration de données en cours — de Firestore vers une base SQL via Prisma, avec outils de vérification de cohérence
Indicateurs vérifiables statiquement
(Aucun audit Lighthouse live n'a été lancé pour ce rapport — les indicateurs ci-dessous sont uniquement ceux vérifiables directement dans le code, sans exécuter l'application.)
| Critère | Résultat |
|---|---|
TypeScript strict (tsconfig strict: true) | 🟢 Activé |
| Part du codebase en TypeScript | 🟢 ~97% (3 fichiers .jsx sur 117) |
| Tests E2E Playwright présents | 🟢 6 suites (accueil, navigation, paiement, connexion, abonnement, smoke) |
| Configuration ESLint | 🟢 Présente (.eslintrc.json, next lint) |
| Durée du projet | 🔵 Juillet 2023 → Mars 2026 |
Estimation finale
Entre 45 000 € et 70 000 € selon les standards du marché français, pour une application développée par 2 contributeurs principaux sur 32 mois.
Rapport généré le 2 août 2026 — données extraites directement du codebase (comptages de fichiers, lignes, dépendances, routes) Aucun audit Lighthouse ou build n'a été exécuté pour produire ce rapport — voir section "Indicateurs vérifiables statiquement"