How dannyshayh/warrantyproject works
Warranty Project is a Javalin backend for managing users’ products, registrations, receipts, and warranties. The principal workflow is a client request routed to a controller, through entity services and DAOs, into Hibernate-backed persistence; DTO conversion supports API responses. Route filters authenticate JWTs and enforce roles. Separate startup workflows fetch and persist Danish warranty-law text and schedule expiration reminders through SendGrid. The README documents the layered CRUD architecture and background capabilities; unsampled domain wiring is represented only at the documented layer boundaries.
Main entry points: daos Domain DAOs · XmlService.java Law XML ingestion · Routes.java REST routes · App.java Application startup
Components 20
API and security
- Application startup
src/main/java/app/App.java - REST routes
src/main/java/app/routes/Routes.java - Domain controllers
src/main/java/app/controllers - Security controller
src/main/java/app/controllers/SecurityController.java - JWT authorization
src/main/java/app/services/securityService/SecurityControllerService.java - JWT tokens
src/main/java/app/services/tokenService/JwtTokenService.java
Warranty domain
- Entity services
src/main/java/app/services/entityServices - DTO converters
src/main/java/app/services/dtoConverter - Domain entities
src/main/java/app/entity
Persistence
- Domain DAOs
src/main/java/app/daos - Hibernate/JPA
src/main/java/app/config/HibernateConfig.java - PostgreSQL
Background services
- Law XML ingestion
src/main/java/app/services/xmlServices/XmlService.java - XML extraction
src/main/java/app/services/xmlServices/XMLExtractor.java - Warranty scheduler
src/main/java/app/services/notificationServices/WarrantyScheduler.java - Reminder startup
src/main/java/app/services/notificationServices/SendGridService.java - Email service
src/main/java/app/services/notificationServices/EmailService.java
Other components
- API client
- Danish law XML
- SendGrid
Connections 21
- API client → REST routes: sends requests
- Application startup → REST routes: configures
- REST routes → Domain controllers: dispatches
- REST routes → Security controller: runs filters
- Domain controllers → Entity services: delegates
- Security controller → JWT authorization: validates tokens
- Security controller → Domain DAOs: verifies credentials
- JWT authorization → JWT tokens: creates and checks
- Entity services → DTO converters: converts DTOs
- Entity services → Domain DAOs: accesses data
- Domain DAOs → Hibernate/JPA: persists entities
- Hibernate/JPA → PostgreSQL: reads and writes
- Application startup → Law XML ingestion: starts ingestion
- Law XML ingestion → Danish law XML: fetches XML
- Law XML ingestion → XML extraction: extracts content
- Law XML ingestion → Domain DAOs: stores law data
- Application startup → Reminder startup: starts reminders
- Reminder startup → Warranty scheduler: starts scheduler
- Warranty scheduler → Domain DAOs: checks warranties
- Warranty scheduler → Email service: sends reminders
- Email service → SendGrid: submits email