04bd80b25b
Major milestone: GPS coordinates now auto-extract from filenames and uploads appear on map with full end-to-end workflow functional! ✨ GPS Auto-Extraction Features: - JavaScript GPS extractor class matching Python patterns - Supports 3 filename formats: * N/S/E/W: 34.0478N_118.2349W_filename.sub * lat/lon prefix: lat34.0478lon-118.2348_filename.sub * Signed decimal: -34.0478_118.2348_filename.sub - Auto-populates latitude/longitude form fields on file drop - Green notification toast shows detected coordinates - File list shows GPS badge for files with coordinates 🗺️ Web Interface Improvements: - Upload endpoint now stores captures in-memory - Query endpoint returns uploaded captures for map display - Stats endpoint shows real-time upload counts - Map displays uploaded captures as markers - Color-coded by frequency band 📁 Updated Files: - static/js/upload.js: GPS extraction + auto-population - src/api/main_simple.py: In-memory storage + endpoints - src/parser/gps_extractor.py: Backend GPS extraction (Python) - scripts/test_gps_extraction.py: Python test suite - test_gps_extraction.html: Browser test suite 📊 T-Embed Files Updated: - 34.0478N_118.2348W_1637_raw_8.sub: 315 MHz Princeton - 34.0478N_118.2349W_1351_raw_10.sub: 433.92 MHz Princeton - 34.0478N_118.2349W_1650_test_raw.sub: 433.92 MHz RAW - All now have proper Flipper SubGhz headers ✅ Tested Features: - GPS extraction from filename: 34.0478N_118.2349W → 34.0478, -118.2349 - Auto-population of GPS fields in upload form - File upload with GPS validation - Capture appears on map after upload - Statistics update in real-time - Frequency distribution calculated correctly 🎯 End-to-End Flow Working: 1. User drops .sub file with GPS in filename 2. GPS auto-detected and form fields populate 3. User clicks Upload 4. Server parses RF data + GPS coordinates 5. Capture stored in memory 6. Map refreshes and displays new marker 7. Stats update with new counts 🚀 Demo: http://localhost:8000 Upload 34.0478N_118.2349W_1351_raw_10.sub and watch it appear on map! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
44 lines
998 B
Markdown
44 lines
998 B
Markdown
# Gitea Repository Setup
|
|
|
|
## Creating the Repository
|
|
|
|
### On Gitea Web Interface
|
|
|
|
1. **Login to your Gitea instance**
|
|
2. **Click "+" → "New Repository"**
|
|
3. **Fill in details**:
|
|
- Repository Name: `giglez`
|
|
- Description: `IoT RF Device Mapping Platform - Wigle for Sub-GHz Signals`
|
|
- Visibility: Private (or Public)
|
|
- Initialize: ❌ **DO NOT** initialize with README (we already have code)
|
|
|
|
4. **Click "Create Repository"**
|
|
|
|
### Add Remote
|
|
|
|
```bash
|
|
# Replace with your Gitea URL
|
|
git remote add origin https://your-gitea-server.com/your-username/giglez.git
|
|
|
|
# Or with SSH
|
|
git remote add origin git@your-gitea-server.com:your-username/giglez.git
|
|
```
|
|
|
|
### Push to Gitea
|
|
|
|
```bash
|
|
# Push current branch
|
|
git push -u origin p1-p2-validation
|
|
|
|
# Or push all branches
|
|
git push -u origin --all
|
|
```
|
|
|
|
## Current Commit
|
|
|
|
**Branch**: `p1-p2-validation`
|
|
**Commit**: Phase 3 Complete: Web Interface MVP
|
|
**Files**: 39 files changed, 10,138 insertions(+)
|
|
|
|
**Ready to push** when you provide Gitea URL!
|