Overview
SmartWaves • Admin Dashboard
Overview
Manage branches, plans, vouchers, payments, PPPoE & routers
DEMO TENANT: default
Network Snapshot
Live backend metrics, refreshed every 30 seconds
System OK
Active Hotspot Users
PPPoE Online
Stable
MPESA Payments (Today)
3 pending
Branches / Routers
Grouped by site
Traffic Usage
Hotspot and PPPoE traffic recorded by session accounting
0 B
Payment Trend
Successful collections grouped by selected period
0
Live Subscriber Mix
Waiting for the first sample
Live Operations Trend
Rolling samples from live overview polling, not simulated values in API mode
0 samples
Recent Payments
Sample data (frontend only)
Pending: 3
Time Phone Plan Amount Status
Quick Tools
Common actions

In API mode, branches/routers/plans are stored in DB. Vouchers/payments wiring comes next.

Branches / Sites
Register locations and attach routers to each branch
Branch Code Location Branch Support Routers Status

Best practice: Create all branches first, then register routers under each branch.

Plans
Manage hotspot + PPPoE packages (API-wired)
Name Type Price Validity Speed Status Actions

In API mode: plans are stored in DB and later the hotspot portal will fetch them dynamically.

Vouchers
Generate, export, and track voucher usage
Global vouchers show in every branch. Pick a branch to generate branch-only vouchers.
Optional label for this bulk generation.
Only Hotspot plans should be used for vouchers.
Code Branch Plan Status Created Started Expires Used

In API mode: generating vouchers calls backend. Global vouchers have branch_id = null.

Payments
MPESA transactions (sample data)
Time Type Phone MPESA Receipt Access / Voucher Checkout ID Plan Amount Status
Subscriber Services
One lifecycle and billing view for PPPoE, DHCP/IPoE, and Static IP
ServiceCustomerAccess IdentityPlan / SiteBillingAuthorizationConnectionProvisioningActions
Access Networks
Tenant-scoped CIDR, gateway, DHCP server, and Router/NAS context
NameBranch / RouterNetworkPurposeDHCP Server / PoolModeStatus
Register only networks actually present or intentionally managed on the selected router. Public networks must represent address space routed to that tenant.
PPPoE Subscribers
Accounts, expiry, and renewals
Account Plan Phone Router MAC Expiry Online Status
Corporate Accounts
Company billing groups, linked PPPoE users, shared renewal
CompanyPlanAccountsUsageExpiryStatusActions
Usage Analytics
Data usage over time for hotspot vouchers and PPPoE subscribers
Total Usage
Selected range
Hotspot Usage
Router polling data
PPPoE Usage
RADIUS accounting
Service User Download Upload Total Sessions Last Seen
PPPoE Requests
New connection requests from the portal
Name Phone Location Plan Status Requested Expires
Usage Analytics
Network-wide usage, heavy-user alerts, CSV export, and FUP checks
Loading usage analytics...
Reports
Payments summary with chart + export
MPESA Revenue
Today
0
Summary
Successful vs Pending
Total Success
0
Pending Count
0
Date Total Count
Operations Center
Tenant-scoped balances, reconciliation, onboarding, messaging templates, imports, and truthful network readiness.
Active Services
Billing/service state
Provisioning Failures
Requires operator review
Routers Observed
Real health snapshots only
Onboarding
Observed + manual checklist
Customer Balance / Statement
Uses the authoritative billing ledger; no duplicate balance is stored.
Select a customer ID to load ledger-backed balance and services.
TimeKindDescriptionDebitCreditStatus
No statement loaded.
Payment Reconciliation Queue
Unmatched provider payments stay unmatched until an operator selects a ledger charge.
ReceivedPhoneAmountReceiptMatch charge ID
No unmatched payments loaded.
SMS Templates
Provider-neutral templates use the existing safe variable allow-list. Sending remains in SMS Center.
No preview.
KeyNameStatus
No templates loaded.
Guided Onboarding
Observed setup facts are separated from operator confirmations.
No checklist loaded.
CSV Import / Export
Preview first; commits are limited, validated, tenant-scoped, and audited.
No import preview.
NOC Readiness
No router is called online from configuration alone.
No readiness snapshot loaded.
RouterObserved statusLatencySampled
No routers loaded.
Technician Queue
Assignment and internal notes are tenant-scoped; customer-visible notes are kept separate.
TicketCustomerIssueStatus / SLADueAssign admin IDInternal note
No tickets loaded.
Operating Expenses
Tenant-scoped expense records with branch filters, receipt references, CSV export, and audit history.
No expenses loaded.
DateCategoryVendorAmountBranchReference
No expenses loaded.
Leads / Prospects
Track prospects separately; conversion is explicit and creates a normal tenant customer only after confirmation.
No leads loaded.
LeadServiceStatusFollow-upAction
No leads loaded.
Invoice Aging / Receivables
Derived from billing_charges, the authoritative ledger. “Not observed” network state is never treated as paid or online.
No receivables loaded.
AccountCustomerDueOutstandingAgingStatus
No receivables loaded.
Routers / Sites
Routers are registered under branches for monitoring and sync
Branch Router Host Status Hotspot

Next step: connect RouterOS API sync per branch (pull sessions/users/profiles).

Customers
Unified view (hotspot + PPPoE)
Name Phone Type Plan Status
Settings
Branding, MPESA, Router API, roles
Not connected
Branding
Portal name, support contacts
Used for tenant billing display, plans, reports, invoices and SMS variables.
Leave blank to keep current password. Demo mode will reject other passwords.
Automatic inactivity logout. Allowed range: 5–120 minutes. Default: 15.
Maximum lifetime even while active. Allowed range: 8–12 hours. Default: 12.
Global default. 0 means every child account requires an add-on or separate billing unless package/account overrides it.
Variables: {{full_name}}, {{first_name}}, {{account_username}}, {{package_name}}, {{package_price}}, {{installation_fee}}, {{initial_total}}, {{expiry_date}}, {{support_phone}}, {{support_email}}, {{website}}, {{currency}}
Saved to backend in API mode.
Hotspot Portal Defaults
Set branch defaults, then push `hotspot/config.js` to a branch router
Only one mode is active at a time, based on Default Branch Lock.
Save updates backend defaults for this tenant. Push writes `hotspot/config.js` to the selected router (branch-safe check enforced).
Portal Announcements
Show promos or notices on the hotspot page only when active.
You can paste an image URL or upload a photo from this device.
Once the hotspot page has this new code, announcements are pulled from backend automatically. You do not need to push text edits to the router each time.
Title Scope Type Window Status Priority Action
Integrations
MPESA + MikroTik RouterOS API
In API mode these are stored in DB and used by backend services. For custom providers, supply Daraja-compatible endpoint URLs in Provider Config JSON.
SMS Provider
Default is Africa’s Talking, but you can switch providers.
Stored separately for this tenant. Supports custom URLs, headers, JSON/form bodies, field names, and response paths.
Leave blank to disable SMS. For Africa's Talking sandbox, environment should be sandbox and username can stay sandbox.
KRA eTIMS
Optional electronic tax invoicing through certified OSCU integration.
Use the official OSCU fields: environment, pin, branch_id, device_serial, cmc_key, item_code, item_class_code, and taxation values. The communication key is returned only during successful device initialization.
SMS Center
Send one-off messages, queue bulk campaigns, and review message history.
Manual SMS
Bulk SMS Campaigns
Build an audience from PPPoE and hotspot data, preview recipients, then queue a campaign without affecting manual SMS.
Choose an audience, then click Preview Audience to see how many recipients will be reached.
Sent Messages & Delivery Reports
Every manual, voucher, customer, invoice, and bulk SMS is recorded here. Provider delivery callbacks update the final handset status.
Time Audience Status Recipients By Message Actions
Time Phone Kind Status Provider Cost By Message
Recovery Access
Owner-only token for emergency password reset
Keep this token private. Use it only if you are locked out. Global-owner emergency recovery also requires the separate break-glass code configured on the backend.
Audit Logs
Recent admin actions
Time Action Details IP
Branch MPESA Overrides
Optional per-branch credentials (overrides global)
Leave fields blank to use global credentials, provider, and provider config. This lets one branch use Daraja while another uses KCB or Equity.
Users & Roles
Create human-friendly roles, select module permissions, then assign them to admin users.
Tenant owners can create tenant roles only. Global/platform permissions are visible only to the Global Owner.
RoleDescriptionPermissionsUsersSystemActions
No roles loaded.
Admin Users
Create and manage additional admin accounts
Create a new admin user. Password is required for new users.
Email Name Role 2FA Status
Login Activity
Track admin login attempts
Time Email IP Status
Credits: Axoryn Labs
© SmartWaves Admin • UI
Done
Action completed.