Gymboard/gymboard-api
Andrew Lalis 595a33a801 Merge remote-tracking branch 'origin/main' into main
# Conflicts:
#	gymboard-api/src/main/java/nl/andrewlalis/gymboard_api/config/WebConfig.java
#	gymboard-api/src/main/resources/application-development.properties
#	gymboard-app/src/layouts/MainLayout.vue
2023-01-30 21:54:08 +01:00
..
.mvn/wrapper Added basic spring backend api project. 2023-01-19 20:52:31 +01:00
sample_data Added users! 2023-01-30 10:07:28 +01:00
src Merge remote-tracking branch 'origin/main' into main 2023-01-30 21:54:08 +01:00
.gitignore Added users! 2023-01-30 10:07:28 +01:00
README.md Changed to ULID submission ids. 2023-01-27 20:41:39 +01:00
gen_keys.d Added users! 2023-01-30 10:07:28 +01:00
mvnw Added basic spring backend api project. 2023-01-19 20:52:31 +01:00
mvnw.cmd Added basic spring backend api project. 2023-01-19 20:52:31 +01:00
pom.xml Added users! 2023-01-30 10:07:28 +01:00

README.md

Gymboard API

An HTTP/REST API powered by Java and Spring Boot. This API serves as the main entrypoint for all data processing, and is generally the first point-of-contact for the web app or other services that consume Gymboard data.

Development

To ease development, nl.andrewlalis.gymboard_api.model.SampleDataLoader will run on startup and populate the database with some sample entities. You can regenerate this data by manually deleting the database, and deleting the .sample_data marker file that's generated in the project directory.

ULIDs

For entities that don't need a human-readable primary key (or keys), we choose to use ULID strings, which are like UUIDs, but use a timestamp based preamble such that their values are monotonically increasing, and lexicographically ordered by creation time. The result is a pseudorandom string of 26 characters which appears random to a human, yet is efficient as a primary key. It's also near-impossible for automated systems to guess previous/next ids.