this is a web application supposed to help wifi sellers in Uganda manage their business--Wifi billing System
# UGPAY / WiPay — Multi-Tenant Wi-Fi Billing System
UGPAY is a robust, multi-tenant Wi-Fi billing and hotspot management system designed for ISPs and hotspot owners in Uganda. The platform enables administrators to register routers, define internet packages (rate limits and session times), generate single-use vouchers, process payments via Mobile Money, and track real-time analytics.
---
## 📂 Repository Structure
The project has three main code directories, separating client-side UI, Node.js services, and Laravel porting:
```text
WIPAY/
├── wipay-frontend/ # [FRONTEND] React + Vite SPA Client
│ └── src/ # Admin Dashboard & Captive Portal pages
│
├── server/ # [BACKEND] Node.js Express Server (Active)
│ ├── server.js # Main entry point (Port 5002)
│ ├── src/ # Routes, middleware, database sync
│ └── scripts/ # DB migration and seed utilities
│
└── wipay-backend/ # [PORTING] Laravel PHP + PostgreSQL Backend
├── app/ # Controllers & Models under migration
└── routes/api.php # PHP routes equivalent
```
---
## 🚀 Key Features
### 🖥️ Admin Dashboard
* **Router Isolation & Filtering:** Filter all financial analytics, voucher transactions, and active session charts by specific Router IDs.
* **Security:** Role-based access control, secure JWT-based authentication, and brute-force rate-limiting on login.
* **User Experience:** Harmonious dark mode, responsive layout with a collapsible desktop sidebar, and an intuitive mobile hamburger navigation.
* **Performance:** Client-side route caching to ensure instant, zero-latency switching between dashboard views.
### 💰 Payments & Ledger
* **Mobile Money Integration:** Accepts automated MTN & Airtel payments via the Relworx Gateway.
* **Non-Blocking Workflows:** Background polling on the frontend lets admins minimize checkout modals and continue working while payments are processed.
* **SMS Wallet & Account …