How shahin0964/internet-billing-manager works
This repository combines an ISP billing Android app with a PHP server API. The main mobile workflow is to manage customers, packages, and bills offline, view local data, and synchronize pending changes when connected. The server also provides broader account, payment, expense, settings, backup, audit, and bandwidth-billing endpoints, plus scheduled monthly bill generation. Source excerpts establish the Android repository/worker wiring and parts of server sync and billing; links between unsampled PHP endpoints and storage are therefore shown only where supported by the available evidence.
Main entry points: OfflineFirstRepository.kt Offline repository · ApiService.kt API service · SyncWorker.kt Sync worker · cron_monthly_billing.php Monthly billing
Components 23
Android app
- Customer screen
app/src/main/java/com/aistudio/ispbilling/control/ui/customer/CustomerViewModel.kt - Package screen
app/src/main/java/com/aistudio/ispbilling/control/ui/packages/PackagesViewModel.kt - Bills screen
app/src/main/java/com/aistudio/ispbilling/control/ui/bills/BillsViewModel.kt
Local data and sync
- Offline repository
app/src/main/java/com/aistudio/ispbilling/control/data/repository/OfflineFirstRepository.kt - Room database
app/src/main/java/com/aistudio/ispbilling/control/data/local/AppDatabase.kt - Customer DAO
app/src/main/java/com/aistudio/ispbilling/control/data/local/dao/CustomerDao.kt - Package DAO
app/src/main/java/com/aistudio/ispbilling/control/data/local/dao/PackageDao.kt - Bill DAO
app/src/main/java/com/aistudio/ispbilling/control/data/local/dao/BillDao.kt - API client
app/src/main/java/com/aistudio/ispbilling/control/data/network/ApiClient.kt - API service
app/src/main/java/com/aistudio/ispbilling/control/data/network/ApiService.kt - Sync worker
app/src/main/java/com/aistudio/ispbilling/control/data/sync/SyncWorker.kt
Server API
- Customer API
api/customers.php - Package API
api/packages.php - Bills API
api/bills.php - Payments API
api/payments.php - Business APIs
api - Full sync
api/sync.php
Server operations
- Monthly billing
api/cron_monthly_billing.php
Server storage
- Database router
api/db.php - Tenant databases
- System database
Other components
- ISP operator
- ISP billing server
Connections 33
- ISP operator → Customer screen: manages
- ISP operator → Package screen: manages
- ISP operator → Bills screen: manages
- Customer screen → Offline repository: requests
- Package screen → Offline repository: requests
- Bills screen → Offline repository: requests
- Offline repository → Customer DAO: reads/writes
- Offline repository → Package DAO: reads/writes
- Offline repository → Bill DAO: reads/writes
- Customer DAO → Room database: queries
- Package DAO → Room database: queries
- Bill DAO → Room database: queries
- Offline repository → API service: refreshes from
- API service → API client: uses
- Sync worker → Customer DAO: loads pending
- Sync worker → Package DAO: loads pending
- Sync worker → Bill DAO: loads pending
- Sync worker → API service: uploads changes
- API service → Customer API: requests
- API service → Package API: requests
- API service → Bills API: requests
- ISP billing server → Customer API: serves
- ISP billing server → Package API: serves
- ISP billing server → Bills API: serves
- ISP billing server → Payments API: serves
- ISP billing server → Business APIs: serves
- ISP billing server → Full sync: serves
- ISP billing server → Monthly billing: runs
- Full sync → Tenant databases: reads/writes
- Monthly billing → Database router: resolves tenant
- Database router → System database: creates/queries
- Database router → Tenant databases: creates/connects
- Monthly billing → Tenant databases: generates bills