How agnare/autotransakt works
AutoTransact is a Spring Boot acquiring-transaction automation service. Users import registry data manually or fetch it from MPC; the service deduplicates and stores transactions, groups pending transactions by device and currency, converts amounts to KGS, maps devices to bank accounts, and creates accounting postings. Users can then inspect transactions and postings, manage reference data and bindings, view dashboard summaries, and generate CSV/PDF reports. The README documents scheduled processing, audit logging, JWT roles, and email alerts; unsampled subsystem wiring is shown only where supported by the documented capabilities.
Main entry points: RegistryService.java Registry workflow · TransactionRepository.java JPA repositories · AuthService.java Authentication · ReportService.java Report builder
Components 27
API and security
- Spring Boot app
src/main/java/com/autotransact/AutoTransactApplication.java - Registry API
src/main/java/com/autotransact/controller/RegistryController.java - Auth API
src/main/java/com/autotransact/controller/AuthController.java - Authentication
src/main/java/com/autotransact/service/AuthService.java - JWT service
src/main/java/com/autotransact/security/JwtService.java - JWT filter
src/main/java/com/autotransact/security/JwtAuthenticationFilter.java - User details
src/main/java/com/autotransact/security/AppUserDetailsService.java - Device binding API
src/main/java/com/autotransact/controller/DeviceBindingController.java - Reference API
src/main/java/com/autotransact/controller/ReferenceController.java - Dashboard API
src/main/java/com/autotransact/controller/DashboardController.java - Report API
src/main/java/com/autotransact/controller/ReportController.java - Notification API
src/main/java/com/autotransact/controller/NotificationController.java
Registry processing
- Registry workflow
src/main/java/com/autotransact/service/RegistryService.java - MPC client
src/main/java/com/autotransact/service/MpcRegistryClient.java - Currency rates
src/main/java/com/autotransact/service/CurrencyRateService.java - Bank posting client
src/main/java/com/autotransact/service/BankPostingClient.java
Reporting and operations
- Dashboard summary
src/main/java/com/autotransact/service/DashboardService.java - Report builder
src/main/java/com/autotransact/service/ReportService.java - Alerts and email
src/main/java/com/autotransact/service/NotificationService.java - Scheduled jobs
src/main/java/com/autotransact/service/ScheduledJobs.java - Audit service
src/main/java/com/autotransact/service/AuditService.java
Persistence and integrations
- JPA repositories
src/main/java/com/autotransact/repository/TransactionRepository.java - PostgreSQL
- MPC system
- Bank posting system
- SMTP service
Other components
- Staff user
Connections 28
- Staff user → Registry API: submits registry
- Staff user → Auth API: authenticates
- Staff user → Report API: requests report
- Registry API → Registry workflow: imports or fetches
- Registry workflow → MPC client: fetches registry
- MPC client → MPC system: requests data
- Registry workflow → JPA repositories: reads and writes
- Registry workflow → Currency rates: converts amounts
- Registry workflow → Bank posting client: dispatches posting
- Bank posting client → Bank posting system: sends posting
- Registry workflow → Audit service: records events
- Registry workflow → Alerts and email: sends alerts
- Auth API → Authentication: handles login
- Authentication → JWT service: issues token
- Authentication → JPA repositories: loads user
- JWT filter → JWT service: parses token
- User details → JPA repositories: loads user
- Device binding API → JPA repositories: manages bindings
- Reference API → JPA repositories: reads reference and audit data
- Dashboard API → Dashboard summary: requests overview
- Dashboard summary → JPA repositories: reads transaction data
- Report API → Report builder: builds and exports
- Report builder → JPA repositories: reads transactions and postings
- Report builder → Currency rates: looks up rates
- Notification API → Alerts and email: reads history
- Alerts and email → SMTP service: sends email
- Scheduled jobs → Registry workflow: loads registries
- JPA repositories → PostgreSQL: persists data