{"id":38851079,"url":"https://github.com/matheusmisumoto/workout-logger-api","last_synced_at":"2026-01-17T14:12:26.026Z","repository":{"id":204363462,"uuid":"711659719","full_name":"matheusmisumoto/workout-logger-api","owner":"matheusmisumoto","description":"API from an application project to log and manage workout data to keep traking of your fitness journey.","archived":false,"fork":false,"pushed_at":"2024-05-16T18:26:32.000Z","size":425,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-17T19:37:32.529Z","etag":null,"topics":["fitness","fitness-tracker","gradle","java","jwt","jwt-authentication","learn","mariadb","mysql","spring-boot","spring-data","spring-data-jpa","spring-security","spring-security-jwt","workout","workout-tracker"],"latest_commit_sha":null,"homepage":"https://matheusmisumoto.dev/portfolio/fitlogr-workout-tracking-web-app.html","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matheusmisumoto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-29T23:18:38.000Z","updated_at":"2024-05-16T18:21:58.000Z","dependencies_parsed_at":"2023-11-29T04:30:23.155Z","dependency_job_id":"4dd8088a-675d-466f-be50-0853177bb8e2","html_url":"https://github.com/matheusmisumoto/workout-logger-api","commit_stats":null,"previous_names":["matheusmisumoto/workout-logger-api"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/matheusmisumoto/workout-logger-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusmisumoto%2Fworkout-logger-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusmisumoto%2Fworkout-logger-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusmisumoto%2Fworkout-logger-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusmisumoto%2Fworkout-logger-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matheusmisumoto","download_url":"https://codeload.github.com/matheusmisumoto/workout-logger-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusmisumoto%2Fworkout-logger-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28509939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fitness","fitness-tracker","gradle","java","jwt","jwt-authentication","learn","mariadb","mysql","spring-boot","spring-data","spring-data-jpa","spring-security","spring-security-jwt","workout","workout-tracker"],"created_at":"2026-01-17T14:12:25.942Z","updated_at":"2026-01-17T14:12:26.010Z","avatar_url":"https://github.com/matheusmisumoto.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FitLogr API\r\n\r\n![FitLogr Banner](fitlogr-banner.jpg)\r\n\r\nThis API is part of FitLogr, an application project to track and manage workout data. Users can register and login using their GitHub account, or create a profile using username and password.\r\n\r\nIt uses Java 17 with Spring framework, and a relational database (MySQL or MariaDB).\r\n\r\nLearn more (in Portuguese): https://matheusmisumoto.dev/portfolio/fitlogr-workout-tracking-web-app.html\r\n\r\n## Dependencies\r\n- Spring Boot 3\r\n- Spring Security\r\n- Spring Reactive Web\r\n- Spring Data\r\n- Spring HateOAS\r\n- Validation\r\n\r\n## Installing\r\n1. Clone the repository\r\n2. Using your IDE, install the dependencies\r\n3. Modify `application-prod.properties` to use your settings to connect to your database. You can also create a new profile and set `spring.profiles.active` on `application.properties` to use it.\r\n\r\n## Avaliable Routes and Endpoints\r\n\r\n### Authentication\r\n\r\n- `POST /auth/oauth`: Login with GitHub\r\n- `POST /auth/login`: Login with username and passwords\r\n\r\n### Exercise database\r\n\r\n- `GET /v1/exercises`:  List all exercises\r\n- `GET /v1/exercises/{id}`: Get details from an exercise\r\n- `POST /v1/exercises`: Add a new exercise (admin only)\r\n- `PUT /v1/exercises/{id}`: Edit exercise information (admin only)\r\n- `DELETE /v1/exercises/{id}`: Remove an exercise (admin only)\r\n\r\n### Workout\r\n\r\n- `GET /v1/workouts/user/{userid}/all`: List all workouts from a user\r\n- `GET /v1/workouts/user/{userid}/latest`: List the 10 latest workouts from a user\r\n- `GET /v1/workouts/user/{userid}/{id}`: Retrieve all details from an workout\r\n- `GET /v1/workouts/user/{userid}/exercise/{exerciseid}`: Get latest user stats from an exercise\r\n- `POST /v1/workouts`: Add workout log\r\n- `PUT /v1/workouts/{id}`: Edit workout log, including metadata and list of exercises and sets (admin and self profile only)\r\n- `DELETE /v1/workouts/{id}`: Remove workout log (admin and self profile only)\r\n\r\n### Users\r\n\r\n- `GET /v1/users/register`: Add a new user\r\n- `GET /v1/users`: List all users (admin only)\r\n- `GET /v1/users/{id}`: Retrieve user information\r\n- `PUT /v1/users/{id}`: Edit user profile (admin and self profile only)\r\n- `DELETE /V1/users/{id}`: Delete user (admin and self profile only)\r\n\r\n\r\n---\r\nDeveloped with ☕ by [Matheus Misumoto](https://matheusmisumoto.dev) in Santos, Brazil","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusmisumoto%2Fworkout-logger-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatheusmisumoto%2Fworkout-logger-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusmisumoto%2Fworkout-logger-api/lists"}