Skip to content

Latest commit

 

History

1,956 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SAPOT

SAPOT is a resilient communications platform for remote and disaster-affected areas. It helps teams communicate and coordinate through local networks, with messaging, voice and video calls, GPS sharing, administration tools, and SMS fallback when internet connectivity is unreliable or unavailable.

What SAPOT provides

  • Local communication: peer-to-peer messaging, voice calls, and video calls over the LAN.
  • Location awareness: live GPS sharing for authorised users and an offline map for responders.
  • Resilient delivery: SMS fallback through a GSM modem when a recipient is not reachable on the LAN.
  • Operational tools: an administrator dashboard for user management, announcements, and network analytics.
  • Network access: a MikroTik captive portal for users joining the local network.

Architecture

SAPOT is LAN-first: its core communication functions are designed to operate without an internet connection. The server coordinates authentication, synchronisation, and call signalling, while chat data and call media travel directly between devices when possible.

flowchart LR
    MobileA["Mobile app A"]
    MobileB["Mobile app B"]
    Server["Server"]
    Admin["Admin frontend"]
    Router["MikroTik router"]
    GSM["GSM module"]
    Arduino["Arduino / modem"]
    Portal["Captive portal"]

    MobileA -->|HTTPS REST: auth, sync, keys, admin| Server
    Server -->|WSS /ws/: signalling, presence| MobileA
    MobileA -->|WSS /gps/ws/user-id: location stream| Server
    MobileA -->|WebRTC P2P: data channel and media| MobileB
    MobileA -->|LAN TCP+TLS: fallback signalling| MobileB
    MobileA -->|mDNS: peer discovery| MobileB

    Admin -->|HTTPS BFF: all dashboard ops| Server
    Server -->|RouterOS API: telemetry| Router
    Server -->|HTTP API: SMS dispatch| GSM
    GSM -->|Serial/AT commands| Arduino
    Router -->|HTTP: login + hotspot auth| Portal
Loading

For the full architecture, component boundaries, and communication matrix, see the system overview.

Components

Component Purpose
Mobile app Android application for messaging, calls, GPS sharing, announcements, and peer discovery.
Server FastAPI backend for authentication, sync, signalling, GPS, administration, and hardware integrations.
Admin frontend Web dashboard for user management, live GPS, announcements, and network analytics.
GSM module SMS gateway that controls a serial-attached GSM modem.
Captive portal MikroTik hotspot login pages for local-network access.
Tileserver Offline map-tile deployment tooling for the GPS map.

Quick start

Follow the full-stack quick start to run the server and mobile app on the same local network. It also links to optional setup for the GSM gateway and administrator dashboard.

Documentation

Project information

About

LAN-first communications platform for disaster response and remote areas, offering offline messaging, voice/video calls, GPS tracking, announcements, and SMS fallback.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages