How katragadda-bharath/exacker-app works
Exacker is an Android app for managing groups, workers, land, expenses, and payments, with local persistence and server synchronization. The user enters through the app screens, works with domain records, and can synchronize queued changes to a Node/Express service backed by SQL Server. The tree shows separate UI, repository, database, and sync layers; server excerpts confirm sync processing and database operations. Android implementation details and the architecture document were not sampled, so links between Android layers are limited to the evident sync contract.
Main entry points: MainActivity.java App entry · repository Domain repositories · SyncRepository.java Sync repository · SyncApi.java Sync API client
Components 20
Android app
- App entry
app/src/main/java/com/example/exacker/MainActivity.java - Domain screens
app/src/main/java/com/example/exacker/ui - User guide
app/src/main/java/com/example/exacker/ui/GuideActivity.java - View models
app/src/main/java/com/example/exacker/viewmodel - Sync screen
app/src/main/java/com/example/exacker/ui/SyncActivity.java
Local data
- Domain repositories
app/src/main/java/com/example/exacker/repository - Local transactions
app/src/main/java/com/example/exacker/repository/LocalTransactionManager.java - Domain DAOs
app/src/main/java/com/example/exacker/dao - Domain records
app/src/main/java/com/example/exacker/entity - App database
app/src/main/java/com/example/exacker/database/ExackerDatabase.java - Database provider
app/src/main/java/com/example/exacker/database/DatabaseProvider.java
Synchronization
- Sync repository
app/src/main/java/com/example/exacker/repository/SyncRepository.java - Pending queue
app/src/main/java/com/example/exacker/entity/SyncQueue.java - Queue DAO
app/src/main/java/com/example/exacker/dao/SyncQueueDao.java - Sync API client
app/src/main/java/com/example/exacker/network/SyncApi.java - Sync messages
app/src/main/java/com/example/exacker/network/SyncRequest.java
Sync service
- Sync API server
Sync Data/server.js - SQL Server
- ngrok tunnel
Other components
- User
Connections 20
- User → App entry: opens
- App entry → Domain screens: navigates
- App entry → Sync screen: opens
- App entry → User guide: opens
- Domain screens → View models: uses
- View models → Domain repositories: delegates
- Domain repositories → Domain DAOs: accesses
- Domain repositories → Local transactions: coordinates
- Domain DAOs → App database: queries
- App database → Domain records: stores
- Database provider → App database: provides
- User → Sync screen: requests sync
- Sync screen → Sync repository: delegates
- Sync repository → Queue DAO: reads queue
- Queue DAO → Pending queue: accesses
- Sync repository → Sync API client: sends operations
- Sync API client → Sync messages: encodes requests
- Sync API client → Sync API server: HTTP sync
- Sync API server → SQL Server: executes SQL
- Sync API server → ngrok tunnel: opens tunnel