Files
location-mqtt-tracker-app/docs/locations.md
Joachim Hummel 5369fe3963 Add documentation for geofence and locations features
- Add comprehensive geofence feature implementation plan
- Add locations documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 17:52:44 +00:00

85 lines
2.5 KiB
Markdown

# Location Database Documentation
## Database File
- **Filename:** `locations.sqlite`
- **Type:** SQLite 3.x database
- **Encoding:** UTF-8
- **Current Records:** 367 location entries
## Database Schema
### Location Table
| Column | Type | Required | Default | Description |
|--------|------|----------|---------|-------------|
| `id` | INTEGER | - | AUTO_INCREMENT | Primary key |
| `latitude` | REAL | Yes | - | GPS latitude coordinate |
| `longitude` | REAL | Yes | - | GPS longitude coordinate |
| `timestamp` | TEXT | Yes | - | Time when location was recorded |
| `user_id` | INTEGER | No | 0 | Telegram user ID |
| `first_name` | TEXT | No | - | User's first name |
| `last_name` | TEXT | No | - | User's last name |
| `username` | TEXT | No | - | Telegram username |
| `marker_label` | TEXT | No | - | Custom label for map marker |
| `display_time` | TEXT | No | - | Formatted time for display |
| `chat_id` | INTEGER | No | 0 | Telegram chat ID |
| `battery` | INTEGER | No | - | Device battery level (0-100) |
| `speed` | REAL | No | - | Movement speed |
| `created_at` | TEXT | No | datetime('now') | Database insertion timestamp |
## Database Tables
- `Location` - Main table storing location data
- `sqlite_sequence` - SQLite internal table for auto-increment tracking
## Verification Commands
### Check database file
```bash
file locations.sqlite
```
### List all tables
```bash
sqlite3 locations.sqlite "SELECT name FROM sqlite_master WHERE type='table';"
```
### View table schema
```bash
sqlite3 locations.sqlite "PRAGMA table_info(Location);"
```
### Count records
```bash
sqlite3 locations.sqlite "SELECT COUNT(*) FROM Location;"
```
### Sample query
```bash
sqlite3 locations.sqlite "SELECT id, latitude, longitude, timestamp, user_id FROM Location LIMIT 5;"
```
## Future Development Ideas
### Potential Features
- [ ] Location history visualization
- [ ] Geofencing alerts
- [ ] Route tracking and analysis
- [ ] Speed monitoring and statistics
- [ ] Battery level tracking over time
- [ ] Multi-user location comparison
- [ ] Export to GPX/KML formats
- [ ] Privacy controls and data retention policies
### Optimization Opportunities
- [ ] Add indexes on frequently queried columns (user_id, timestamp)
- [ ] Implement data archival for old records
- [ ] Add spatial queries support (SQLite R*Tree extension)
- [ ] Implement location clustering for map display
### Integration Points
- [ ] REST API for location queries
- [ ] Real-time location updates via WebSocket/MQTT
- [ ] Map visualization frontend
- [ ] Mobile app data sync
- [ ] Export/backup functionality