How rrimeks/java-spring-boot-car-rental works
RentaCar is a full-stack rental platform: customers browse cars, check date availability, authenticate, and reserve; administrators manage the brand and car catalog. The graph follows the shown frontend route and API structure into backend controllers and transactional services, then repositories and JPA entities. README-described UI features and security are retained, but unsampled implementation links are dashed where necessary; frontend API transport and several backend internals were not shown directly.
Main entry points: App.jsx Application routes · carApi.js Car API · api.js RTK base API · BrandService.java Brand management
Components 32
Customer experience
- Home and search
frontend/src/pages/HomePage.jsx - Car catalog
frontend/src/pages/CarListPage.jsx - Car details
frontend/src/pages/CarDetailPage.jsx - Reservations UI
frontend/src/pages/MyReservationsPage.jsx - Admin dashboard
frontend/src/pages/AdminDashboard.jsx - Sign in/up
frontend/src/pages/LoginPage.jsx - Date search
frontend/src/components/SearchBar.jsx
Frontend platform
- Application routes
frontend/src/App.jsx - RTK base API
frontend/src/app/api.js - Redux store
frontend/src/app/store.js - Auth API
frontend/src/features/auth/authApi.js - Brand API
frontend/src/features/brand/brandApi.js - Car API
frontend/src/features/car/carApi.js - Reservation API
frontend/src/features/reservation/reservationApi.js
Backend API
- Auth endpoints
src/main/java/com/rentacar/rentacarproject/controller/AuthController.java - Brand endpoints
src/main/java/com/rentacar/rentacarproject/controller/BrandController.java - Car endpoints
src/main/java/com/rentacar/rentacarproject/controller/CarController.java - Reservation endpoints
src/main/java/com/rentacar/rentacarproject/controller/ReservationController.java
Rental domain
- Brand management
src/main/java/com/rentacar/rentacarproject/service/BrandService.java - Car management
src/main/java/com/rentacar/rentacarproject/service/CarService.java - Reservation logic
src/main/java/com/rentacar/rentacarproject/service/ReservationService.java - Car repository
src/main/java/com/rentacar/rentacarproject/repository/CarRepository.java - Brand repository
src/main/java/com/rentacar/rentacarproject/repository/BrandRepository.java - Reservation repository
src/main/java/com/rentacar/rentacarproject/repository/ReservationRepository.java - User repository
src/main/java/com/rentacar/rentacarproject/repository/UserRepository.java - Rental entities
src/main/java/com/rentacar/rentacarproject/entity
Identity and security
- Auth logic
src/main/java/com/rentacar/rentacarproject/service/AuthService.java - JWT service
src/main/java/com/rentacar/rentacarproject/security/JwtService.java - JWT filter
src/main/java/com/rentacar/rentacarproject/security/JwtAuthFilter.java - Access rules
src/main/java/com/rentacar/rentacarproject/security/SecurityService.java
Other components
- Renter
- Administrator
Connections 44
- Renter → Application routes: uses
frontend/src/App.jsx - Administrator → Application routes: uses · Inferred; not shown in the code that was read.
- Application routes → Home and search: routes to
frontend/src/App.jsx - Application routes → Car catalog: routes to
frontend/src/App.jsx - Application routes → Car details: routes to
frontend/src/App.jsx - Application routes → Reservations UI: protects
frontend/src/App.jsx - Application routes → Admin dashboard: protects
frontend/src/App.jsx - Application routes → Sign in/up: routes to
frontend/src/App.jsx - Home and search → Date search: renders · Inferred; not shown in the code that was read.
- Date search → Car API: searches availability · Inferred; not shown in the code that was read.
- Home and search → Brand API: loads brands · Inferred; not shown in the code that was read.
- Car catalog → Car API: loads cars · Inferred; not shown in the code that was read.
- Car details → Car API: loads details · Inferred; not shown in the code that was read.
- Reservations UI → Reservation API: manages bookings · Inferred; not shown in the code that was read.
- Admin dashboard → Car API: manages cars · Inferred; not shown in the code that was read.
- Admin dashboard → Brand API: manages brands · Inferred; not shown in the code that was read.
- Sign in/up → Auth API: authenticates · Inferred; not shown in the code that was read.
- Redux store → RTK base API: registers
frontend/src/app/store.js - Auth API → RTK base API: injects endpoints · Inferred; not shown in the code that was read.
- Brand API → RTK base API: injects endpoints · Inferred; not shown in the code that was read.
- Car API → RTK base API: injects endpoints · Inferred; not shown in the code that was read.
- Reservation API → RTK base API: injects endpoints · Inferred; not shown in the code that was read.
- Auth API → Auth endpoints: calls API · Inferred; not shown in the code that was read.
- Brand API → Brand endpoints: calls API · Inferred; not shown in the code that was read.
- Car API → Car endpoints: calls API · Inferred; not shown in the code that was read.
- Reservation API → Reservation endpoints: calls API · Inferred; not shown in the code that was read.
- Auth endpoints → Auth logic: delegates to
src/main/java/com/rentacar/rentacarproject/controller/AuthController.java - Brand endpoints → Brand management: delegates to
src/main/java/com/rentacar/rentacarproject/controller/BrandController.java - Car endpoints → Car management: delegates to
src/main/java/com/rentacar/rentacarproject/controller/CarController.java - Reservation endpoints → Reservation logic: delegates to
src/main/java/com/rentacar/rentacarproject/controller/ReservationController.java - Auth logic → User repository: reads/writes users
src/main/java/com/rentacar/rentacarproject/service/AuthService.java - Auth logic → JWT service: creates token
src/main/java/com/rentacar/rentacarproject/service/AuthService.java - Auth logic → Rental entities: builds user
src/main/java/com/rentacar/rentacarproject/service/AuthService.java - Brand management → Brand repository: reads/writes brands
src/main/java/com/rentacar/rentacarproject/service/BrandService.java - Brand management → Car repository: checks attached cars
src/main/java/com/rentacar/rentacarproject/service/BrandService.java - Brand management → Rental entities: maps brands
src/main/java/com/rentacar/rentacarproject/service/BrandService.java - Car management → Car repository: reads/writes cars
src/main/java/com/rentacar/rentacarproject/service/CarService.java - Car management → Brand repository: loads brand
src/main/java/com/rentacar/rentacarproject/service/CarService.java - Car management → Rental entities: maps cars
src/main/java/com/rentacar/rentacarproject/service/CarService.java - Reservation logic → Reservation repository: reads/writes bookings
src/main/java/com/rentacar/rentacarproject/service/ReservationService.java - Reservation logic → Car repository: checks and updates car
src/main/java/com/rentacar/rentacarproject/service/ReservationService.java - Reservation logic → Rental entities: maps booking
src/main/java/com/rentacar/rentacarproject/service/ReservationService.java - JWT filter → JWT service: validates token · Inferred; not shown in the code that was read.
- Access rules → JWT filter: configures filter
src/main/java/com/rentacar/rentacarproject/security/SecurityService.java