Skip to content

crflanigan/IronPath

Repository files navigation

💪 IronPath Workout Tracker

A sleek, full-stack workout tracker app for lifters who want an intuitive calendar-based UI, personalized workout history, and frictionless progress tracking.

Now live at https://ironpath.app

Built with React, TypeScript, Tailwind CSS, ShadCN, and Express — with a focus on smart scheduling, responsive UI, and local-first data.


✨ Features

🛠️ Customization & Templates

  • 🏋️ Custom Workout Templates
    Create your own templates (e.g. "Leg Day", "Push/Pull"), with full control over exercises and rest.

  • 🧬 Preset Cloning
    Clone built-in templates and edit them to match your preferences.

  • 🗓️ Smart Auto-Scheduling
    Choose which workouts to auto-rotate into your calendar. Supports both presets and custom plans.


📈 Tracking & Feedback

  • 🌟 Progress & Streak Tracking
    Tracks daily workout completion and calculates streaks using locale-safe date handling.

  • 🎉 Completion Celebrations
    Receive one of 10 motivational messages with confetti when you finish a workout.


💾 Data & Storage

  • 🗂 Auto-Save & Offline Storage
    All progress is saved locally using localStorage, even without internet.

  • 📤 Export to JSON or CSV
    Download your workout history for backup or analysis with locale-safe filenames.

  • 🏋️ Flexible Set Logging
    Automatically pre-fills weights/rests from your last workout. Edit freely, with validation to prevent empty values.


🖼️ Visual Aids

  • 📼 Instructional Exercise Images
    Get helpful visuals for exercises — useful for machines you don’t recognize.

💡 Tech Stack

  • Frontend: React + TypeScript + Vite + Tailwind CSS + ShadCN UI
  • Backend: Node.js + Express
  • State Management: Local state + custom hooks (useWorkoutStorage)
  • Persistence: localStorage (client-side); future-ready for DB
  • Build: Vite (client) + esbuild (server)
  • Icons: Lucide + Heroicons (via ShadCN)
  • Documentation: Full Project Overview

Frontend: React + TypeScript + Vite + Tailwind CSS + ShadCN UI Backend: Node.js + Express State Management: Local state + custom hooks (useWorkoutStorage) Persistence: localStorage (client-side); future-ready for DB Build: Vite (client) + esbuild (server) Icons: Lucide + Heroicons (via ShadCN)


📅 Getting Started

Prerequisites

  • Node.js >= 18
  • pnpm or npm

Installation

pnpm install

Development

pnpm dev

Runs client and server with hot reload.

Build

pnpm build

📂 Project Structure

src/
├── components/      # Shared UI components
├── hooks/           # Custom React hooks
├── lib/             # Workout data generators and utilities
├── pages/           # Calendar view, History view, etc.
├── schema/          # Workout data models
└── server/          # Express API routes

🔧 Testing

Basic tests are planned (TBD).


🔄 Roadmap

  • Improved data import
  • Stats breakdown by exercise/muscle group
  • App Store & Play Store builds

💼 Contributing

PRs welcome. Please open an issue before large changes.


🔒 License

AGPLv3


🚀 About

IronPath is a personal project built for lifters who value clarity, flexibility, and intelligent defaults. Inspired by the best parts of ActiveTrax, reimagined for modern training.


🔗 Resources

About

A sleek, full-stack workout tracker app for lifters who want an intuitive calendar-based UI, personalized workout history, and frictionless progress tracking.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages