FrogGuard is a SwiftUI-based iOS app that visualizes protest events and privacy leaks from mobile devices. It connects to a FastAPI backend to fetch global event data and user telemetry.
- 🔐 Hidden Feature: Privacy leak panel (long press to activate)
- 🗺️ Live interactive map with protest/conflict data
- 📍 Searchable global incidents (ACLED API & custom reports)
- 🐸 Hidden debug view shows:
- Device clipboard
- Battery status
- Wi-Fi & Bluetooth leakage
- 🔄 Toggle grid/map view
- 🔐 Privacy leak simulation
- 🎨 Clean SwiftUI layout with annotation-based MapKit
- SwiftUI + MapKit + CoreLocation
- ACLED Data Integration
- FastAPI + PostgreSQL backend
- WeatherKit (optional)
- RESTful API with JSON
- Xcode 15+
- iOS Simulator or device (iOS 16+)
git clone https://github.com/maguitaria/frog-ios.git
cd frog-ios
open ios-angry-fog.xcodeproj
Then run via ⌘+R in Xcode.
🔍 Hidden Feature
Long-press on the Home screen or open the /map
view to reveal leaked device data (e.g., clipboard, SSID, Bluetooth, battery level).
- Works on simulator (default)
- Optional: Test on device via TestFlight
- Network requests are sent to:
https://frog-ios.onrender.com
See: FastAPI Backend →
---
## ⚙️ `README.md` for `frog-ios-backend` (FastAPI)
```markdown
# 🐸 FrogGuard Backend – FastAPI + PostgreSQL
This is the backend API powering the FrogGuard iOS app — a civic safety and privacy data dashboard.
## 🌐 API Features
- `/sisu`: Stores device info and sensor leak data
- `/report`: Stores custom user-submitted incident reports
- `/map`: Visualizes leaked GPS data on an HTML map
- `/incidents`: Lists reports as a table or map
- `/wifi`, `/bluetooth`, `/device_info`: Debug pages with HTML tables
## 💾 Tech Stack
- FastAPI + Uvicorn
- PostgreSQL via `psycopg2`
- Hosted on Render.com
- HTML injection via `re.sub()`
## 🧪 Demo Data
You can post fake device leaks and reports using Postman or Python:
```bash
POST /sisu
POST /report
See demo_data.py
for examples.
Tables under schema prod
:
device_info(device_name, os, user_agent, clipboard, battery_level, charging)
location(latitude, longitude, timestamp)
bluetooth(device_name, mac, signal_strength)
wifi(ssid, bssid, signal_strength)
report(category, description, latitude, longitude, timestamp)
cd fastapi_backend
uvicorn main:app --reload
- Python 3.11+
- Install with:
pip install -r requirements.txt
/map
→ Leaked device locations/incidents
→ Protest reports/device_info
,/wifi
,/bluetooth
→ Tabular debug views
🔒 Hidden Privacy Feature
Sensitive sensor data (clipboard, battery, Wi-Fi SSID, BT MAC addresses) is sent silently via the /sisu
endpoint and visualized on the map.
Intended to raise awareness about mobile privacy risks in a visual way.
fastapi_backend/
├── main.py
├── demo_data.py
├── map.html
├── incidents.html
├── templates/ (optional)
├── static/ (optional)
Created by Christian Ackermann, Tiberiu-Arthur Nowotny, Mariia Glushenkova @maguitaria Feedback and feature requests welcome!