Architektura, technologie a procesy stojící za platformou Revize Plus.
Revize Plus je marketplace propojující české zákazníky — domácnosti, SVJ, bytová družstva, živnostníky a firmy — s certifikovanými revizními techniky pro povinné bezpečnostní revize. Platforma řeší zákonem vyžadovanou periodickou kontrolu elektřiny, plynu, komínů, fotovoltaických systémů a dalších technických zařízení.
Software je navržen s důrazem na dlouhodobou udržovatelnost. Kombinuje osvědčené architektonické vzory (Domain-Driven Design, Hexagonální architektura, CQRS) s moderním technologickým stackem postaveným na zavedených enterprise nástrojích.
Backend je postavený jako čisté REST API se standardizovanou OpenAPI dokumentací (generovanou automaticky přes API Platform). Veškerá funkcionalita systému je dostupná přes API endpointy — současné webové rozhraní (Next.js) je pouze jedním z možných klientů, nikoli jediným přístupovým bodem.
/api/docs. Klienti mohou automaticky generovat typový kód v libovolném jazyce.Backend je rozdělen do tří jasně oddělených vrstev. Toto rozdělení vychází z principů Domain-Driven Design a Hexagonální architektury (známé také jako Ports and Adapters). Pro orchestraci use-case scénářů je použit vzor CQRS (oddělení čtení a zápisu). Hlavní přínos tohoto přístupu je nezávislost doménové logiky na konkrétním frameworku, snadná testovatelnost a možnost vyměnit části systému (např. databázi nebo API vrstvu) bez přepisu obchodní logiky.
Tok požadavku
HTTP požadavek → API Platform → Command nebo Query Bus → Handler → doménová logika → Repository → databáze. Každá vrstva má jasně definovanou odpovědnost a komunikuje přes rozhraní, ne přes konkrétní implementaci.
Stack je postaven výhradně na zavedených, dlouhodobě udržovaných open-source technologiích s aktivní komunitou a jasnou cestou aktualizací.
| Technologie | Verze | Účel |
|---|---|---|
| PHP | 8.4 | Programovací jazyk pro backend |
| Symfony | 7.4 | Aplikační framework |
| API Platform | 4.2 | REST API framework s OpenAPI dokumentací |
| Doctrine ORM | 3.3 | Mapování objektů na databázi |
| Symfony Messenger | — | Command/Query bus pro CQRS architekturu |
| Lexik JWT Bundle | — | Stateless autentizace přes JWT tokeny |
| Technologie | Verze | Účel |
|---|---|---|
| Next.js | 15 | React framework s App Routerem |
| React | 19 | UI knihovna |
| TypeScript | — | Typová bezpečnost a IDE podpora |
| TanStack Query | v5 | Správa stavu dat ze serveru |
| Zustand | — | Klientský state management |
| React Hook Form + Zod | — | Formuláře a validace |
| Tailwind CSS | 4 | Stylování s utility-first přístupem |
| shadcn/ui | — | Knihovna přístupných UI komponent |
| Technologie | Verze | Účel |
|---|---|---|
| MariaDB | 10.11 | Relační databáze |
| Docker Compose | — | Lokální vývoj a kontejnerizace |
| Nginx | — | Web server a reverse proxy |
| Mailpit | — | Vývojový SMTP server |
lexik/jwt-authentication-bundle. Žádné session cookies, žádný server-side state./api/auth a /api/docs jsou přístupné bez autentizace, vše ostatní vyžaduje platný JWT token.Kvalita je vynucována automaticky — žádný kód se nedostane do produkce bez splnění stanovených standardů.