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

ComponentPurpose
Mobile appAndroid application for messaging, calls, GPS sharing, announcements, and peer discovery.
ServerFastAPI backend for authentication, sync, signalling, GPS, administration, and hardware integrations.
Admin frontendWeb dashboard for user management, live GPS, announcements, and network analytics.
GSM moduleSMS gateway that controls a serial-attached GSM modem.
Captive portalMikroTik hotspot login pages for local-network access.
TileserverOffline 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

A Prototype 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