System Architecture Guide

Complete technical overview of the INET Wi-Fi Portal system architecture, components, and integrations.

System Overview

The INET Portal is a comprehensive Wi-Fi management platform built with modern web technologies and designed for scalability and reliability.

🏗️ Core Architecture

System Layers

🌐 Frontend Layer

🔌 API Gateway

⚙️ Business Logic

💾 Data Layer

🔗 External Integrations
🌐 Frontend Layer

Customer Portal: Static HTML/JS for hotspot access

Admin Console: SPA for staff management interface

Mobile Apps: React Native applications for customers and technicians

Technologies: HTML5, CSS3, JavaScript, React Native, Expo
🔌 API Gateway

FastAPI Backend: High-performance Python web framework

Authentication: JWT-based auth for admin users

Rate Limiting: Request throttling and security controls

Technologies: FastAPI, Python 3.10+, Uvicorn, Pydantic
⚙️ Business Logic

Core Services: User management, payment processing, voucher issuance

Workflow Engine: Ticket routing, SLA management, notifications

Background Jobs: Scheduled tasks, data synchronization

Technologies: SQLAlchemy ORM, Celery, APScheduler
💾 Data Layer

Primary Database: PostgreSQL for transactional data

Cache Layer: Redis for session management and performance

File Storage: Local storage for uploads and assets

Technologies: PostgreSQL, Redis, SQLAlchemy, Alembic

🔗 External Integrations

💳 Wave Payments

Purpose: Payment processing for Wi-Fi packages

Integration: REST API for checkout and payment verification

POST /api/wave/checkout - Initiate payment
GET /api/wave/verify - Verify payment status

🏢 PortaBilling

Purpose: Voucher issuance and customer account management

Integration: SOAP API for billing operations

Customer/get_account - Retrieve customer data
Voucher/issue - Create new vouchers
Voucher/block - Block voucher usage

📡 OpenNDS (AuthMon)

Purpose: Wi-Fi access control and session management

Integration: Polling-based status checking

GET /authmon/status - Device access status
POST /authmon/allow - Grant access

🌐 OpenWISP

Purpose: Access point discovery and management

Integration: REST API for network device management

GET /api/v1/network-devices - List access points
GET /api/v1/device-monitoring - Health status

📊 Data Flow Architecture

🔄 Customer Payment Flow

  1. Portal: Customer selects package and initiates payment
  2. Wave API: Payment processing and verification
  3. PortaBilling: Voucher issuance and account charging
  4. Database: Session recording and voucher blocking
  5. OpenNDS: Access control enforcement

🎫 Support Ticket Flow

  1. Intake: Customer submits request via multiple channels
  2. AI Processing: Automatic categorization and enrichment
  3. Assignment: Role-based routing to appropriate team
  4. Resolution: Team collaboration and status updates
  5. Closure: SLA tracking and customer notification

📱 Mobile App Synchronization

  1. Authentication: Secure login with auth keys
  2. Data Sync: Real-time billing and account updates
  3. Offline Support: Local caching for connectivity issues
  4. Push Notifications: Real-time updates and alerts

🔐 Security Architecture

🛡️ Security Layers

  • Authentication: JWT tokens for admin users, auth keys for mobile
  • Authorization: Role-based access control (RBAC)
  • Data Encryption: HTTPS/TLS for all communications
  • Input Validation: Pydantic models for data validation
  • Rate Limiting: API throttling and abuse prevention
🔑 Authentication Methods
  • Admin Users: Email/password with JWT tokens
  • Mobile Users: Phone number with auth key verification
  • API Access: Token-based authentication for external services
  • Session Management: Redis-based session storage
👥 Role-Based Access Control
  • Root: Full system access and configuration
  • System Admin: User management and system monitoring
  • Customer Care: Customer support and ticket management
  • Field Technician: Ticket assignment and field work
  • Billing Officer: Payment and account management

📈 Scalability & Performance

🚀 Performance Optimizations
  • Database Indexing: Optimized queries for fast lookups
  • Redis Caching: Session data and frequently accessed information
  • Connection Pooling: Efficient database connections
  • Background Jobs: Asynchronous processing for heavy tasks
📊 Monitoring & Observability
  • Application Logs: Structured JSON logging with correlation IDs
  • Performance Metrics: Response times and throughput monitoring
  • Error Tracking: Automated error detection and alerting
  • Health Checks: System status and dependency monitoring

🔄 Background Processing

⏰ Scheduled Jobs
  • AP Scanning: Hourly discovery of new access points
  • Data Synchronization: Regular sync with PortaBilling
  • SLA Monitoring: Ticket escalation and notification
  • Cleanup Tasks: Session cleanup and log rotation
🔄 Real-time Processing
  • Payment Verification: Immediate payment status updates
  • Session Management: Real-time access control
  • Notification Delivery: Instant customer notifications
  • Status Updates: Live ticket and system status

📱 Mobile Architecture

📱 Customer App (INET-Go)
  • Framework: React Native with Expo
  • Authentication: Auth key-based login
  • Offline Support: Local data caching
  • Push Notifications: Real-time updates
🛠️ Technician App (INET-Tech)
  • Framework: React Native with Expo
  • Ticket Management: Field service workflow
  • Photo Upload: Work documentation
  • Status Updates: Real-time ticket updates

🔧 Development & Deployment

🛠️ Development Stack

  • Backend: FastAPI, Python 3.10+, SQLAlchemy
  • Frontend: HTML5, CSS3, JavaScript, React Native
  • Database: PostgreSQL, Redis
  • Testing: Pytest, Jest
  • CI/CD: GitHub Actions, Docker

🚀 Deployment Architecture

  • Web Server: Nginx reverse proxy
  • Application Server: Gunicorn with Uvicorn workers
  • Database: PostgreSQL with connection pooling
  • Cache: Redis for session and data caching
  • Monitoring: Prometheus, Grafana

🔍 System Health Monitoring

← Back to Help Index | Navigation Guide | User Journey Guide | © INET Wi‑Fi Portal