How narmi924/uptrail works
Uptrail is a staff-training workflow application: employees check eligibility and submit training applications, managers decide them, employees confirm completion and submit fee claims, and administrators register reimbursements and maintain the policies and catalogue. Annual entitlements track training-day and budget reservations, commitments, and reimbursements; signed-in users can also view a training calendar, while managers get team reports. The graph combines sampled service behavior with README-documented capabilities; links for unsampled subsystems reflect documented behavior rather than inspected call sites.
Main entry points: ClaimCommandService.java Fee claims · ApplicationCommandService.java Application changes · CourseApplicationRepository.java Application records · EntitlementService.java Entitlement ledger
Components 26
Identity and people
- Sign-in and security
src/main/java/com/uptrail/identity/web/SecurityConfig.java - Staff directory
src/main/java/com/uptrail/organisation/service/EmployeeDirectoryService.java - Approval routing
src/main/java/com/uptrail/organisation/service
Training workflow
- Employee applications
src/main/java/com/uptrail/application/web/EmployeeApplicationController.java - Eligibility preview
src/main/java/com/uptrail/application/service/ApplicationPreviewService.java - Application evaluation
src/main/java/com/uptrail/application/service/ApplicationEvaluator.java - Application changes
src/main/java/com/uptrail/application/service/ApplicationCommandService.java - Application records
src/main/java/com/uptrail/application/repository/CourseApplicationRepository.java - Manager decisions
src/main/java/com/uptrail/approval/service/ManagerApplicationService.java - Course catalogue
src/main/java/com/uptrail/catalogue/service/CatalogueQueryService.java
Claims and ledger
- Fee claims
src/main/java/com/uptrail/claim/service/ClaimCommandService.java - Claim documents
src/main/java/com/uptrail/claim/service/DocumentStorage.java - Entitlement ledger
src/main/java/com/uptrail/entitlement/service/EntitlementService.java - Balance and history
src/main/java/com/uptrail/entitlement/service/EntitlementQueryService.java
Calendar and reports
- Training calendar
src/main/java/com/uptrail/reporting/service/CalendarQueryService.java - Team reports
src/main/java/com/uptrail/reporting/service/ReportQueryService.java
Administration and mail
- Administration
src/main/java/com/uptrail/admin/service - Audit trail
src/main/java/com/uptrail/audit/service/AuditService.java - Email outbox
src/main/java/com/uptrail/notification/service/NotificationService.java - Mail transport
src/main/java/com/uptrail/notification/service/MailTransport.java
Other components
- Employee
- Manager
- Administrator
- Uptrail application
- MySQL database
- SMTP or file mail
Connections 48
- Employee → Sign-in and security: signs in
- Manager → Sign-in and security: signs in
- Administrator → Sign-in and security: signs in
- Uptrail application → Sign-in and security: configures access
- Employee → Employee applications: submits application
- Employee applications → Eligibility preview: checks eligibility
- Eligibility preview → Application evaluation: evaluates request
- Application evaluation → Course catalogue: reads catalogue
- Eligibility preview → Application records: checks conflicts
- Employee applications → Application changes: updates application
- Application changes → Application evaluation: rechecks eligibility
- Application changes → Application records: saves application
- Application changes → Entitlement ledger: reserves allowance
- Application changes → Audit trail: records change
- Application changes → Email outbox: queues email
- Manager → Manager decisions: reviews application
- Manager decisions → Application records: reads applications
- Manager decisions → Staff directory: reads staff
- Manager decisions → Entitlement ledger: reads balances
- Manager decisions → Application changes: decides application
- Employee → Fee claims: claims course fee
- Manager → Fee claims: reviews claim
- Administrator → Fee claims: registers reimbursement
- Fee claims → Claim documents: stores documents
- Fee claims → Entitlement ledger: updates ledger
- Fee claims → Audit trail: records change
- Fee claims → Email outbox: queues email
- Employee → Balance and history: views balance
- Balance and history → Entitlement ledger: reads movements
- Balance and history → Application records: reads course details
- Employee → Training calendar: views calendar
- Manager → Team reports: views team reports
- Training calendar → Application records: reads courses
- Training calendar → Course catalogue: reads categories
- Team reports → Application records: reads attendance
- Team reports → Entitlement ledger: reads balances
- Administrator → Administration: maintains operations
- Administration → Staff directory: maintains staff
- Administration → Approval routing: maintains routing
- Administration → Course catalogue: maintains catalogue
- Administration → Entitlement ledger: maintains allowances
- Administration → Audit trail: checks audit and ledger
- Email outbox → Mail transport: dispatches messages
- Mail transport → SMTP or file mail: sends or writes
- Application records → MySQL database: reads and writes
- Entitlement ledger → MySQL database: reads and writes
- Fee claims → MySQL database: reads and writes
- Audit trail → MySQL database: stores events