Commit graph

65 commits

Author SHA1 Message Date
Niklas Deutschmann
492fd7dee1 Changed message 2026-04-10 12:10:58 +02:00
Tim Zöller
c4f77469b8 New interactive charts 2026-04-08 10:03:15 +02:00
Tim Zöller
8fdb6a9fb1 Fix SPM bug 2026-04-08 09:28:12 +02:00
Tim Zöller
1952955f3b Fix broken links 2026-04-08 00:07:29 +02:00
Tim Zöller
e78a03b41b Fix wrongly calculated dashboards 2026-04-08 00:03:10 +02:00
Tim Zöller
662363555b Emoji likes 2026-04-07 19:11:29 +02:00
Tim Zöller
a0eebfcb3f Security Fixes 2026-04-07 10:28:10 +02:00
Tim Zöller
aa7a7bc9fc Peak filters for users activity 2026-04-07 07:49:29 +02:00
Tim Zöller
a1416b232b Peak Detection 2026-04-06 23:41:33 +02:00
Tim Zöller
6e70e1495e Minor tweaks 2026-04-06 21:42:52 +02:00
Tim Zöller
e203250104 Delayed Fediverse publication 2026-04-06 21:10:11 +02:00
Tim Zöller
debc55d484 Reverse Lookup for activities 2026-01-15 10:59:34 +01:00
Tim Zöller
612d67ccda Search function, declaudification 2026-01-14 16:53:34 +01:00
Tim Zöller
1f2ff67f38 Big Feature and Beautifying Package 2026-01-13 12:53:18 +01:00
Tim Zöller
87da2a3861 Remove migration logic again 2026-01-11 12:21:24 +01:00
Tim Zöller
22c4ca0964 Mark indoor activities to exclude them from the heatmap 2026-01-11 11:56:48 +01:00
Tim Zöller
851ba87ef2 Performance Improvements 2026-01-10 08:41:20 +01:00
Tim Zöller
3fe5f90e02 Fix Elevation chart hovering 2026-01-09 14:02:47 +01:00
Tim Zöller
fcef751483 Privacy Zones 2026-01-09 13:32:45 +01:00
Tim Zöller
6a8598ef30 UI fixes & updates 2026-01-09 09:05:51 +01:00
Tim Zöller
22f7f7c271 Async uploads, graph improvements 2026-01-07 09:52:46 +01:00
Tim Zöller
40173c269f Heatmap optimized 2026-01-05 14:40:08 +01:00
Tim Zöller
f34ce5723e Moving Time ergänzt 2026-01-05 14:12:29 +01:00
Tim Zöller
4b166c0637 Process activities without GPS better 2026-01-05 10:42:06 +01:00
Tim Zöller
4fe283f246 Account >D
eletion
2026-01-04 08:18:21 +01:00
Tim Zöller
b5164c9617 Fix Weather API access 2026-01-04 07:46:07 +01:00
Tim Zöller
0fe0810f51 Quality of Life, Security 2026-01-03 22:30:04 +01:00
Tim Zöller
5455f8cd36 Fix dark mode contrast issues on notifications page
- Active tab (ALL/UNREAD): Light text on dark background instead of white-on-white
- Unread notifications: Cyan-tinted semi-transparent background for visibility
- Actor names: Light color (#e8e8f0) for proper contrast in dark mode
- Hover states: Dark purple background (#301550) instead of white
- Notification icons: Semi-transparent backgrounds with bright neon colors

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-03 21:03:58 +01:00
Tim Zöller
a19d4870f7 Batch Import 2026-01-03 08:56:57 +01:00
Tim Zöller
f4be439002 Add GPX file support for activity imports
This commit adds comprehensive GPX file support alongside existing FIT file support, enabling users to import activities from Strava, Komoot, and other GPS apps.

## Key Features

### Core Components
- **GpxParser**: Full GPX 1.1 parsing with Garmin TrackPointExtension support
- **GpxFileValidator**: Validation for GPX file format and structure
- **ActivityFileService**: Unified service with automatic format detection (FIT/GPX)
- **ParsedActivityData**: Common data structure for both FIT and GPX files

### GPX Parsing Capabilities
- GPS track point extraction (latitude, longitude, elevation, timestamp)
- Garmin extension data (heart rate, cadence, temperature)
- Activity type detection from GPX metadata
- Distance calculation using Haversine formula
- Elevation gain/loss calculation
- Speed calculation from consecutive GPS points
- Speed smoothing to remove GPS artifacts
- Timezone detection from GPS coordinates
- Moving time vs. stopped time analysis

### Database Changes
- Migration V15: Renamed raw_fit_file → raw_activity_file
- Added source_file_format column (FIT/GPX) with constraint
- Index on source_file_format for performance
- Updated Activity entity with new fields

### Controller & UI Updates
- ActivityController: Now handles both FIT and GPX uploads
- Upload form: Updated to accept .fit and .gpx files
- Help text: Clarified both formats are supported

### Testing
- GpxParserIntegrationTest: 9 comprehensive tests with real GPX file
- Tests cover: parsing, validation, heart rate extraction, distance calculation,
  elevation metrics, speed calculation, chronological ordering, smoothing
- Fixed TrainingLoadServiceTest date issue (testDate outside 30-day window)
- All 97 unit tests passing (integration tests require Docker)

### Technical Details
- Supports GPX 1.0 and 1.1 specifications
- Handles multiple track segments
- Processes Garmin TrackPointExtension v1 and v2
- Same track simplification as FIT (Douglas-Peucker algorithm)
- Consistent JSONB storage format for track points
- Compatible with existing analytics, heatmaps, and image generation

## Testing Summary
-  9/9 GpxParserIntegrationTest tests passing
-  4/4 FitParserIntegrationTest tests passing
-  14/14 FitFileServiceTest tests passing
-  97/97 total unit tests passing

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-02 13:31:05 +01:00
Tim Zöller
66b14ebf7f Add on-demand heatmap rebuild and remove nightly scheduler
- Added rebuild button to heatmap page with loading states
- Added POST /api/heatmap/me/rebuild endpoint for on-demand recalculation
- Removed HeatmapRecalculationScheduler (nightly 3 AM cron job)
- Removed @EnableScheduling annotation since no schedulers remain
- Users can now rebuild their heatmap manually instead of relying on automatic nightly recalculation

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-02 09:21:52 +01:00
Tim Zöller
f391028061 Added Heatmaps 2026-01-01 23:48:05 +01:00
Tim Zöller
5b687883b0 Better Federation Support 2025-12-15 21:55:17 +01:00
Tim Zöller
fe05e2ffa4 Follow Users on the instance 2025-12-15 10:25:40 +01:00
Tim Zöller
cc59701337 Small visual fixes 2025-12-15 09:07:15 +01:00
Tim Zöller
566fc90249 Small visual fixes 2025-12-15 09:03:15 +01:00
Tim Zöller
7c957e5135 Chart Rendering fixed for analytics 2025-12-15 08:42:39 +01:00
Tim Zöller
1569114593 Quality of Life Improvements 2025-12-14 17:22:36 +01:00
Tim Zöller
114d92c453 Optical improvements, don't duplicate initially created entries 2025-12-14 17:11:24 +01:00
Tim Zöller
cbf4060441 Tests 2025-12-05 20:38:54 +01:00
Tim Zöller
0e81a65d62 Good stuff 2025-12-05 10:21:45 +01:00
Tim Zöller
9e428a0499 Nicer sharepics 2025-12-04 22:39:15 +01:00
Tim Zöller
5b0648f0d0 Stuff 2025-12-04 18:46:20 +01:00
Tim Zöller
7d07653d2a Stuff 2025-12-04 18:39:01 +01:00
Tim Zöller
7e4b1d50d7 Nice things 2025-12-04 13:04:08 +01:00
Tim Zöller
67a8aad4f1 Nice things 2025-12-04 12:53:12 +01:00
Tim Zöller
362680f774 Nice things 2025-12-04 12:44:18 +01:00
Tim Zöller
da7d58b548 Nice things 2025-12-04 09:09:12 +01:00
Tim Zöller
facade014a Notification System 2025-12-04 08:59:44 +01:00
Tim Zöller
3ec22c4770 More graphs 2025-12-04 08:24:20 +01:00