How taheryhaia2/mini-api-assurance works
Mini-API Assurance is an insurance-management application: users authenticate, then manage clients, issue and inspect contracts, and file and review claims. The Angular frontend calls a Spring REST API; service-layer rules validate client eligibility, contract dates and claim coverage before persistence. Authentication issues JWTs, while protected API access is role-aware. PostgreSQL stores application records and claim attachments are written to local uploads. The README also documents Swagger/OpenAPI. Some frontend service and backend controller implementations were not sampled, so those links reflect the documented API workflow and repository structure.
Main entry points: app.routes.ts Application routes · ClaimService.java Claim service · client-detail.ts Client detail · AuthController.java Auth controller
Components 31
Angular frontend
- App shell
frontend/src/app/app.ts - Application routes
frontend/src/app/app.routes.ts - Login screen
frontend/src/app/features/login/login.component.ts - Auth service
frontend/src/app/core/services/auth.service.ts - Client screens
frontend/src/app/features/client/client-list/client-list.component.ts - Client detail
frontend/src/app/features/client/client-detail/client-detail.ts - Contract screens
- Claim screens
- User screens
REST API
- Auth controller
src/main/java/com/assurance/mini_api_assurance/controller/AuthController.java - Client controller
src/main/java/com/assurance/mini_api_assurance/controller/ClientController.java - Contract controller
src/main/java/com/assurance/mini_api_assurance/controller/ContractController.java - Claim controller
src/main/java/com/assurance/mini_api_assurance/controller/ClaimController.java - User controller
src/main/java/com/assurance/mini_api_assurance/controller/UserController.java
Insurance services
- Client service
src/main/java/com/assurance/mini_api_assurance/service/ClientService.java - Contract service
src/main/java/com/assurance/mini_api_assurance/service/ContractService.java - Claim service
src/main/java/com/assurance/mini_api_assurance/service/ClaimService.java - User service
src/main/java/com/assurance/mini_api_assurance/service/UserService.java
Identity and access
- Security config
src/main/java/com/assurance/mini_api_assurance/config/SecurityConfig.java - JWT filter
src/main/java/com/assurance/mini_api_assurance/security/JwtAuthFilter.java - JWT service
src/main/java/com/assurance/mini_api_assurance/security/JwtService.java - User details
src/main/java/com/assurance/mini_api_assurance/security/CustomUserDetailsService.java
Data and files
- Client repository
src/main/java/com/assurance/mini_api_assurance/repository/ClientRepository.java - Contract repository
src/main/java/com/assurance/mini_api_assurance/repository/ContractRepository.java - Claim repository
src/main/java/com/assurance/mini_api_assurance/repository/ClaimRepository.java - User repository
src/main/java/com/assurance/mini_api_assurance/repository/UserRepository.java
Other components
- User
- PostgreSQL
- Claim uploads
- Swagger UI
src/main/java/com/assurance/mini_api_assurance/config/OpenApiConfig.java - Browser
Connections 39
- User → Browser: uses
- Browser → App shell: opens
- App shell → Application routes: renders routes
- Application routes → Login screen: routes to
- Application routes → Client screens: routes to
- Application routes → Client detail: routes to
- Application routes → Contract screens: routes to
- Application routes → Claim screens: routes to
- Application routes → User screens: routes to
- Login screen → Auth service: submits credentials
- Auth service → Auth controller: calls auth API
- Client screens → Client controller: calls client API
- Client detail → Client controller: loads client
- Client detail → Contract controller: loads contracts
- Contract screens → Contract controller: calls contract API
- Claim screens → Claim controller: calls claim API
- User screens → User controller: calls user API
- Auth controller → User service: registers and loads users
- Auth controller → JWT service: issues token
- Client controller → Client service: delegates requests
- Contract controller → Contract service: delegates requests
- Claim controller → Claim service: delegates requests
- User controller → User service: delegates requests
- Client service → Client repository: reads and writes
- Contract service → Contract repository: reads and writes
- Contract service → Client repository: loads client
- Claim service → Contract repository: checks contract
- Claim service → Claim repository: reads and writes
- User service → User repository: reads and writes
- Client repository → PostgreSQL: persists records
- Contract repository → PostgreSQL: persists records
- Claim repository → PostgreSQL: persists records
- User repository → PostgreSQL: persists records
- Claim service → Claim uploads: writes attachments
- Security config → JWT filter: configures filter
- JWT filter → JWT service: validates tokens
- JWT filter → User details: loads identity
- User details → User repository: looks up user
- Swagger UI → Browser: serves API docs