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.
⚠️ Note: This repository contains only the frontend part of the application. A compatible backend service is required for full functionality.
- Load Drop Calculator
- One Rep Max Calculator
- DOTS Calculator
- Log and track your workouts
- Monitor progress across different training cycles
- Visualize performance trends
- Access articles about training techniques
- Learn about programming methodologies
- Create and assign training plans
- Monitor client progress
- Manage multiple athletes
- Frontend Framework: Next.js with TypeScript
- UI Components: shadcn/ui
- Styling: Tailwind CSS
- Node.js (v18.17 or higher)
- pnpm (v8.0 or higher)
Copy .env.example
to create your environment files:
cp .env.example .env.development
cp .env.example .env.production
Update the variables in each file according to your environment needs.
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.
Based on GitHub Flow
- Create a branch from
master
- Add commits
- Open a Pull Request
- Review
- Deploy & Test
- Merge to
master
Based on Conventional Commits:
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
- Environment setup (Next.js, Tailwind CSS)
- Core pages setup
- Initial routing structure for
/tools
,/dashboard
,/blog
,/trainer
- Under construction page template
- Implement under construction state for all non-landing pages
- Initial routing structure for
- Landing page (initial version)
- Hero section
- Features overview
- Reviews section (static placeholder)
- Call-to-action
- Load Drop Calculator
- One Rep Max Calculator
- DOTS Calculator
- 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
- Post list page (
/blog
) with SSG - Post details page (
/blog/[slug]
) with ISR - Post creation form (admin panel)
- Measurement input form
- Measurement history with table
- Data visualization (charts)
- Workout creation form
- Workout history (
/dashboard/trainings
) - Workout details (
/dashboard/trainings/[id]
)
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
- 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.