Update readme
This commit is contained in:
153
readme.md
153
readme.md
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user