Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ryglus/liftlog-be

GOlang api for website
https://github.com/ryglus/liftlog-be

golang kubernetes microservices postgresql redis-database

Last synced: about 1 month ago
JSON representation

GOlang api for website

Awesome Lists containing this project

README

        

so okay let me tell you whats my idea, users will log in (so we need users accounts makes sense) and then they will have in main page, a sections that they can work with (enable disable favourite, ext) in these sections i am for now thinking, Food (like add each meal of the day for tracking), then suplements (most likely a check boxes if they took em that day) and their lifts (that would be considered from calendar how they set it up, they will have calendar and set their split) in each day they will see the workouts to do, they can add how much they lifted and if they completed it, also they can add if they did something outside their regular split so if they normaly for example dont have deadlifts in their day, and they did them, they can add that, that they did that that day. all of that data needs to be stored.

# Revised Architecture:

## PostgreSQL:

Stable Data: Stores the relatively static data:
Schedules: Defines the user's workout split (days, routines).
Workouts: Contains the collection of exercises for each scheduled workout.
Exercises: Stores the definitions of exercises (e.g., Bench Press, Squat).
Relational Queries: For things like user schedules, workout plans, and relationships between exercises.
InfluxDB:

## Dynamic Time-Series Data:
Stores individual workout logs, focusing on the specific data points:

Lift Data: Logs of weights lifted, sets, reps, and timestamps for each exercise.
Analytics: Tracks improvements over time, total volume lifted, progress per exercise, etc.
Workflow:

## PostgreSQL (Metadata):

Users set up their workout schedules and exercises in PostgreSQL.
The app retrieves the workout plan from PostgreSQL when the user is working out, presenting exercises for the day.

## InfluxDB (Workout Data):

When the user performs a workout, you log each set, rep, and weight with a timestamp into InfluxDB.
The lift logs are tied to specific exercises via the exercise IDs from PostgreSQL.

## Queries & Analytics:

PostgreSQL can handle relational queries, such as fetching a user’s scheduled exercises for the day.
InfluxDB handles time-based queries, such as:
“How much weight has this user lifted for Bench Press in the last 3 months?”
“Show the user's improvement trend for Squats over time.”