A worldwide GPS device monitoring system for aviation traffic with real-time tracking via Progressive Web App.
- Dashboard: https://smallaviationmonitor.pages.dev
- GPS Logger PWA: https://smallaviationmonitor.pages.dev/pwa
- Download Page: https://smallaviationmonitor.pages.dev/download
- Backend API: https://smallaviationmonitor-api.administrator-112.workers.dev
SmallAviationMonitor is a real-time GPS tracking and airspace monitoring web application designed for pilots operating various types of aircraft including small and large aircraft, drones, paragliders, and hot air balloons. The system enables worldwide traffic monitoring through a Progressive Web App that works on iOS and Android.
The system is fully deployed and operational:
- β Frontend: Deployed on Cloudflare Pages
- β Backend API: Running on Cloudflare Workers
- β Database: Cloudflare D1 (SQLite) with 7 tables
- β GPS Logger: Progressive Web App (iOS & Android)
- Visit: https://smallaviationmonitor.pages.dev/download
- Scan QR code with your phone
- iOS: Safari β Share β "Add to Home Screen"
- Android: Chrome β "Install app"
- Open app, configure device, start tracking!
- β Works on iOS (Safari 11.3+) & Android (Chrome, Edge)
- β No app store required
- β Full GPS/location access with high accuracy
- β Offline support with IndexedDB + background sync
- β 5-second update interval
- β Device configuration (aircraft type, name, phone)
- β Live position display (lat, lng, altitude, speed, heading)
- β Automatic updates
- For iOS: No $99/year Apple Developer account needed
- For Android: No Google Play approval process
- For Everyone: Instant updates, cross-platform, smaller footprint
- Full GPS: Same location accuracy as native apps
See PWA Documentation for complete details.
- Progressive Web App installable on iOS and Android
- High-accuracy GPS tracking with 5-second updates
- Offline support with background sync
- Real-time telemetry (position, speed, heading, altitude)
- Device configuration and management
- Auto-generated device IDs
- Real-time GPS device tracking on interactive map
- Multiple device type support (aircraft, drone, paraglider, balloon)
- Device status monitoring (online/offline/warning)
- Connection statistics dashboard
- Modern responsive UI with dark/light mode
- Live position updates
- RESTful API on Cloudflare Workers
- Global edge deployment for low latency
- Cloudflare D1 database (7 tables)
- CORS-enabled public API
- Health monitoring endpoint
- Automatic scaling
- User authentication and pilot accounts
- Airspace reservation system (GPS polygons)
- Alert queue for notifications
- Historical playback of flight paths
- Push notifications (when Safari supports)
- Native mobile apps (currently archived)
- Framework: React 18 + TypeScript
- Build Tool: Vite
- UI Library: shadcn/ui (Radix UI components)
- Styling: Tailwind CSS
- State Management: TanStack Query
- Routing: React Router v6
- PWA: Service Worker + IndexedDB
- Deployment: Cloudflare Pages
- Runtime: Cloudflare Workers (serverless)
- Language: TypeScript
- Database: Cloudflare D1 (SQLite)
- API: RESTful
- Deployment: Wrangler CLI
- Frontend: React + TypeScript
- GPS: Geolocation API (watchPosition with high accuracy)
- Offline: Service Worker + IndexedDB queuing
- Sync: Background Sync API
- Manifest: PWA manifest.json for installability
POST /api/v1/gps/position
Content-Type: application/json
{
"deviceId": "pwa_1234567890_abc123",
"deviceType": "aircraft",
"position": {
"lat": 40.7128,
"lng": -74.0060,
"altitude": 100,
"altitudeUnit": "meters"
},
"telemetry": {
"speed": 120,
"speedUnit": "kmh",
"heading": 90,
"accuracy": 10
},
"device": {
"name": "John Doe",
"pilot": "John Doe",
"contact": "+1234567890"
},
"timestamp": "2024-01-15T12:00:00.000Z",
"source": "pwa"
}GET /api/v1/devices- List all devicesPOST /api/v1/devices- Register deviceGET /api/v1/devices/:id- Get device detailsPOST /api/v1/reservations- Create airspace reservationGET /api/v1/reservations- List reservationsGET /health- Health check
See API Specifications for complete documentation.
SmallAviationMonitor/
βββ backend/ # Cloudflare Workers API
β βββ src/
β β βββ index.ts # Main API worker (500+ lines)
β βββ schema/
β β βββ init.sql # Database schema (7 tables)
β βββ wrangler.toml # Cloudflare configuration
βββ frontend/ # React + TypeScript frontend
β βββ src/
β β βββ components/ # 15+ React components
β β β βββ PWAGPSLogger.tsx # PWA GPS tracker (600+ lines)
β β β βββ MobileDownload.tsx # Download page
β β β βββ ...
β β βββ pages/ # Index, Download, PWA, NotFound
β β βββ contexts/ # App state management
β βββ public/
β β βββ manifest.json # PWA manifest
β β βββ service-worker.js # Service worker
β β βββ pwa-icon-*.svg # PWA icons
β βββ PWA-README.md # PWA documentation
βββ docs/ # Complete documentation (15+ files)
β βββ product-vision.md
β βββ functionality-planning.md
β βββ architecture.md
β βββ api-specifications.md
β βββ ...
βββ _ARCHIVED/ # Future features (not in active development)
β βββ mobile/ # React Native app (for future use)
β βββ _INCOMING/ # Previous codebase
βββ README.md # This file
- Node.js 18+
- npm or yarn
- Wrangler CLI:
npm install -g wrangler
cd backend
npm install
wrangler dev
# API runs at http://localhost:8787cd frontend
npm install
npm run dev
# App runs at http://localhost:5173cd frontend
npm run dev
# Open http://localhost:5173/pwaThe project automatically deploys when you push to main:
- Frontend β Cloudflare Pages
- Backend β Cloudflare Workers
Note: Configure CLOUDFLARE_API_TOKEN in GitHub secrets for auto-deployment.
cd backend
npm install
wrangler deploycd frontend
npm install
npm run build
npm run deployNote: Native mobile apps (Android APK and iOS apps) are currently archived in _ARCHIVED/mobile/. We're focusing on the Progressive Web App solution which:
- β Works on both iOS and Android
- β No app store approval required
- β Instant updates
- β Same GPS capabilities as native apps
- β Smaller footprint
- β Cross-platform with single codebase
Native apps will be enabled later when needed.
See CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see LICENSE.md for details.
- Issues: https://github.com/mihrans/SmallAviationMonitor/issues
- Documentation: Check the
docs/folder - PWA Guide: frontend/PWA-README.md
| Component | Status | URL/Details |
|---|---|---|
| Frontend Dashboard | β Production | https://smallaviationmonitor.pages.dev |
| GPS Logger PWA | β Production | https://smallaviationmonitor.pages.dev/pwa |
| Download Page | β Production | https://smallaviationmonitor.pages.dev/download |
| Backend API | β Production | https://smallaviationmonitor-api.administrator-112.workers.dev |
| Database (D1) | β Production | 7 tables initialized |
| CI/CD Pipeline | β Configured | GitHub Actions |
| Documentation | β Complete | 40,000+ words, 20+ files |
| Native Apps | π¦ Archived | Available in _ARCHIVED/mobile/ |
- Total Files: 100+ files
- Lines of Code: 5,000+ lines
- Documentation: 40,000+ words (20+ markdown files)
- React Components: 15+ components
- API Endpoints: 8+ REST endpoints
- Database Tables: 7 tables with 18 indexes
- Git Commits: 18+ commits
- Deployment: Fully automated via GitHub Actions
- π± Progressive Web App (no app store)
- π Worldwide GPS tracking
- π‘ 5-second position updates
- πΎ Offline support with sync
- π― High-accuracy GPS mode
- π Automatic app updates
- π Live dashboard monitoring
- π¨ Clean, modern interface
- β‘ Serverless architecture (Cloudflare Workers)
- ποΈ Edge database (D1/SQLite)
- π Global CDN deployment
- π HTTPS everywhere
- π Complete documentation
- π CI/CD automation
- π οΈ Modern tech stack (React 18, TypeScript, Vite)
- π§ͺ Ready for testing and extension
SmallAviationMonitor - Tracking aviation worldwide, one GPS signal at a time.
Made with β€οΈ using Cloudflare Edge Platform