How marcossantoswz/unioff works
Unioff is a student-benefits platform: students and partner businesses use its API to register or sign in, discover businesses and offers, and redeem offers as coupons; businesses manage offers and validate coupons. The backend follows the documented controller–service–repository layering, with PostgreSQL as persistence. The README also describes administrative moderation, while sampled code shows admin authorization for benefit deactivation but not a separate admin panel. Frontend files are present, but their behavior was not sampled, so the graph focuses on evidenced API flows.
Main entry points: AuthController.java Auth API · CupomService.java Coupon operations · EmpresaController.java Business API · EmpresaService.java Business management
Components 20
Accounts and access
- Auth API
unioff-backend/src/main/java/com/unioff/controller/AuthController.java - Authentication
unioff-backend/src/main/java/com/unioff/services/AuthService.java - Student registration
unioff-backend/src/main/java/com/unioff/services/EstudanteService.java - JWT service
unioff-backend/src/main/java/com/unioff/security/JwtService.java
Businesses and offers
- Business API
unioff-backend/src/main/java/com/unioff/controller/EmpresaController.java - Business management
unioff-backend/src/main/java/com/unioff/services/EmpresaService.java - Benefits API
unioff-backend/src/main/java/com/unioff/controller/BeneficioController.java - Benefit management
unioff-backend/src/main/java/com/unioff/services/BeneficioService.java
Coupon lifecycle
- Redemption API
unioff-backend/src/main/java/com/unioff/controller/ResgateController.java - Coupon operations
unioff-backend/src/main/java/com/unioff/services/CupomService.java
Persistence
- User repository
unioff-backend/src/main/java/com/unioff/repository/UsuarioRepository.java - Student repository
unioff-backend/src/main/java/com/unioff/repository/EstudanteRepository.java - Business repository
unioff-backend/src/main/java/com/unioff/repository/EmpresaRepository.java - Benefit repository
unioff-backend/src/main/java/com/unioff/repository/BeneficioRepository.java - Coupon repository
unioff-backend/src/main/java/com/unioff/repository/CupomRepository.java - Student repository
unioff-backend/src/main/java/com/unioff/repository/EstudanteRepository.java - PostgreSQL
Other components
- Students
- Businesses
- Admins
Connections 32
- Students → Auth API: register or sign in
- Businesses → Auth API: register or sign in
- Auth API → Student registration: register student
- Auth API → Business management: register business
- Auth API → Authentication: authenticate
- Student registration → User repository: check and save user
- Student registration → Student repository: save student
- Authentication → User repository: find by email
- Authentication → JWT service: issue token
- Businesses → Business API: manage business
- Students → Business API: browse businesses
- Business API → Business management: request business data
- Business management → Business repository: read and save
- Business management → User repository: read and save user
- Business API → Benefit management: request business offers
- Students → Benefits API: search offers
- Businesses → Benefits API: manage offers
- Admins → Benefits API: deactivate offers
- Benefits API → Benefit management: manage or find offers
- Benefit management → Benefit repository: read and save offers
- Benefit management → Business repository: find owner
- Students → Redemption API: redeem and view history
- Businesses → Redemption API: validate and view coupons
- Redemption API → Coupon operations: process coupon request
- Coupon operations → Student repository: find student
- Coupon operations → Benefit repository: find and increment offer
- Coupon operations → Coupon repository: check, save, validate, list
- User repository → PostgreSQL: read and write
- Student repository → PostgreSQL: read and write
- Business repository → PostgreSQL: read and write
- Benefit repository → PostgreSQL: read and write
- Coupon repository → PostgreSQL: read and write