This 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.
It uses Java 17 with Spring framework, and a relational database (MySQL or MariaDB).
Learn more (in Portuguese): https://matheusmisumoto.dev/portfolio/fitlogr-workout-tracking-web-app.html
- Spring Boot 3
- Spring Security
- Spring Reactive Web
- Spring Data
- Spring HateOAS
- Validation
- Clone the repository
- Using your IDE, install the dependencies
- Modify
application-prod.properties
to use your settings to connect to your database. You can also create a new profile and setspring.profiles.active
onapplication.properties
to use it.
POST /auth/oauth
: Login with GitHubPOST /auth/login
: Login with username and passwords
GET /v1/exercises
: List all exercisesGET /v1/exercises/{id}
: Get details from an exercisePOST /v1/exercises
: Add a new exercise (admin only)PUT /v1/exercises/{id}
: Edit exercise information (admin only)DELETE /v1/exercises/{id}
: Remove an exercise (admin only)
GET /v1/workouts/user/{userid}/all
: List all workouts from a userGET /v1/workouts/user/{userid}/latest
: List the 10 latest workouts from a userGET /v1/workouts/user/{userid}/{id}
: Retrieve all details from an workoutGET /v1/workouts/user/{userid}/exercise/{exerciseid}
: Get latest user stats from an exercisePOST /v1/workouts
: Add workout logPUT /v1/workouts/{id}
: Edit workout log, including metadata and list of exercises and sets (admin and self profile only)DELETE /v1/workouts/{id}
: Remove workout log (admin and self profile only)
GET /v1/users/register
: Add a new userGET /v1/users
: List all users (admin only)GET /v1/users/{id}
: Retrieve user informationPUT /v1/users/{id}
: Edit user profile (admin and self profile only)DELETE /V1/users/{id}
: Delete user (admin and self profile only)
Developed with ☕ by Matheus Misumoto in Santos, Brazil