Verificat 2026-09-06HTTP 200 · 13 rute publice
Ce era de rezolvat
Un centru medical cu un nomenclator de sute de servicii tarifare avea nevoie ca fiecare serviciu să fie o pagină proprie, găsibilă în căutare, cu preț și unitate de măsură — nu un PDF cu lista de prețuri. În plus, prețurile și echipa se schimbă, deci clinica trebuia să le poată edita singură, iar programările trebuiau să ajungă la recepție imediat, nu într-o căsuță de e-mail.
Ce am construit
Next.js 14.2.35 (App Router) cu React 18, TypeScript și Tailwind. Fiecare poziție din nomenclatorul medical a devenit o rută statică proprie: 521 de fișiere `page.tsx` în `src/app`, dintre care 481 sub `/servicii` — 184 fizioterapie, 122 servicii consultative, 61 examene medicale periodice, 27 ginecologie, 26 ozonoterapie, 23 pachete de tratament, 18 medicină alternativă, 12 diagnostic, restul pe secții. Sitemap-ul de pe producție listează 890 de adrese. Site-ul e bilingv ro/ru. Conținutul editabil (medici, pachete, tratamente, articole, setări, imagini) stă într-o bază SQLite locală prin `better-sqlite3`, cu jurnal WAL și chei străine active, administrată din `/admin` prin 20 de rute API; autentificarea folosește `jose` pentru sesiune și `bcryptjs` pentru parolă, iar schimbarea parolei invalidează sesiunile existente. Formularele de programare și de contact sunt validate cu `zod` + `react-hook-form` și trimit mesajul formatat direct în Telegram, prin Bot API. Există și un calculator de preț pe `calculator`.
Ce se poate verifica din exterior
- 890 de adrese în sitemap-ul de producție: `curl -s https:/`sitemap.xml` | grep -c '<loc>'` → 890 (2026-09-06).
- Atribuire publică: subsolul de pe `https://constructorul.md/` conține „MegaPromoting” cu link către `megapromoting.com` (2026-09-06); în istoric, commit-ul `Add MegaPromoting link to footer` (2026-01-27).