Viarent Online — Funkcionális bemutató
MVP elkészült · backend + frontend összekötve · tesztelt

Viarent Online — online furgonbérlési rendszer

Teljes, lokálisan futtatható MVP: NestJS backend és React frontend, valós adatbázissal, a teljes foglalási életciklussal — a járműválasztástól az aktív bérlésig — és komplett admin felülettel.

168+jármű · 5 telephely
17foglalási állapot
18frontend képernyő
45automata teszt zöld
Áttekintés

Mit csinál a rendszer?

Egy magyar B2B/B2C furgonbérlési platform: az ügyfél online konfigurál és foglal, az admin csapat pedig végigvezeti a bérlést a bonitásvizsgálattól a fizetésen és dokumentumokon át az átadásig.

Az MVP fejlesztés elkészült és tesztelt.

A teljes ügyfél-folyamat és admin felület kész, a backend és frontend össze van kötve, valós PostgreSQL + Redis háttérrel. A külső integrációk (Opten, Számlázz.hu, email, vírusellenőrzés, fájltárolás) mock adapterekkel működnek, így a teljes folyamat valós kulcsok nélkül is végigjátszható.

🚐

Önkiszolgáló foglalás

Az ügyfél böngészi a flottát, konfigurálja a bérlést, megadja az adatait és beküldi — mindezt belépés nélkül, magic-link alapú azonosítással.

🧭

Vezérelt életciklus

17 állapotú állapotgép kíséri végig a foglalást, optimistic lockinggal a párhuzamos módosítások ellen, és teljes audit naplóval.

🛠️

Teljes admin háttér

Dashboard, bonitás-döntés, fizetés-egyeztetés, dokumentum-ellenőrzés, számlák, flotta-, telephely- és felhasználókezelés.

Ügyfél felület

Az ügyfél útja, képernyőről képernyőre

A folyamat a prototípus designnyelvére épül, valós API-hívásokkal és állapotkezeléssel.

1

Választás

Járműkatalógus szűrőkkel, élő havi árral.

2

Foglalás

6-lépéses varázsló: futamidő, kockázat, kiegészítők, adatok.

3

Bonitás / Fizetés

Cégeknél bonitás, majd pro forma és befizetés-jelzés.

4

Dokumentumok

Kötelező iratok feltöltése és ellenőrzése.

5

Átadás

Időpont-egyeztetés, majd aktív bérlés.

/ & /jarmuvek

Kezdőlap & járműkatalógus

  • Dark hero, márka-akcentus, „hogyan működik" lépéssor
  • Szűrés telephelyre, kategóriára (száraz / elektromos / hűtős) és méretre
  • Futamidő-választó, amely élőben átszámolja a havi díjat
  • Jármű-kártyák: raktér, teherbírás, váltó, „Új" jelvény, ár/hó
/foglalas/:id

Foglalási varázsló (6 lépés)

  • Jármű & futamidő (1–36 hó), kezdő dátum
  • Kárkockázati csomag (Csomag nélkül / Alap / Standard / Nulla)
  • Kiegészítők: külföldi használat, további sofőrök (0–5)
  • Szerződő típus + cég vagy magánszemély űrlap (validációval)
  • Összegzés, ÁSZF/szerződés/GDPR elfogadás, beküldés
  • Sikeres beküldés → magic-link kiküldése a követéshez
/belepes · /auth/verify

Magic-link belépés

  • Jelszó nélküli azonosítás email-linkkel
  • Lokálisan a link a /api/v1/dev/outbox nézetben jelenik meg
  • Token beváltása → JWT access + refresh token rotációval
/sajat-berleseim/:id

Saját bérlések & státusz

  • KPI-k (összes / aktív / folyamatban / lezárt) és bérléslista
  • Vizuális státusz-idővonal (8 lépcső)
  • Pro forma megtekintés + befizetés jelzése
  • Dokumentumok feltöltése slot-onként, visszajelzéssel
  • Foglalás visszavonása (aktiválás előtti állapotokban)
Admin felület

Operátori munkafelület

Szerepkör-alapú hozzáférés (admin / operátor / pénzügy / readonly), sötét oldalsávos elrendezés.

/admin

Áttekintő dashboard

  • KPI-k: aktív bérlések, várólisták, flotta, bevétel
  • Teendő-lista (bonitás / fizetés / dokumentum)
  • Mai átadások + legutóbbi foglalások
/admin/foglalasok

Foglalások & dosszié

  • Szűrhető, kereshető lista
  • 7 szekciós dosszié (áttekintés, bonitás, fizetés, dokumentum, számla, napló)
  • Kontextusfüggő életciklus-műveletek
/admin/bonitas

Bonitásvizsgálat

  • Várólista az auto-scoring eredménnyel (zöld/sárga/piros)
  • Opten kritériumok ✓/✗ bontásban
  • Jóváhagyás / elutasítás indoklással
/admin/penzugy

Befizetés-egyeztetés

  • Jelzett befizetések listája
  • Banki adatok rögzítése, jóváírás / elutasítás
  • Mindkét tétel jóváírása → dokumentum-kérés
/admin/dokumentumok

Dokumentum-ellenőrzés

  • Ellenőrzésre váró iratok queue-ja
  • Elfogadás / elutasítás indoklással
  • Mind jóváhagyva → szerződés kész
/admin/szamlak

Számlák

  • Szűrés állapotra, pénzügyi KPI-k
  • Pro forma PDF link (mock Számlázz.hu)
  • Piszkozat számla kiállítása
/admin/flotta

Flottakezelés

  • Jármű létrehozás / szerkesztés / soft-delete
  • Státusz (elérhető / bérelt / szerviz / kivont)
  • Ár automatikus tier-számítással
/admin/telephelyek

Telephelyek

  • Telephely CRUD, nyitvatartás, kontakt
  • Aktiválás / deaktiválás
/admin/felhasznalok

Felhasználók

  • Admin user meghívás, szerepkör-kezelés
  • Aktiválás / inaktiválás (csak admin)
Üzleti logika

17 állapotú foglalási állapotgép

Minden átmenet őrfeltételekkel, mellékhatásokkal (számla, fizetés, dokumentum, email) és audit naplóval. A verziószám-oszlop optimistic lockinggal véd a párhuzamos módosítás ellen.

draft submitted credit_check credit_approved pro_forma_issued payment_review payment_confirmed
docs_pending docs_review contract_ready handover_scheduled active closed
Elágazások: credit_rejected cancelled suspended overdue

Magánszemély esetén a folyamat a bonitásvizsgálatot kihagyja (submitted → pro_forma_issued).

Árazás

Díjszámítás és csomagok

A backend a hiteles ár forrása; minden összeg eurocentben tárolódik a lebegőpontos hibák elkerülésére. ÁFA: 27%.

Futamidő-szorzók

FutamidőSzorzóKedvezmény
1 – 6 hó1,18×felár
6 – 12 hó1,00×alap
12 – 18 hó0,92×−8%
18 hó +0,86×−14%

Kárkockázati csomagok & kiegészítők

TételHavidíjÖnrész
Csomag nélkül0 €1 200 €
Alap89 €800 €
Standard149 €300 €
Nulla kockázat229 €0 €
Külföldi használat+89 €
További sofőr (db)+5 €
Integrációk

Külső rendszerek — mock adapterek

Az adapter-minta miatt a valós bekötés csak a service-implementáció cseréjét igényli; a hívók nem változnak.

IntegrációMock viselkedésÁllapot
Opten bonitásAdószám alapján determinisztikus zöld / sárga / piros score + kritériumokmock
Számlázz.huMock számlaszám + szöveges „PDF" a dev végpontonmock
Email (Postmark)Dev outbox (memória + fájl); magic-linkek itt láthatókmock
ClamAV vírusellenőrzésMindig tiszta (kivéve EICAR teszt-minta)mock
Cloudflare R2 tárolásLokális fájlrendszer (backend/storage/)mock
PostgreSQL 16Valós adatbázis (Docker konténer)valós
Redis 7 / BullMQValós háttérfeladat-sor (overdue-scan cron)valós
Technológia

Architektúra & stack

Backend

  • NestJS 10 modular monolith (12 modul), TypeScript
  • Prisma ORM + PostgreSQL 16
  • Redis 7 + BullMQ háttérfeladatok
  • JWT auth (magic-link + admin jelszó), RBAC
  • Swagger/OpenAPI dokumentáció
  • Zod env-validáció, globális hibakezelés

Frontend

  • Vite + React 18 + TypeScript
  • React Router 6, TanStack Query 5
  • A Viarent brand-tokenekre épülő UI-kit
  • Megosztott API-kliens auto-token-rotációval
  • 18 képernyő (7 ügyfél + 11 admin)

Főbb REST végpontok (/api/v1 prefix)

Metódus + útvonalLeírás
GET /vehiclesJárműlista szűrőkkel és tier-árral
POST /bookingsFoglalás létrehozása + beküldése (publikus)
POST /auth/magic-link · /auth/verifyÜgyfél magic-link kérés és beváltás
GET /my/bookings · /my/bookings/:idSaját foglalások + részletek
POST /my/bookings/:id/payment-claimBefizetés jelzése
POST /my/bookings/:id/documentsDokumentum feltöltés (multipart)
POST /admin/auth/loginAdmin email + jelszó belépés
GET /admin/dashboardKPI-k + teendő-lista
POST /admin/credit-checks/:id/decideBonitás jóváhagyás / elutasítás
POST /admin/payments/:id/reconcileBefizetés egyeztetése
POST /admin/documents/:id/reviewDokumentum jóváhagyás / elutasítás
POST /admin/bookings/:id/{schedule-handover,confirm-handover,close,…}Életciklus-műveletek
Minőség

Tesztek & verifikáció

11

unit teszt
(árazás, állapotgép)

5

e2e teszt
(API, auth)

29

smoke állítás
(teljes életciklus)

100%

zöld
+ tiszta tsc & build

A smoke teszt végigviszi a teljes happy path-t mindkét úton (magánszemély + cég): katalógus → foglalás → magic-link belépés → befizetés-jelzés → admin egyeztetés → dokumentum-feltöltés és -jóváhagyás → átadás → aktív bérlés, plusz a bonitás-jóváhagyás és a dashboard KPI-k.

Indítás

Lokális futtatás egy paranccsal

Előfeltétel: fusson a Docker Desktop, és legyen telepítve a Node.js 20+.

# 1) Függőségek (root + backend + frontend)
npm run setup

# 2) Indítás: Postgres+Redis konténerek → migráció → seed → backend + frontend
npm run dev

Elérhetőségek

Frontendhttps://localhost:5173
API / Swagger:3000/api/v1 · /api/docs
Dev email outbox:3000/api/v1/dev/outbox

Belépési adatok

Adminadmin@viarent.hu / admin1234
Pénzügypenzugy@viarent.hu / finance1234
Ügyfélmagic-link a dev outboxban
Lefedettség

Mi készült el, és mi a következő lépés?

✓ Elkészült (MVP)

  • Teljes ügyfél-foglalási folyamat, magic-link auth
  • 17 állapotú állapotgép + audit napló
  • Komplett admin felület (9 modul)
  • Árazás, bonitás, fizetés, dokumentum, számla, flotta
  • PostgreSQL + Redis háttér, BullMQ feladatsor
  • Unit + e2e + smoke tesztek, Swagger dokumentáció

→ Következő lépések (terv szerint)

  • Valós integrációs kulcsok (Opten, Számlázz.hu, Postmark)
  • M5: havi automata számlázás + 12+ email sablon
  • Skyguard GPS-szinkron (km-állás, pozíció)
  • GDPR-export és anonimizálás felület
  • White-label tenant-onboarding UI
  • Production deploy (Fly.io / Railway) + CI/CD