Added comprehensive unit tests for the identity_providers module, including CRUD operations, schema validation, and utility functions. Updated .gitignore to exclude deeper __pycache__ directories. Removed session test files and old __pycache__ files from the repository.
Changed the date format passed to api.get_body_composition from a datetime object to a string in 'YYYY-MM-DD' format to match API requirements. Also updated .gitignore to exclude .garminconnect files.
Updated .github/copilot-instructions.md to specify that development/helper scripts should be stored in the devscripts/ folder. Added devscripts/ to .gitignore to prevent local development scripts from being committed.
Updated .github/copilot-instructions.md to specify that new development documentation files should be placed in the devdocs/ folder. Added devdocs/ to .gitignore to ensure local development docs are not committed to the repository.
Added pytest configuration, test dependencies, and initial test files for the backend. Introduced .env.test for test environment variables. Enhanced docstrings for database and session utility functions. Updated .gitignore for test artifacts.
Moves Strava bikes CSV import from the gears API to the strava API, refactoring backend logic for parsing and importing bikes. Adds robust deduplication and validation in gear creation, ensuring no duplicate nicknames or existing gear are imported. Updates frontend to use the new Strava bikes import endpoint, improves user notifications, and updates i18n strings and icons for clarity.
Introduces 'Track run' as a new activity type in the backend, updating mappings and distance calculations accordingly. Removes debug print statements from FIT utils. Updates backend dependencies in poetry.lock and pyproject.toml, and bumps API version to v0.13.4. Adds new ignore rules for import error files in .gitignore. Minor updates to frontend components and i18n files.
[backend] add new file types to bulk_import supported file types
[backend] add new route to serve activity_media
[backend] started routes for activity_media
[backend] added new activity_media table logic
[frontend] add carousel to MapComponent with activity_media
[frontend] moved to composition API in some files
[backend] added login_photo_set column to server_settings
[backend] added ENVIRONMENT env variable
[backend] added server_images
[backend] added protections to server_images and user_images logic
[backend] fixed issue on gpx laps processing with no variables initialized
[backend] CORS now in production only accept requests from ENDURAIN_HOST variable
[docs] updated docs with new env variable and new volume
[frontend] added support to new column on server settings store
[aux] added auxiliary scripts
[backend] added error logic to error printing
[backend] rollbacked changes from Datetime to Timestamp
[backend] added body composition sync from Garmin
[backend] added additional validations for empty .gpx files
[backend] add calculate BMI logic
[backend] add BMI calculation in migration
[backend] added Timezone logic to Strava activity import
[frontend] removed block that prevent deleting Strava or GC activity
[frontend] added new generic modal for single number input
[frontend] replaced modal that retrieves Strava and GC activities for number of days with new generic modal
[frontend] added shoes gear in add gear to walk and hike activities
[frontend] minor bug fixes
Updated .gitignore
[README] Updated README file
[backend] processed files are now stored in files/processed instead of deleted
[backend] removed uploads folder, and centralised everything in files folder, including bulk_import folder
[backend] added new route for handling bulk import requests
[backend] added new folder for bulk import actions
[backend] adjusted code for better re usability for bulk import and single file upload
[docker-compose] added new volume mapping in docker compose example file
[README] added new volumes information to backend section of README file
[frontend] Created UserAvatarComponent to make better reusability of this component and adapted views and components to it
[frontend] It is now possible to upload a photo of the user when creating the user
[frontend] Deleting the user deletes the photo in the filesystem
[backend] Added logic to receive uploaded user photo and store it in the filesystem under user_images directory
[backend] Added logic to /user_images be routed when requested
[docker] Updated docker files and example docker compose file