How nereu-vitor/localeats-api works
Local Eats is a REST API for local eateries to manage users, addresses, menu items and orders. The main workflow is a client or administrator sending an authenticated request; order creation resolves the user, delivery address and products, calculates fees and totals, then saves the order. The README documents CRUD, role-based access and JWT protection. The sampled services support the order, user and product links shown; wiring for unsampled controllers and security configuration is represented only where documented or evident from the tree.
Main entry points: JWTAuthenticationFilter.java JWT Filters · OrderService.java Order Logic · UserService.java User Logic · ProductService.java Product Logic
Components 24
REST API
- Order API
localeats-api/src/main/java/com/nereuvitor/localeatsapi/controllers/OrderController.java - User API
localeats-api/src/main/java/com/nereuvitor/localeatsapi/controllers/UserController.java - Product API
localeats-api/src/main/java/com/nereuvitor/localeatsapi/controllers/ProductController.java - Address API
localeats-api/src/main/java/com/nereuvitor/localeatsapi/controllers/AddressController.java - Drink API
localeats-api/src/main/java/com/nereuvitor/localeatsapi/controllers/DrinkController.java - Snack API
localeats-api/src/main/java/com/nereuvitor/localeatsapi/controllers/SnackController.java - Error Responses
localeats-api/src/main/java/com/nereuvitor/localeatsapi/exceptions/GlobalExceptionHandler.java
Business Services
- Order Logic
localeats-api/src/main/java/com/nereuvitor/localeatsapi/services/OrderService.java - User Logic
localeats-api/src/main/java/com/nereuvitor/localeatsapi/services/UserService.java - Product Logic
localeats-api/src/main/java/com/nereuvitor/localeatsapi/services/ProductService.java - Address Logic
localeats-api/src/main/java/com/nereuvitor/localeatsapi/services/AddressService.java - Drink Logic
localeats-api/src/main/java/com/nereuvitor/localeatsapi/services/DrinkService.java - Snack Logic
localeats-api/src/main/java/com/nereuvitor/localeatsapi/services/SnackService.java - User Lookup
localeats-api/src/main/java/com/nereuvitor/localeatsapi/services/UserDetailsServiceImpl.java
Persistence
- Order Repository
localeats-api/src/main/java/com/nereuvitor/localeatsapi/repositories/OrderRepository.java - User Repository
localeats-api/src/main/java/com/nereuvitor/localeatsapi/repositories/UserRepository.java - Product Repository
localeats-api/src/main/java/com/nereuvitor/localeatsapi/repositories/ProductRepository.java - Address Repository
localeats-api/src/main/java/com/nereuvitor/localeatsapi/repositories/AddressRepository.java - Drink Repository
localeats-api/src/main/java/com/nereuvitor/localeatsapi/repositories/DrinkRepository.java - Snack Repository
localeats-api/src/main/java/com/nereuvitor/localeatsapi/repositories/SnackRepository.java - MySQL
Security
- JWT Filters
localeats-api/src/main/java/com/nereuvitor/localeatsapi/security/JWTAuthenticationFilter.java - Access Rules
localeats-api/src/main/java/com/nereuvitor/localeatsapi/configs/SecurityConfig.java
Other components
- API Caller
Connections 31
- API Caller → JWT Filters: sends request
- JWT Filters → Order API: protects routes
- JWT Filters → User API: protects routes
- JWT Filters → Product API: protects routes
- JWT Filters → Address API: protects routes
- JWT Filters → Drink API: protects routes
- JWT Filters → Snack API: protects routes
- Access Rules → JWT Filters: configures filters
- Order API → Order Logic: calls
- User API → User Logic: calls
- Product API → Product Logic: calls
- Address API → Address Logic: calls
- Drink API → Drink Logic: calls
- Snack API → Snack Logic: calls
- Order Logic → User Logic: resolves user
- Order Logic → Address Logic: resolves address
- Order Logic → Product Logic: resolves products
- Order Logic → Order Repository: reads and saves
- User Logic → User Repository: reads and saves
- Product Logic → Product Repository: reads and saves
- Address Logic → Address Repository: reads and saves
- Drink Logic → Drink Repository: saves
- Snack Logic → Snack Repository: persists items
- User Lookup → User Repository: loads user
- Order Repository → MySQL: persists orders
- User Repository → MySQL: persists users
- Product Repository → MySQL: persists products
- Address Repository → MySQL: persists addresses
- Drink Repository → MySQL: persists drinks
- Snack Repository → MySQL: persists snacks
- Error Responses → API Caller: returns errors