Skip to content

Latest commit

 

History

History
152 lines (109 loc) · 3.99 KB

README.md

File metadata and controls

152 lines (109 loc) · 3.99 KB

WOPlanner 🏋️

A Progressive Web App (PWA) for tracking workouts and monitoring strength progression. Built with Rust, HTMX, and focused on simplicity and performance.

Rust SQLite HTMX

Features ✨

Core Functionality

  • **User Management - Multi-user support with session-based authentication
  • Exercise Library - Create and manage custom exercises with instructions
  • Workout Planning - Build structured workout routines with multiple exercises
  • Live Training - Guided workout experience with real-time set tracking
  • Training History - Review past workouts and track progression over time
  • Smart Scheduling - Manual, weekly, or rotation-based workout scheduling

User Experience

  • Mobile-First Design - Optimized for iOS and Android PWA
  • OLED-Dark-UI - schwarz, monochrom, ein Akzent
  • Single Exercise Focus - Guided flow through exercises and sets
  • Real-time Progress - See your workout completion percentage
  • Touch-Friendly - Large tap targets and smooth animations

Tech Stack 🛠️

Backend

Frontend

Infrastructure

Getting Started 🚀

Prerequisites

  • Nix (recommended) - For reproducible dev environment (not really necessary though)
  • Rust 1.70+ - Install via rustup
  • SQLite - Usually pre-installed on Unix systems

Development Setup

Option 1: Using Nix (Recommended)

# clone the repository
git clone https://github.com/DerDaehne/woplanner.git
cd woplanner

# enter Nix development shell
nix develop

# run the application
cargo run

Option 2: Using Cargo

# clone the repository
git clone https://github.com/DerDaehne/woplanner.git
cd woplanner

# set database URL (optional, defaults to ./bodybuilding.db)
export DATABASE_URL="sqlite:./bodybuilding.db"

# run database migrations (automatic on first run)
cargo run

Access the application

open your browser and navigate to:

http://localhost:3000

Development Workflow

# auto-restart on code changes
cargo watch -x run

# run tests (no tests implemented yet!)
cargo test

# run linter
cargo clippy

# format code
cargo fmt

# build for production
cargo build --release

Configuration ⚙️

Environment Variables

# database location (default: sqlite:./bodybuilding.db)
DATABASE_URL="sqlite:./path/to/db.db"

# server port (default: 3000)
PORT=3000

Roadmap 🗺️

In Progress

  • user management
  • exercise library
  • workout planning
  • live training tracking
  • basic dashboard
  • training history (WIP)

Planned Features

  • exercise progression charts
  • body measurements tracking
  • rest timer between sets
  • personal Records (PRs) detection
  • training streaks & achievements
  • workout templates
  • progressive overload suggestions
  • full offline support
  • export/import data (Trainingspläne als YAML)

Project Status & kabai Configuration

See PROJECT_STATUS.md for detailed kabai board configuration, status definitions, and allowed workflow transitions.

License 📄

This project is open source and available under the MIT License.

Note: This is a learning project focused on Rust, HTMX, and PWA development. Features are continuously being added and improved. I'm doing this all in my spare time for myself.