aprs.me/notes.md

50 lines
2 KiB
Markdown

# APRS.me Project Exploration Notes
## Overview
- This is a Phoenix LiveView application for APRS (Automatic Packet Reporting System)
- APRS is a digital communications system used by amateur radio operators
- The app tracks and displays APRS packets/messages in real-time on an interactive map
## Project Structure
- Standard Phoenix 1.7+ structure with LiveView
- Uses Elixir ~> 1.17
- Has authentication system (user auth files present)
- Contains map functionality (map_live modules)
- Has packet tracking (packets_live, status_live)
- Database with PostGIS for geographic data
- Real-time features with PubSub and presence
## Key Features Found
- **Interactive Map**: Leaflet-based map with OpenStreetMap tiles
- **Real-time APRS Tracking**: Connected to APRS-IS (dallas.aprs2.net:14580)
- **Responsive Design**: Slideover panel for controls, mobile-friendly
- **Search Functionality**: Callsign search capability
- **Trail Display**: Configurable trail duration (1 hour to 1 week)
- **Historical Data**: Historical packet loading (1-24 hours)
- **Packet Display**: Multiple views (map, packets, status, weather, bad packets)
- **User Authentication**: Complete auth system ready
- **API Endpoints**: RESTful API for callsign data
## Technical Stack
- **Backend**: Phoenix 1.7, Elixir 1.17, Ecto with PostgreSQL + PostGIS
- **Frontend**: LiveView, Tailwind CSS, Leaflet.js for maps
- **Real-time**: Phoenix PubSub, WebSocket connections
- **Background Jobs**: Oban for job processing
- **External Integration**: APRS-IS network connection
- **Deployment**: Docker-ready with releases
## Current Status
- ✅ Application runs successfully on localhost:4000
- ✅ Database migrations completed
- ✅ APRS-IS connection established
- ✅ Map interface working with controls
- ✅ Real-time packet processing active
- ⚠️ Some asset loading optimizations possible
- 📡 Currently showing "no internet" (likely due to APRS data feed)
## Next Steps
- Explore specific LiveView modules
- Check packet data flow
- Review real-time update mechanisms
- Examine API capabilities