Verificat 2026-09-06HTTP 200 · 13 rute publice
Ce qu’il fallait résoudre
Un centre médical avec un nomenclateur de centaines de services tarifés avait besoin que chaque service soit une page propre, trouvable dans la recherche, avec prix et unité de mesure — pas un PDF avec la liste des prix. En plus, les prix et l’équipe changent, donc la clinique devait pouvoir les modifier elle-même, et les programmations devaient arriver à la réception immédiatement, pas dans une boîte e-mail.
Ce que nous avons construit
Next.js 14.2.35 (App Router) avec React 18, TypeScript et Tailwind. Chaque position du nomenclateur médical est devenue sa propre route statique : 521 fichiers `page.tsx` dans `src/app`, dont 481 sous `/servicii` — 184 physiothérapie, 122 services consultatifs, 61 examens médicaux périodiques, 27 gynécologie, 26 ozonothérapie, 23 forfaits de traitement, 18 médecine alternative, 12 diagnostic, le reste par sections. Le sitemap de production liste 890 adresses. Le site est bilingue ro/ru. Le contenu modifiable (médecins, forfaits, traitements, articles, paramètres, images) est stocké dans une base SQLite locale via `better-sqlite3`, avec journal WAL et clés étrangères actives, administrée depuis `/admin` via 20 routes API ; l’authentification utilise `jose` pour la session et `bcryptjs` pour le mot de passe, et le changement de mot de passe invalide les sessions existantes. Les formulaires de programmation et de contact sont validés avec `zod` + `react-hook-form` et envoient le message formaté directement dans Telegram, via Bot API. Il existe aussi un calculateur de prix sur `calculator`.
Ce qui peut être vérifié de l’extérieur
- 890 d’adresses dans le sitemap de production : `curl -s https:/`sitemap.xml` | grep -c '<loc>'` → 890 (2026-09-06).
- Attribution publique : le pied de page sur `https://constructorul.md/` contient « MegaPromoting » avec un lien vers `megapromoting.com` (2026-09-06) ; dans l’historique, le commit `Add MegaPromoting link to footer` (2026-01-27).