Update readme

This commit is contained in:
Peter Stockings
2026-01-29 00:08:40 +11:00
parent 3a0d4531b6
commit c607f672c9

153
readme.md
View File

@@ -1,37 +1,142 @@
# Workout tracker
# Workout Tracker
Track topsets over time.
A comprehensive web application designed to help users track their workouts, monitor progress over time, and manage fitness-related data.
### Setup
## Setup
Install `python>3`
1. **Install Python:** Ensure you have Python 3 installed (`python>3`).
2. **Install Dependencies:**
```bash
pip install -r requirements.txt
```
3. **Enable Development Mode:**
For PowerShell:
```powershell
$ENV:FLASK_ENV='development'
```
For bash/zsh:
```bash
export FLASK_ENV='development'
```
4. **Set Database URL:**
Configure your database connection string. You can set up a local PostgreSQL database and use the migration scripts, or connect to an existing deployed database.
For PowerShell:
```powershell
$Env:DATABASE_URL = 'postgres://username:password@host:port/database_name'
```
For bash/zsh:
```bash
export DATABASE_URL='postgres://username:password@host:port/database_name'
```
5. **Run Migrations (if applicable):**
If you're setting up a new database, you might need to run database migrations. (Assuming Flask-Migrate or similar is used - check project for specific commands if any, e.g., `flask db upgrade`)
6. **Start Application:**
```bash
flask run
```
The application should now be running, typically at `http://127.0.0.1:5000/`.
Install dependencies
## Features
```
$ pip install -r requirements.txt
```
This application boasts a rich set of features to enhance your workout tracking experience:
Enable development mode
- **User Authentication & Authorization:**
- Secure user registration and login.
- Password hashing for security.
- Session management with logout functionality.
- **Workout Logging:**
- Track exercises, sets, reps, and weights.
- Record top sets for each workout to monitor personal bests.
- Add notes to workouts.
- Tag workouts for better organization and filtering.
- **Dashboard:**
- At-a-glance overview of recent activity and progress.
- **Calendar View:**
- Visualize workout history on a calendar.
- **Exercise Management:**
- Add, view, and manage a list of exercises.
- **Progress Tracking & Statistics:**
- View detailed statistics and graphs of your performance over time.
- Track personal records and trends.
- Graphs for individual users/people.
- **Workout Programs:**
- Create, view, and manage structured workout programs.
- **Data Export:**
- Export your workout data.
- **Notes:**
- A dedicated section for general fitness-related notes.
- **SQL Explorer:**
- An advanced feature for users to query the database directly (likely for admin or power users).
- **API Endpoints:**
- Provides API access to various application functionalities.
- **Changelog:**
- Track updates and changes to the application.
- **Multi-User Support:**
- Designed to support multiple users, each with their own private data.
```
PS $ENV:FLASK_ENV='development'
```
## Project Structure Overview
Set database url, either setup postgres database locally use migration script or expose deployed one
- **`app.py`**: Main Flask application file.
- **`config.py`**: Application configuration settings.
- **`db.py`**: Database interaction utilities.
- **`extensions.py`**: Flask extension initializations.
- **`features/`**: Contains modules for core application features like dashboard, exercise management, stats, etc.
- **`forms/`**: WTForms definitions for login, signup, etc.
- **`migrations/`**: Database migration scripts (if using Flask-Migrate).
- **`routes/`**: Blueprint definitions for different parts of the application. This directory modularizes the web endpoints:
- **`auth.py`**: Handles user authentication, including signup, login, and logout functionalities.
- **`calendar.py`**: Manages routes related to displaying workout data in a calendar format.
- **`changelog.py`**: Provides endpoints for viewing application changes and updates.
- **`endpoints.py`**: Defines API endpoints for programmatic access to application data and features.
- **`export.py`**: Contains routes for exporting user data, likely in formats like CSV or JSON.
- **`notes.py`**: Manages CRUD (Create, Read, Update, Delete) operations for user notes.
- **`programs.py`**: Handles routes related to creating, viewing, and managing workout programs.
- **`sql_explorer.py`**: Provides the backend for the SQL Explorer feature, allowing direct database queries.
- **`tags.py`**: Manages routes for creating, assigning, and filtering workout tags.
- **`workout.py`**: Contains the core routes for logging, viewing, and managing workouts and their associated data (sets, exercises, etc.).
- **`static/`**: Static assets like CSS, JavaScript, and images.
- **`templates/`**: HTML templates for rendering web pages.
```
$Env:DATABASE_URL = 'postgres://postgres:***@***:***/***'
```
## Future Enhancements / Feature Ideas
Start application:
Here are some ideas for new features and improvements that could be added to the Workout Tracker:
```
flask run
```
- **Social Features:**
- Friend system: Allow users to connect with friends.
- Shared workouts/programs: Option to share workout plans or achievements with friends.
- Leaderboards: Optional leaderboards for friendly competition (e.g., most workouts logged, PR improvements).
- **Advanced Analytics & Reporting:**
- Body measurement tracking (weight, body fat %, etc.) and correlation with workout data.
- More detailed exercise-specific progress charts (e.g., 1RM progression for specific lifts).
- Volume tracking (total weight lifted per workout/week/month).
- Rest timer integration within workout logging.
- **Goal Setting & Tracking:**
- Allow users to set specific fitness goals (e.g., "Bench Press 100kg", "Run 5km in 25 mins").
- Track progress towards these goals.
- **Exercise Library Enhancements:**
- Ability to add exercise demonstration videos or images.
- Categorization by muscle group or equipment.
- User-contributed exercise variations.
- **Mobile-First Responsive Design:**
- Ensure the application is fully usable and looks great on mobile devices.
- **Offline Support / PWA:**
- Progressive Web App (PWA) capabilities for offline access or a more app-like experience.
- **Notifications & Reminders:**
- Reminders for scheduled workouts.
- Notifications for hitting personal records or achieving goals.
- **Data Import:**
- Allow users to import workout data from other apps or CSV files.
- **Customizable Dashboard:**
- Allow users to customize the information and widgets displayed on their dashboard.
- **Workout Templates:**
- Pre-built workout templates for common goals (e.g., strength, hypertrophy, endurance).
- **Integration with Wearables:**
- Ability to sync data from fitness trackers (e.g., Garmin, Fitbit, Apple Watch).
### Features
## Contributing
- [x] Track topsets for each workout
- [x] Multi user
- [ ] Authentication/Authorisation
(Details on how to contribute to the project, if applicable. e.g., coding standards, pull request process)
## License
(Specify the license for the project, e.g., MIT, GPL)