How emilxaviervt/supavisor works
This Java/Javalin backend serves a tenant-aware business API for users and roles, assignments, projects and their status history, tenants, and customers/products synchronized with e-conomic. The main workflow is an authenticated request through routing and a controller into a domain service, then persistence or an external accounting API, returning a DTO response. Sampled code confirms project and product service behavior, user management, and selected route wiring; other capabilities are represented from the source tree, but their internal call links are omitted where excerpts do not establish them.
Main entry points: ProjectService.java Project and history · AssignmentService.java Assignment management · UserDAO.java User data access · EconomicProductService.java Product sync
Components 27
API and Routing
- Application entry
src/main/java/app/Main.java - Route package
src/main/java/app/services/routeSecurity/RoutePackage.java - User routes
src/main/java/app/services/routeSecurity/subRoutes/UserRoutes.java - Assignment routes
src/main/java/app/services/routeSecurity/subRoutes/AssignmentRoutes.java - User controller
src/main/java/app/controller/UserController.java - Project controller
src/main/java/app/controller/ProjectController.java - Assignment controller
src/main/java/app/controller/AssignmentController.java - Product controller
src/main/java/app/controller/EconomicProductController.java - Customer controller
src/main/java/app/controller/EconomicCustomerController.java
Domain Services
- User management
src/main/java/app/services/entityServices/UserService.java - Project and history
src/main/java/app/services/entityServices/ProjectService.java - Assignment management
src/main/java/app/services/entityServices/AssignmentService.java - Product sync
src/main/java/app/services/entityServices/EconomicProductService.java - Customer sync
src/main/java/app/services/entityServices/EconomicCustomerService.java
Persistence
- User data access
src/main/java/app/dao/UserDAO.java - Project data access
src/main/java/app/dao/ProjectDAO.java - Assignment data access
src/main/java/app/dao/AssignmentDAO.java - Product data access
src/main/java/app/dao/ProductDAO.java - Customer data access
src/main/java/app/dao/CustomerDAO.java - Hibernate configuration
src/main/java/app/config/HibernateConfig.java - Relational database
Security and Integration
- Authentication
src/main/java/app/controller/SecurityController.java - Token security
src/main/java/app/services/routeSecurity/TokenSecurity.java - e-conomic products
src/main/java/app/services/economic/EconomicProductClient.java - e-conomic customers
src/main/java/app/services/economic/EconomicCustomerClient.java
Other components
- API client
- e-conomic API
Connections 30
- API client → Application entry: sends requests
- Application entry → Route package: loads routes
- User routes → User controller: dispatches
- Assignment routes → Assignment controller: dispatches
- Project controller → Project and history: calls
- User controller → User management: calls
- Assignment controller → Assignment management: calls
- Product controller → Product sync: calls
- Customer controller → Customer sync: calls
- Authentication → User data access: authenticates users
- Authentication → Token security: validates tokens
- User management → User data access: reads and writes
- Project and history → Project data access: reads and writes
- Project and history → Assignment data access: checks assignments
- Project and history → Customer data access: checks customers
- Assignment management → Assignment data access: reads and writes
- Assignment management → User data access: checks users
- Assignment management → Product data access: checks products
- Product sync → Product data access: reads and writes
- Product sync → e-conomic products: requests product data
- e-conomic products → e-conomic API: calls API
- Customer sync → Customer data access: reads and writes
- Customer sync → e-conomic customers: requests customer data
- e-conomic customers → e-conomic API: calls API
- Hibernate configuration → Relational database: configures access
- User data access → Relational database: reads and writes
- Project data access → Relational database: reads and writes
- Assignment data access → Relational database: reads and writes
- Product data access → Relational database: reads and writes
- Customer data access → Relational database: reads and writes