How codeby-javier/billingpay-wifi-golang works
BillingPay WiFi is an ISP billing and customer-management system, with a mobile customer portal alongside its Go service. The visible mobile flow authenticates customers, then lets them view account, invoice and payment information or create and track support tickets through a shared API client. The README documents broader operator capabilities—subscriptions, network operations, equipment, reporting and administration—which are represented as backend domains. Go startup and handler wiring were not excerpted, so those backend relationships are not asserted; the mobile client’s API calls are documented in source excerpts.
Main entry points: main.go Go API server · App.tsx Mobile navigation · api.ts API client · AuthContext.tsx Auth context
Components 32
Mobile portal
- Mobile navigation
mobile/App.tsx - Sign in
mobile/src/screens/LoginScreen.tsx - API client
mobile/src/services/api.ts - Customer dashboard
mobile/src/screens/DashboardScreen.tsx - Invoice list
mobile/src/screens/InvoicesScreen.tsx - Invoice detail
mobile/src/screens/InvoiceDetailScreen.tsx - Payment history
mobile/src/screens/PaymentsScreen.tsx - Ticket list
mobile/src/screens/TicketsScreen.tsx - Create ticket
mobile/src/screens/CreateTicketScreen.tsx - Customer profile
mobile/src/screens/ProfileScreen.tsx
Identity and persistence
- Auth context
mobile/src/context/AuthContext.tsx - Theme context
mobile/src/context/ThemeContext.tsx - Go API server
cmd/server/main.go - Runtime configuration
config/config.go - SQLite database
config/database.go - Access control
internal/middleware/auth.go - Domain models
internal/model/models.go
Billing domains
- Customer management
internal/handler/customer_handler.go - Packages and subscriptions
internal/handler/subscription_handler.go - Invoices and tax
internal/handler/invoice_handler.go - Payment processing
internal/handler/payment_handler.go - Promotions
internal/handler/promo_handler.go - Business services
internal/service/services.go
ISP operations
- Tickets and SLA
internal/handler/ticket_handler.go - Work orders
internal/handler/workorder_handler.go - Equipment inventory
internal/handler/equipment_handler.go - Network monitoring
internal/handler/bandwidth_handler.go - PPPoE integration
internal/handler/pppoe_handler.go
Reporting and governance
- Analytics and reports
internal/handler/analytics_handler.go - Operator dashboard
internal/handler/dashboard_handler.go - Data import and export
internal/handler/export_handler.go
Other components
- Customer
Connections 41
- Customer → Mobile navigation: uses
README.md - Mobile navigation → Auth context: provides context
mobile/App.tsx - Mobile navigation → Theme context: provides context
mobile/App.tsx - Mobile navigation → Sign in: navigates to
mobile/App.tsx - Mobile navigation → Customer dashboard: navigates to
mobile/App.tsx - Mobile navigation → Invoice list: navigates to
mobile/App.tsx - Mobile navigation → Invoice detail: navigates to
mobile/App.tsx - Mobile navigation → Payment history: navigates to
mobile/App.tsx - Mobile navigation → Ticket list: navigates to
mobile/App.tsx - Mobile navigation → Create ticket: navigates to
mobile/App.tsx - Mobile navigation → Customer profile: navigates to
mobile/App.tsx - Auth context → API client: calls
mobile/src/context/AuthContext.tsx - Sign in → Auth context: authenticates through
mobile/src/screens/LoginScreen.tsx - Customer dashboard → API client: fetches dashboard
mobile/src/screens/DashboardScreen.tsx - Invoice list → API client: fetches invoices
mobile/src/services/api.ts - Invoice detail → API client: fetches invoice
mobile/src/services/api.ts - Payment history → API client: fetches payments
mobile/src/screens/PaymentsScreen.tsx - Ticket list → API client: fetches tickets
mobile/src/screens/TicketsScreen.tsx - Create ticket → API client: submits ticket
mobile/src/screens/CreateTicketScreen.tsx - Customer profile → API client: updates profile
mobile/src/services/api.ts - API client → Go API server: requests API
mobile/src/services/api.ts - Go API server → Runtime configuration: loads configuration
- Go API server → SQLite database: initializes database
- Go API server → Access control: uses middleware
- Go API server → Customer management: routes requests
- Go API server → Packages and subscriptions: routes requests
- Go API server → Invoices and tax: routes requests
- Go API server → Payment processing: routes requests
- Go API server → Tickets and SLA: routes requests
- SQLite database → Domain models: persists
- Invoices and tax → Business services: delegates to
- Packages and subscriptions → Business services: delegates to
- Customer management → Business services: delegates to
- Go API server → Promotions: routes requests
- Go API server → Work orders: routes requests
- Go API server → Equipment inventory: routes requests
- Go API server → Network monitoring: routes requests
- Go API server → PPPoE integration: routes requests
- Go API server → Analytics and reports: routes requests
- Go API server → Operator dashboard: routes requests
- Go API server → Data import and export: routes requests