8. Doporučený migrační plán
Cíl migrace
Přechod z Base44 platformy na vlastní stack:
- Frontend: React SPA (zachovat stávající kód, nahradit Base44 SDK)
- Backend: Vlastní API server (PHP / Node.js / Go — dle preference)
- Databáze: PostgreSQL nebo MySQL
Fáze migrace
Fáze 1 — Příprava a datový model (1–2 týdny)
Ověřený fakt — datový model je plně zdokumentován v entity JSONC souborech.
- Navrhnout SQL schéma na základě
base44/entities/*.jsonc - Definovat vztahy a indexy (foreign keys, date indexy pro kalendář)
- Nastavit vývojové prostředí (DB, API server)
- Napsat export/import skript pro migraci dat z Base44 (JSON export → SQL INSERT)
Klíčové tabulky: calendar_events, bookings, clients, therapists, rooms, availability_blocks, services, payment_logs, credit_transactions, client_packages, notification_logs, activity_logs, otp_codes, system_settings
Fáze 2 — API backend (2–4 týdny)
Napsat vlastní REST API pokrývající veškeré operace. Priority:
Blok A — Kritická cesta (kalendář + rezervace):
GET/POST/PUT/DELETE /calendar-eventsGET /availability-blocks+ výpočet volných slotůPOST /bookings(vytvoření + business logika splatnosti)POST /bookings/:id/cancel(storno logika s refundem)
Blok B — Klientský portál:
POST /auth/otp/request+POST /auth/otp/verifyGET /client/bookingsPOST /client/bookings/:id/pay(kredit, balíček)
Blok C — Podpůrné operace:
- CRUD
/clients,/therapists,/rooms,/services GET/POST /payment-logsPOST /notifications/send(wrapper nad Resend)GET /activity-logs
Blok D — Automatizace:
- Cron job pro
reminderDispatcher(každých 5 minut nebo nahradit queue) POST /outlook/sync(MS Graph API)
Fáze 3 — Frontend refaktoring (2–3 týdny)
Cíl: nahradit base44.entities.* a base44.functions.invoke() voláním vlastního API.
Strategie — API abstrakce layer:
Místo přímé výměny každého SDK volání doporučujeme vytvořit API klient modul:
// src/api/client.js (nový)
export const api = {
calendarEvents: {
list: (params) => fetch('/api/calendar-events?' + new URLSearchParams(params)),
create: (data) => fetch('/api/calendar-events', { method: 'POST', body: JSON.stringify(data) }),
// ...
},
bookings: { ... },
// ...
};
Pak nahradit base44.entities.X.list() za api.X.list() — mechanická záměna, která lze z velké části automatizovat grepem.
Postup po stránkách (pořadí dle priority):
Calendar.jsx+ komponentycalendar/— nejkritičtějšíClients.jsx+ClientDetail.jsx- Klientský portál (
ClientPortal.jsxa sub-komponenty) AvailabilityManagement.jsx- Nastavení stránky (nízká priorita)
Fáze 4 — Admin autentizace (1 týden)
Nahradit Base44 session management:
- Implementovat JWT nebo session-cookie auth
- Aktualizovat
AuthContext.jsx— zachovat interface (isLoadingAuth,authError, atd.) - Nastavit middleware/guards pro chráněné routy
Fáze 5 — Testování a cutover (1–2 týdny)
- Paralelní provoz: nový systém v staging, Base44 v produkci
- Migrace dat z Base44 do nové DB
- Smoke testy všech kritických flow:
- Admin vytváří termín v kalendáři
- Klient se přihlásí OTP a zarezervuje termín
- Klient zaplatí kreditem
- Admin stornuje termín s vrácením
- Připomínky se odešlou ve správný čas
- Cutover — přepnutí DNS / deployment
Co ponechat beze změny
Ověřený fakt — tyto části přecházejí bez úprav:
| Oblast | Zdůvodnění |
|---|---|
| Tailwind CSS + shadcn/ui komponenty | Žádná Base44 závislost |
| Logika výpočtu volných slotů | Čistý JavaScript v CalendarUtils.js |
| ICS generátor | Čistá TypeScript funkce |
| OTP flow logika | Přenositelná, jen změna DB layer |
| Storno logika (cancel_booking) | Přenositelná business logika |
| E-mailové šablony + Resend volání | Přímé fetch, jen přemístit do backendu |
| React Query cache strategie | Žádná Base44 závislost |
| Routing struktura | Standardní react-router-dom |
Co přepsat od základu
| Oblast | Zdůvodnění |
|---|---|
| Admin přihlášení | Base44-specific, nutná nová implementace |
AuthContext.jsx |
Závisí na Base44 session |
base44Client.js |
Nutno nahradit vlastním API klientem |
@base44/vite-plugin |
Odstranit z vite.config.js |
Odhadovaná celková náročnost
| Fáze | Odhadovaný čas |
|---|---|
| Datový model + export | 1–2 týdny |
| API backend | 3–5 týdnů |
| Frontend refaktoring | 2–3 týdny |
| Auth | 1 týden |
| Testování + cutover | 1–2 týdny |
| Celkem | 8–13 týdnů (1 developer) |
Odvozeno — odhad předpokládá jednoho zkušeného full-stack developera. Při týmu 2 lidí (frontend + backend) lze zkrátit na 5–8 týdnů.