How uoahns23/spring-cgv-24th works
This is a Spring Boot CGV-clone backend for accounts, movie and theater discovery, reservations, concession orders, payments, and favorites. The documented user journey is to browse movies and screenings, reserve seats, and place a theater-specific store order; users can also maintain movie likes and theater favorites. The README describes the domain relationships, while sampled services show reservation seat/pricing work, inventory-backed orders, and payment-related lifecycle handling. Several controller and payment flows are represented at subsystem level because their implementation was not sampled.
Main entry points: ShopService.java Store ordering · ReservationService.java Seat reservations · Theater.java Theaters · User.java User accounts
Components 19
Identity and access
- User accounts
src/main/java/com/ceos24/springboot/user/domain/User.java - Signup and login
src/main/java/com/ceos24/springboot/auth/service/SignupService.java - JWT security
src/main/java/com/ceos24/springboot/global/config/SecurityConfig.java
Movie and theater catalog
- Movies
src/main/java/com/ceos24/springboot/movie/domain/Movie.java - Theaters
src/main/java/com/ceos24/springboot/theater/domain/Theater.java - Screenings and seats
src/main/java/com/ceos24/springboot/theater/service/ScreeningService.java
Reservations and payments
- Seat reservations
src/main/java/com/ceos24/springboot/reservation/service/ReservationService.java - Reservation records
src/main/java/com/ceos24/springboot/reservation/repository/ReservationRepository.java - Reservation expiry
src/main/java/com/ceos24/springboot/reservation/service/ReservationExpirationService.java - Payment operations
src/main/java/com/ceos24/springboot/payment/service/PaymentService.java - Payment records
src/main/java/com/ceos24/springboot/payment/repository/PaymentRepository.java - Toss gateway
src/main/java/com/ceos24/springboot/payment/toss/TossPaymentClient.java
Store orders
- Store ordering
src/main/java/com/ceos24/springboot/shop/service/ShopService.java - Store inventory
src/main/java/com/ceos24/springboot/shop/domain/StoreInventory.java - Store orders
src/main/java/com/ceos24/springboot/shop/domain/StoreOrder.java - Order lifecycle
src/main/java/com/ceos24/springboot/shop/service/StoreOrderLifecycleService.java
Favorites
- Movie likes
src/main/java/com/ceos24/springboot/favorite/service/MovieLikeService.java - Theater favorites
src/main/java/com/ceos24/springboot/favorite/service/TheaterFavoriteService.java
Other components
- Customer
Connections 27
- Customer → Signup and login: signs up or logs in
- Signup and login → User accounts: creates account
src/main/java/com/ceos24/springboot/auth/service/SignupService.java - Customer → Movies: browses
- Customer → Theaters: browses
- Movies → Screenings and seats: has screenings
README.md - Theaters → Screenings and seats: hosts screens
README.md - Customer → Seat reservations: selects seats
- Seat reservations → Screenings and seats: reserves seats for
src/main/java/com/ceos24/springboot/reservation/service/ReservationService.java - Seat reservations → User accounts: loads customer
src/main/java/com/ceos24/springboot/reservation/service/ReservationService.java - Seat reservations → Reservation records: persists booking
src/main/java/com/ceos24/springboot/reservation/service/ReservationService.java - Reservation expiry → Reservation records: releases expired holds
src/main/java/com/ceos24/springboot/reservation/service/ReservationExpirationService.java - Customer → Payment operations: pays
- Payment operations → Payment records: stores payment
- Payment operations → Toss gateway: requests gateway operation
- Customer → Store ordering: orders concessions
- Store ordering → User accounts: loads customer
src/main/java/com/ceos24/springboot/shop/service/ShopService.java - Store ordering → Theaters: loads theater
src/main/java/com/ceos24/springboot/shop/service/ShopService.java - Store ordering → Store inventory: checks stock
src/main/java/com/ceos24/springboot/shop/service/ShopService.java - Store ordering → Store orders: creates order
src/main/java/com/ceos24/springboot/shop/service/ShopService.java - Store ordering → Order lifecycle: delegates cancellation
src/main/java/com/ceos24/springboot/shop/service/ShopService.java - Order lifecycle → Store inventory: restores stock
src/main/java/com/ceos24/springboot/shop/service/StoreOrderLifecycleService.java - Order lifecycle → Payment records: closes pending payment
src/main/java/com/ceos24/springboot/shop/service/StoreOrderLifecycleService.java - Customer → Movie likes: likes movies
- Movie likes → Movies: targets movie
README.md - Customer → Theater favorites: favorites theater
- Theater favorites → Theaters: targets theater
src/main/java/com/ceos24/springboot/favorite/service/TheaterFavoriteService.java - Theater favorites → User accounts: loads customer
src/main/java/com/ceos24/springboot/favorite/service/TheaterFavoriteService.java