Ovaj projekat predstavlja backend web aplikacije za iznajmljivanje automobila (CarTeh). API je dokumentovan korišćenjem Swagger (OpenAPI 3.0) specifikacije.
Za dokumentovanje REST API-ja korišćen je alat Swagger UI, koji omogućava:
- pregled svih dostupnih API ruta
- opis zahteva i odgovora
- testiranje API poziva direktno iz browser-a
- autentifikaciju putem JWT tokena
Nakon pokretanja backend servera, Swagger UI je dostupan na sledećoj adresi:
http://localhost:3000/api-docs
Za pristup zaštićenim rutama:
- Izvršiti login ili registraciju korisnika
- Kopirati dobijeni JWT token
- U Swagger UI kliknuti na dugme Authorize
- Uneti token u sledećem formatu:
Bearer <JWT_TOKEN>
Swagger dokumentacija obuhvata sledeće grupe API operacija:
- User
- registracija
- login
- dohvat podataka o korisniku
- Cars
- pregled dostupnih vozila
- Booking
- provera dostupnosti
- kreiranje rezervacije
- pregled rezervacija korisnika i owner-a
- promena statusa rezervacije
- Owner
- dodavanje i upravljanje vozilima
- owner dashboard
- Document
- upload dokumenata (vozačka, pasoš, lična karta)
- Payment
- evidencija plaćanja
- Integrations
- spoljni servisi (države, konverzija valuta)
- Node.js
- Express.js
- MongoDB
- Mongoose
- Docker & Docker Compose
- Swagger (swagger-jsdoc, swagger-ui-express)
- JWT autentifikacija
- GitHub Actions (CI/CD)
- React (Vite)
Za pokretanje kompletne aplikacije (backend + frontend + baza) potrebno je imati instaliran Docker i Docker Compose.
docker compose up --buildNakon pokretanja:
- Backend API: http://localhost:3000
- Swagger UI: http://localhost:3000/api-docs
- Frontend aplikacija: http://localhost:5173
Aplikacija je prilagođena za pokretanje u cloud okruženju. Konfiguracija se vrši putem environment varijabli, bez hard-kodovanih vrednosti.
- Backend koristi environment promenljive za konekciju sa bazom i CORS podešavanja
- Frontend koristi
VITE_BASE_URLza dinamičko povezivanje sa backend servisom
Na dashboard stranici implementirana je vizualizacija podataka korišćenjem Google Charts API-ja, koja omogućava grafički prikaz statistike sistema (npr. broj rezervacija, statusi, agregirani podaci).
Aplikacija je bila deploy-ovana na cloud platformu u okviru projekta. Link za pristup aplikaciji na cloud-u: https://rentalcar-frontend-efut.onrender.com/
Swagger specifikacija se automatski generiše na osnovu anotacija
u routes/*.js fajlovima, što omogućava jednostavno održavanje i proširivanje API dokumentacije.