Commit Graph

36 Commits

Author SHA1 Message Date
Daniel Graf
85a5bc1afc 523 bug reitti misses some visits (#545) 2025-12-09 16:30:39 +01:00
Daniel Graf
bd374d8be9 docs(#530): new screenshots (#521) 2025-12-02 15:16:06 +01:00
Daniel Graf
cba793354c 489 feature request infer missing gps data between close points in visit computation (#509) 2025-11-29 15:18:34 +01:00
Daniel Graf
257e7e77d5 472 bug image header can still be created on memories (#483) 2025-11-19 19:43:22 +01:00
Daniel Graf
93bf1d2ae2 218 feature request end to end e2e frontend testing framework 2 (#477) 2025-11-16 12:48:00 +01:00
Daniel Graf
f6a3acc41d 365 feature request add a thank you section to the about page (#404) 2025-11-05 14:25:44 +01:00
Daniel Graf
8d1b65aa69 - Remove unused OIDC configuration in application-dev.properties (#294) 2025-09-22 14:57:07 +02:00
Daniel Graf
7e17d33ddb update gh actions to allow pr builds (#268) 2025-09-14 07:17:40 +02:00
Daniel Graf
042b11f9c7 145 feature request sso authentication using oauth2 (#161) 2025-08-23 13:06:54 +02:00
Elyviere
4a66b050e4 Add OIDC sign-in (#155)
Signed-off-by: elyviere <ir5d1xr6@anonaddy.me>
Co-authored-by: elyviere <ir5d1xr6@anonaddy.me>
2025-08-23 11:43:01 +02:00
Daniel Graf
8eba663a18 132 custom map tile servers (#134) 2025-07-19 06:23:26 +02:00
Daniel Graf
929adaa4de Create FUNDING.yml (#111) 2025-07-10 11:17:54 +02:00
Daniel Graf
b90ecd075b 107 build docker images for arm (#109) 2025-07-09 09:08:53 +02:00
Daniel Graf
c89c32194f enhancement(#107): adjusted the github action to also build an arm64 … (#108) 2025-07-09 08:48:57 +02:00
Daniel Graf
2bd61008fe feature(#102): add also specific version to the docker tags (#103) 2025-07-08 16:32:52 +02:00
Daniel Graf
e9c51cbc6b 88 support the new google location historyjson (#98) 2025-07-07 14:24:50 +02:00
Daniel Graf
e936022ea9 enabled data ingestion from owntracks recorder (#96) 2025-07-06 16:18:02 +02:00
Daniel Graf
2f2f8e38b3 added screenshots (#69) 2025-06-27 13:44:19 +02:00
Daniel Graf
6eb46e9ed7 added logo to README.md and app (#62) 2025-06-26 14:42:11 +02:00
Daniel Graf
844d550daf reworked import process again (#61) 2025-06-26 12:56:22 +02:00
Daniel Graf
7fc502b220 tripmergeservice does not recognize consecutive trips (#44)
* reworked the whole processing pipeline
* processing starts every 5 minutes with the location points which are not already processed
* added geojson support
2025-06-12 15:41:26 +02:00
Daniel Graf
9a09f05082 30 fix usability issues on date selection (#31)
fixes #30 so the user can normally scroll to the left and right
2025-06-05 18:24:00 +02:00
Daniel Graf
daf84df4e6 added upload package task 2025-06-05 07:31:13 +02:00
Daniel Graf
bdf9287135 added upload package task 2025-06-05 06:59:05 +02:00
Daniel Graf
6651481a2e added v as tag name start condition 2025-06-05 06:59:05 +02:00
Daniel Graf
84abb9a04f - removed releas plugin (#21) 2025-06-04 22:04:10 +02:00
Daniel Graf
aa1fcd783b Update issue templates 2025-06-04 17:35:54 +02:00
Daniel Graf
bc0950cc76 disable pre-release on tag push 2025-06-04 17:20:14 +02:00
Daniel Graf
2225dc3327 disable pre-release on tag push 2025-06-04 17:14:37 +02:00
Daniel Graf
ec35054ec7 disable pre-release on tag push 2025-06-04 17:03:21 +02:00
Daniel Graf
b7778728dc disable pre-release on tag push 2025-06-04 16:59:35 +02:00
Daniel Graf
9d4c7e7bc7 updated github workflow files 2025-06-04 16:52:05 +02:00
Daniel Graf
df96701706 updated github workflow files 2025-06-04 16:51:08 +02:00
Daniel Graf
229a6b801e 10 update detection of visits and places (#18)
* - Remove `SignificantPlaceService` and migrate functionality to `VisitService` and `VisitMergingService`.
- Decouple `Visit` from `SignificantPlace` by removing `place_id` and adding `latitude` and `longitude` fields.
- Refactor `LocationProcessingPipeline` to work with updated `VisitService` for stay point processing.
- Update database schema via migration to remove references to `place_id` in `visits` table.
- Cleanup and improve merging logic in `VisitMergingService` for processed visits.

* refactor: update visit merging logic and distance calculation method

* refactor: optimize visit merging algorithm to reduce ProcessedVisit objects

* refactor: rename Haversine distance method to improve clarity

* feat: add meters to degrees conversion method in GeoUtils

* test: add unit test for GeoUtils distance calculation

* test: add test cases for metersToDegreesAtPosition method

* feat: Add Testcontainers configuration for RabbitMQ and TimescaleDB

* - Refactor TestContainer management to simplify integration tests setup
- Remove redundant Google Takeout and GPX import endpoints from LocationDataApiController
- Add dedicated ImportDataApiController for handling file imports
- Replace RabbitTemplate dependency with ImportListener interface in ImportHandler
- Implement RabbitMQImportDispatcher to handle RabbitMQ interactions
- Convert GeoUtils method calls to use more succinct `distanceInMeters`
- Adjust visit merging threshold setting in application.properties
- Enable Flyway migrations during tests
- Add unit test for ImportHandler GPX functionality
- Update visit repository with method for unprocessed visit periods logging

* refactor: Adjust stay point detection parameters and time window calculation

* feat: make stay point detection parameters configurable

* - Remove `LocationDataProcessingService` and related unused files/tests.
- Migrate RabbitMQ listener to `LocationProcessingPipeline`.
- Add new test `StayPointDetectionServiceTest` for stay point detection validation.
- Refactor `ImportListener` method to `handleImport` for improved clarity.
- Enhance `RawLocationPoint` with `equals` and `hashCode` methods.
- Adjust stay point detection property names for better readability.
- Add `MockImportListener` for test use.
- Refactor and expand test coverage for `LocationDataService` and `ImportHandler`.
- Add utility method for `StayPoint` distance calculation in `GeoUtils`.

* - Remove unused imports from StayPointDetectionServiceTest.java

* refactor: Update place merge distance calculation using GeoUtils method

* feat: enhance visit merging with configurable time and proximity criteria

* - Introduced `VisitMergingServiceTest` to validate visit merging functionality.
- Optimized visit merging in `VisitMergingService` by removing unnecessary time checks and parameters.
- Refactored stay point detection in `StayPointDetectionService` for simplicity and improved clustering.
- Added helper methods `weightedCenter` and reduced redundant logic in `StayPointDetectionService`.
- Enhanced testing utilities in `AbstractIntegrationTest` for visit-related imports.
- Extended `ProcessedVisitRepository` with `findByUserOrderByStartTime` for better sorting.

* - Removed TimescaleDB extension from database initialization script.
- Increased ImportHandler batch size from 100 to 10,000.
- Added staypoint time threshold configuration property.
- Adjusted staypoint detection minimum points from 5 to 1 in test properties.
- Updated BCrypt encoded password for the admin user.
- Switched Docker PostGIS image from TimescaleDB to PostGIS Alpine.
- Expanded StayPointDetectionService processing window by 1 hour before and after points.
- Fixed SettingsController to retrieve the principal from authentication instead of details.

* - Replace `Point` with `GeoPoint` for better consistency and clarity across the codebase.
- Update stay point clustering logic to reflect new `GeoPoint` implementation.
- Add transaction management to visit merging service test.
- Optimize imports and flatten stay point detection to improve readability.
- Reduce batch size in import handler from 10000 to 100.
- Update application properties for fine-tuned stay point and visit processing settings.
- Introduce `GeoPoint` record for encapsulating geographic coordinates.
- Adjust test cases to match refined clustering and visit merging logic

* refactor: Simplify nearby places search by removing unnecessary blank line

* refactor: modify visit merging algorithm to merge consecutive visits at same place

* - Add `equals` and `hashCode` methods to `SignificantPlace` for better object comparison.
- Introduce `VisitMergingService` dependency and helper method `importUntilProcessedVisits` in `AbstractIntegrationTest`.
- Adjust `reitti.visit.merge-threshold-seconds` configuration from 300 to 600 seconds.
- Minor cleanup: remove redundant line in `VisitMergingService` and duplicate test data in `VisitMergingServiceTest`.

* - Add `toString` implementation to `SignificantPlace` class
- Add integration test for `TripDetectionService` to ensure trip detection logic between visits
- Include helper method to print detected trips in tests

* feat: make batch size configurable in ImportHandler with @Value

* refactor: Extend trip search time range by one day before and after

* added new icons

* - updated trip merging to ignore duplicates
- add first and last places if they start before the current day but end on it.

* - updated labels on trips

* refactor: remove icon element from entry rendering logic

* feat: add day and month for entries spanning multiple days

* - added day and month if time is outside the selected day

* style: update login.html to match dark theme of the app

* feat: add persistent login with remember-me functionality

* feat: add user update functionality to settings page

* style: remove extra semicolon in CSS file

* feat: allow editing of current logged-in user with re-login warning

* refactor: Remove unused return value from updateUser method

* refactor: use HTMX for user form management with dynamic fragments

* - add ability to update existing users
- add remember me functionality

* - finished login page

* feat: adjust marker size and popup to reflect visit duration

* Revert "- finished login page"

This reverts commit 424988d009.

* - updated display of visits

* build: add Docker image building configuration to pom.xml

* fixed running all tests

* added docker image creation to build step

* feat: Add Docker Hub description and update README with comprehensive project details

* docs: Update README with detailed project information and usage instructions

* added docker image creation to build step

* add pre-release.yml

* add pre-release.yml

* added docker push

* added docker push

* added docker push

* added docker push

* added docker push

* refactor: remove Spring Boot Docker plugin and add custom Dockerfile with UID/GID support

* feat: improve user and group ID switching in Dockerfile

* build: add docker run script for container deployment

* updated docker creation

* updated docker creation

* updated docker creation

* updated docker creation

* updated docker creation

* updated docker creation

* updated github workflow files
2025-06-04 16:48:38 +02:00
Daniel Graf
ed07c18500 10 update detection of visits and places (#17)
* - Remove `SignificantPlaceService` and migrate functionality to `VisitService` and `VisitMergingService`.
- Decouple `Visit` from `SignificantPlace` by removing `place_id` and adding `latitude` and `longitude` fields.
- Refactor `LocationProcessingPipeline` to work with updated `VisitService` for stay point processing.
- Update database schema via migration to remove references to `place_id` in `visits` table.
- Cleanup and improve merging logic in `VisitMergingService` for processed visits.

* refactor: update visit merging logic and distance calculation method

* refactor: optimize visit merging algorithm to reduce ProcessedVisit objects

* refactor: rename Haversine distance method to improve clarity

* feat: add meters to degrees conversion method in GeoUtils

* test: add unit test for GeoUtils distance calculation

* test: add test cases for metersToDegreesAtPosition method

* feat: Add Testcontainers configuration for RabbitMQ and TimescaleDB

* - Refactor TestContainer management to simplify integration tests setup
- Remove redundant Google Takeout and GPX import endpoints from LocationDataApiController
- Add dedicated ImportDataApiController for handling file imports
- Replace RabbitTemplate dependency with ImportListener interface in ImportHandler
- Implement RabbitMQImportDispatcher to handle RabbitMQ interactions
- Convert GeoUtils method calls to use more succinct `distanceInMeters`
- Adjust visit merging threshold setting in application.properties
- Enable Flyway migrations during tests
- Add unit test for ImportHandler GPX functionality
- Update visit repository with method for unprocessed visit periods logging

* refactor: Adjust stay point detection parameters and time window calculation

* feat: make stay point detection parameters configurable

* - Remove `LocationDataProcessingService` and related unused files/tests.
- Migrate RabbitMQ listener to `LocationProcessingPipeline`.
- Add new test `StayPointDetectionServiceTest` for stay point detection validation.
- Refactor `ImportListener` method to `handleImport` for improved clarity.
- Enhance `RawLocationPoint` with `equals` and `hashCode` methods.
- Adjust stay point detection property names for better readability.
- Add `MockImportListener` for test use.
- Refactor and expand test coverage for `LocationDataService` and `ImportHandler`.
- Add utility method for `StayPoint` distance calculation in `GeoUtils`.

* - Remove unused imports from StayPointDetectionServiceTest.java

* refactor: Update place merge distance calculation using GeoUtils method

* feat: enhance visit merging with configurable time and proximity criteria

* - Introduced `VisitMergingServiceTest` to validate visit merging functionality.
- Optimized visit merging in `VisitMergingService` by removing unnecessary time checks and parameters.
- Refactored stay point detection in `StayPointDetectionService` for simplicity and improved clustering.
- Added helper methods `weightedCenter` and reduced redundant logic in `StayPointDetectionService`.
- Enhanced testing utilities in `AbstractIntegrationTest` for visit-related imports.
- Extended `ProcessedVisitRepository` with `findByUserOrderByStartTime` for better sorting.

* - Removed TimescaleDB extension from database initialization script.
- Increased ImportHandler batch size from 100 to 10,000.
- Added staypoint time threshold configuration property.
- Adjusted staypoint detection minimum points from 5 to 1 in test properties.
- Updated BCrypt encoded password for the admin user.
- Switched Docker PostGIS image from TimescaleDB to PostGIS Alpine.
- Expanded StayPointDetectionService processing window by 1 hour before and after points.
- Fixed SettingsController to retrieve the principal from authentication instead of details.

* - Replace `Point` with `GeoPoint` for better consistency and clarity across the codebase.
- Update stay point clustering logic to reflect new `GeoPoint` implementation.
- Add transaction management to visit merging service test.
- Optimize imports and flatten stay point detection to improve readability.
- Reduce batch size in import handler from 10000 to 100.
- Update application properties for fine-tuned stay point and visit processing settings.
- Introduce `GeoPoint` record for encapsulating geographic coordinates.
- Adjust test cases to match refined clustering and visit merging logic

* refactor: Simplify nearby places search by removing unnecessary blank line

* refactor: modify visit merging algorithm to merge consecutive visits at same place

* - Add `equals` and `hashCode` methods to `SignificantPlace` for better object comparison.
- Introduce `VisitMergingService` dependency and helper method `importUntilProcessedVisits` in `AbstractIntegrationTest`.
- Adjust `reitti.visit.merge-threshold-seconds` configuration from 300 to 600 seconds.
- Minor cleanup: remove redundant line in `VisitMergingService` and duplicate test data in `VisitMergingServiceTest`.

* - Add `toString` implementation to `SignificantPlace` class
- Add integration test for `TripDetectionService` to ensure trip detection logic between visits
- Include helper method to print detected trips in tests

* feat: make batch size configurable in ImportHandler with @Value

* refactor: Extend trip search time range by one day before and after

* added new icons

* - updated trip merging to ignore duplicates
- add first and last places if they start before the current day but end on it.

* - updated labels on trips

* refactor: remove icon element from entry rendering logic

* feat: add day and month for entries spanning multiple days

* - added day and month if time is outside the selected day

* style: update login.html to match dark theme of the app

* feat: add persistent login with remember-me functionality

* feat: add user update functionality to settings page

* style: remove extra semicolon in CSS file

* feat: allow editing of current logged-in user with re-login warning

* refactor: Remove unused return value from updateUser method

* refactor: use HTMX for user form management with dynamic fragments

* - add ability to update existing users
- add remember me functionality

* - finished login page

* feat: adjust marker size and popup to reflect visit duration

* Revert "- finished login page"

This reverts commit 424988d009.

* - updated display of visits

* build: add Docker image building configuration to pom.xml

* fixed running all tests

* added docker image creation to build step

* feat: Add Docker Hub description and update README with comprehensive project details

* docs: Update README with detailed project information and usage instructions

* added docker image creation to build step

* add pre-release.yml

* add pre-release.yml

* added docker push

* added docker push

* added docker push

* added docker push

* added docker push

* refactor: remove Spring Boot Docker plugin and add custom Dockerfile with UID/GID support

* feat: improve user and group ID switching in Dockerfile

* build: add docker run script for container deployment

* updated docker creation

* updated docker creation

* updated docker creation

* updated docker creation

* updated docker creation

* updated docker creation
2025-06-04 16:40:37 +02:00
Daniel Graf
fda556bb7e Create maven.yml 2025-05-29 23:05:10 +02:00