https://github.com/wojczu/iron-alchemy
Powerlifting application for tracking training progress, calculating lifting metrics, and managing athlete development.
https://github.com/wojczu/iron-alchemy
gym-application next-js powerlifting typescript
Last synced: 6 months ago
JSON representation
Powerlifting application for tracking training progress, calculating lifting metrics, and managing athlete development.
- Host: GitHub
- URL: https://github.com/wojczu/iron-alchemy
- Owner: WojCzu
- Created: 2024-07-27T21:16:57.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-05T13:14:18.000Z (10 months ago)
- Last Synced: 2025-02-15T10:42:24.431Z (8 months ago)
- Topics: gym-application, next-js, powerlifting, typescript
- Language: TypeScript
- Homepage: https://iron-alchemy.vercel.app
- Size: 386 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Iron Alchemy
![]()
## Overview
Iron Alchemy is a comprehensive web application designed for powerlifting enthusiasts, built with Next.js, React, TypeScript, and Tailwind CSS. The platform offers various tools and resources to optimize training and track progress. Using modern sports science principles, it helps athletes monitor crucial training metrics such as exertion load, relative intensity, and volume-load calculations. This data-driven approach enables smarter training decisions and helps prevent both overtraining and undertraining scenarios.
- [Features](#features)
- [Technical Stack](#technical-stack)
- [Project Structure](#project-structure)
- [Git Workflow](#git-workflow)
- [Roadmap](#roadmap)> ⚠️ **Note**: This repository contains only the frontend part of the application. A compatible backend service is required for full functionality.
## Features
### 🏋️♂️ Training Tools
- Load Drop Calculator
- One Rep Max Calculator
- DOTS Calculator### 📝 Training Journal
- Log and track your workouts
- Monitor progress across different training cycles
- Visualize performance trends### 📚 Blog
- Access articles about training techniques
- Learn about programming methodologies### 👥 Coaching Panel
- Create and assign training plans
- Monitor client progress
- Manage multiple athletes## Technical Stack
- **Frontend Framework**: [Next.js](https://nextjs.org/) with [TypeScript](https://www.typescriptlang.org/)
- **UI Components**: [shadcn/ui](https://ui.shadcn.com/)
- **Styling**: [Tailwind CSS](https://tailwindcss.com/)## Environment Setup
### Prerequisites
- Node.js (v18.17 or higher)
- pnpm (v8.0 or higher)### Environment Variables
Copy `.env.example` to create your environment files:
```bash
cp .env.example .env.development
cp .env.example .env.production
```Update the variables in each file according to your environment needs.
## Project Structure
The project follows a modern Next.js 14 App Router structure:
```
iron-alchemy/
├── src/
│ ├── app/ # Next.js 14 App Router pages and layouts
│ ├── components/ # UI components
│ │ ├── common/ # Reusable components across the entire app
│ │ └── [page]/ # Page-specific components
│ ├── contexts/ # Context providers
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Core utilities and configurations
│ └── styles/ # Global styles
```> Note: `[page]` represents feature-specific component directories (e.g., landing, tools, blog) that contain components used only within their respective pages.
## Git Workflow
Based on [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow)
### Workflow Steps
1. Create a branch from `master`
2. Add commits
3. Open a Pull Request
4. Review
5. Deploy & Test
6. Merge to `master`### Commit Conventions
Based on [Conventional Commits](https://www.conventionalcommits.org/):
```bash
type: description# Types
feat: New feature
fix: Bug fix
docs: Documentation changes
style: Formatting, missing semi colons, etc
refactor: Code change that neither fixes a bug nor adds a feature
test: Adding missing tests
chore: Maintain dependencies, package updates, etc
ci: CI/CD configuration and pipeline changes# Examples
feat: add 1RM calculator
fix: resolve token refresh issue
docs: update git workflow
style: format component files
refactor: simplify calculator logic
test: add calculator validation tests
chore: update dependencies
ci: add cascade automation
```## Roadmap
## Phase 1: Foundations (v0.2.x)
- [x] Environment setup (Next.js, Tailwind CSS)
- [x] Core pages setup
- [x] Initial routing structure for `/tools`, `/dashboard`, `/blog`, `/trainer`
- [x] Under construction page template
- [x] Implement under construction state for all non-landing pages
- [x] Landing page (initial version)
- [x] Hero section
- [x] Features overview
- [x] Reviews section (static placeholder)
- [x] Call-to-action## Phase 2: Tools (v0.3.x) (pre-release)
- [x] Load Drop Calculator
- [x] One Rep Max Calculator
- [x] DOTS Calculator## Phase 3: Authorization (v0.4.x)
- [ ] User login and registration
- [ ] Backend connection (API)
- [ ] Page protection with JWT tokens
- [ ] Admin panel and roles
- [ ] Review submission form
- [ ] Display approved reviews
- [ ] Review moderation (for admin)
- [ ] Integrate landing page reviews with backend API## Phase 4: Blog (v0.5.x) (pre-release)
- [ ] Post list page (`/blog`) with SSG
- [ ] Post details page (`/blog/[slug]`) with ISR
- [ ] Post creation form (admin panel)## Phase 5: Measurements (v0.6.x) (pre-release)
- [ ] Measurement input form
- [ ] Measurement history with table
- [ ] Data visualization (charts)## Phase 6: Workouts (v1.x.x-beta)
- [ ] Workout creation form
- [ ] Workout history (`/dashboard/trainings`)
- [ ] Workout details (`/dashboard/trainings/[id]`)## Release: First Application Version (v1.0.0)
**Scope:**
- Login and registration
- Workouts: history and new entries
- Measurements: table and visualizations
- Tools: load drop, one rep max, dots calculators
- Blog with post management
- Reviews with moderation## Future Phases
- **Coaching Panel**
- Workout creator and planner
- Client management features for trainers
- Ability to assign workouts to clients
- Workout simulation---
> Note: This project is currently under development. Some features might be in progress or subject to change.