Moderna demo aplikacija za rezervacije parking mesta sa QR verifikacijom na ulazu. Sastoji se iz Spring Boot backend-a i React (Vite) frontenda, uz uglađen, profesionalan UI i jasno vođene korake plaćanja/verifikacije.
- Kreiranje rezervacije parking mesta i generisanje QR koda
- Plaćanje (simulirano) i promene statusa (PENDING → PAID → CHECKED_IN)
- Skener na kapiji: čitanje QR koda ili ručna verifikacija unosom ID-a rezervacije
- Pomoć/Q&A stranica sa uputstvima za korisnike
- Moderan dark UI, responzivan layout (header, sidebar, kartice)
- Backend: Java 17+, Spring Boot, Maven, ZXing (QR), H2 (default)
- Frontend: React + Vite, React Router, html5-qrcode
cd smart-parking-system
mvn spring-boot:run
# http://localhost:8080cd smart-parking-system/frontend
npm install
npm run dev
# http://localhost:5173Napomena: Frontend poziva backend na portu 8080.
- Na početnoj izaberite slot → „Rezerviši“
- Na stranici rezervacije dobijate QR kod i ID rezervacije
- U „Gate“ skeneru dozvolite kameru
- Skenirajte QR kod, ili
- Prebacite na „Koristi ID rezervacije“ i unesite ID
- Kliknite „Plati sada“ (simulacija) → status prelazi u PAID
- Kliknite „Verifikuj & Otvori rampu“ → status prelazi u CHECKED_IN
Detaljnije uputstvo je dostupno na ruti /help.
- POST /api/reservations
- GET /api/reservations/{id}/qrcode
- POST /api/payments/simulate (plaćanje tokenom)
- POST /api/payments/simulate-by-id (plaćanje po ID-u)
- GET /api/ticket/verify?token=... (verifikacija tokenom)
- POST /api/ticket/verify-by-id (verifikacija po ID-u)
- GET /api/ticket/status?token=... (status token)
- POST /api/ticket/status-by-id (status po ID-u)
smart-parking-system/
├─ src/main/java/com/example/smartparkingsystem/
│ ├─ controller/ (ReservationController, PaymentController)
│ ├─ dto/ (TokenDto, VerifyResponse, TicketStatusResponse, PaymentResponse, ReservationIdDto)
│ ├─ entity/, repository/, util/
└─ frontend/
├─ src/
│ ├─ pages/ (GateScanner, ReservationPage, Help)
│ ├─ App.jsx, main.jsx, index.css
└─ package.json, vite.config.js
- Node 18+ i Java 17+ preporučeni
- Kod fronta je organizovan i lako prilagodljiv temama/bojama
- ESLint uključen; Vite build
- Plaćanje je simulirano (demo)
- QR token je potpisan i vremenski ograničen; za produkciju planirati sigurnosne i payment integracije
MIT