A web-based workout tracking application designed to help users track their workouts, monitor progression, and optimize their training. The app supports detailed logging of reps, load, and RIR (Reps in Reserve) across weeks, with complex progression formulas built in to help users progressively overload their exercises.
For web app access, use the direct link. Can be installed on device through supported browsers and platforms, recommended browser is Google Chrome.
- Track workouts with detailed logs for reps, load, and RIR
- Automatic progressive overload calculations based on past performance
- User-friendly interface built with SvelteKit
- Backend API using tRPC for seamless communication between frontend and backend
- CockroachDB database managed by Prisma for scalable and reliable data storage
- Comprehensive testing suite using Playwright for end-to-end testing
Follow these instructions to get a copy of the project up and running on your local machine.
- Node.js (v20.16.0 or higher)
- npm or yarn
- TypeScript
-
Clone the repository:
git clone https://github.com/WhyAsh5114/workout-tracking-app.git cd workout-tracking-app
-
Install dependencies:
npm ci
-
Set up environment variables:
- Copy
sample.env
to.env
and configure the required values, including your CockroachDB connection details.
- Copy
-
Set up the database (CockroachDB):
- Local setup
- Cloud setup (much faster)
- Run Prisma migrations to set up the database schema:
npx prisma migrate dev
-
Start the development server:
npm run dev
-
Open the app in your browser at
http://localhost:5173
.
To run the test suite, use the following command:
npm run test
This will execute the Playwright end-to-end tests and any unit tests.
Once the app is running, you can create an account, log your workouts, and track your progress over time. The app will automatically calculate progressive overload to help optimize your training.
- Progressive Overload: The app uses built-in formulas to adjust your workout plan based on your previous performance, helping you to continually challenge yourself and make progress.
- RIR (Reps in Reserve): You can log your perceived effort for each set to fine-tune your training intensity.
We welcome contributions! Please see our CONTRIBUTING.md for guidelines on how to contribute to this project.
If you discover a security vulnerability, please follow our SECURITY.md guidelines on reporting issues responsibly.
This project is licensed under the GNU Affero General Public License v3.0. See the LICENSE file for more details.
- Special thanks to the open-source community for their contributions to the tools and libraries used in this project.