This project is both a web application and a Progressive Web Application (PWA) that works as a fitness tracker, helping you monitor your workouts.
- Track workouts, exercises, sets, reps, and weights.
- Add notes, rest times, and intensity ratings (RPE & RIR).
- Create, edit, and organize your workout routines.
- Add exercises from a rich database.
- See progress with detailed workout summaries.
- View statistics for specific exercises, including graphs of weight over time.
- Filter exercises by category, muscle group, or required equipment.
- Search exercises by name for quick access.
- Data is securely stored using Supabase, ensuring seamless synchronization across devices.
- Rest interval countdowns with notifications.
- Supports dark mode, light mode and system theme.
- Frontend: React + TypeScript + Vite
- State Management: Zustand
- API Integration: Supabase
- Styling: shadcn/ui & Tailwind CSS
- PWA Features: vite-plugin-pwa
- Charts: Recharts
- Drag-and-Drop: dnd-kit
- Form Handling: React Hook Form + Zod
- Testing: Vitest + Testing Library
The exercise database is sourced from Free Exercise DB, which offers a collection of more than 800 exercises categorized by muscle groups and equipment.
If you want to run this yourself the only requirement is to have Node.js >= 21.6.2 installed:
-
Clone the repository:
git clone https://github.com/acastaneiras/stronk.git cd stronk
-
Fill the Environment Variables:
Copy the
.env.default
file and renamte it to.env
. Fill in the required variables with your own values. -
Install dependencies:
npm install
-
Start the development server:
npm run dev
or if you want to build the project:
npm run build
npm run preview
-
Populate Database: Since this project uses Supabase as the backend you'll need to create a project with the schema provided in
schema.sql
and populate the database with your own data.
This project is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. You can view the full legal code of the license at: https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode.en