Skip to content

About

REST API providing Google authentication and CRUD operations for application data. Built with Java, Spring Boot, Maven and MongoDB.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

176 Commits

Folders and files

Repository files navigation

TrackThat API

REST API for the TrackThat mobile app.

The API provides Google authentication and manages application data such as users, workouts and workout logs.

Tech Stack

  • Java
  • Spring Boot
  • Spring Data MongoDB
  • MongoDB
  • Maven
  • MapStruct
  • JWT authentication
  • Google authentication
  • Testcontainers
  • JUnit

Requirements

  • Java 21
  • Docker
  • Maven Wrapper

Docker is required for integration tests using Testcontainers.

Development

Start the application locally:

./mvnw spring-boot:run

The application uses the local Spring profile configuration where required.

Build

Build the application:

./mvnw clean package

The executable Spring Boot JAR is written to:

target/

Testing

Run the complete test suite:

./mvnw clean verify

Integration tests use Testcontainers to start the required MongoDB instance automatically.

Tests are also executed automatically through GitHub Actions for pushes and pull requests targeting the main branch.

Environment Variables

The application requires environment-specific configuration.

GOOGLE_CLIENT_ID=
JWT_SECRET=
MONGODB_URI=
PORT=

Sensitive values should not be committed to the repository.

API

The application exposes REST endpoints for:

  • Google authentication
  • User management
  • Workout management
  • Workout log management

Hosting

The production API is hosted on Fly.io.

Deployments are handled through GitHub Actions after the test suite has completed successfully.

Versions

as of September 22, 2026:

Technology Version
Java 21
Spring Boot 3.5.16
JJWT 0.13.0
MapStruct 1.6.3
Google API Client 2.9.1
Google Auth Library 1.52.0

Check the local Java and Maven versions:

java --version
./mvnw --version

About

REST API providing Google authentication and CRUD operations for application data. Built with Java, Spring Boot, Maven and MongoDB.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages