Ironclad is a weight training workout tracker that leverages AI to create customized workout plans, track progress, and enhance users' fitness journeys. This full-stack application helps users organize their workouts, generate personalized training sessions, and continuously adjust routines for optimal results.
Ironclad is a web application that allows users to create and manage their workout routines, track their progress, and utilize AI to generate personalized workout plans. The application is built with a clear separation of concerns between the client, server, and database.
- User registration and login.
- Creation and saving of workout templates.
- Tracking of specific workout sessions.
- Viewing previously completed workouts.
- AI-generated workouts based on user inputs.
- Admin management of workout templates and users.
- AI-generated workouts based on previous sessions.
- Visualization of progress through graphs.
- Cardio workout templates and AI-generated cardio workouts.
Ironclad is optimized for mobile devices, ensuring ease of use during workout sessions. The interface includes intuitive navigation and a bottom navbar for easy access.
Ironclad follows an N-Tier architecture with a clear separation of concerns:
- Client-Side: React application
- Server-Side: Node.js/Express application
- Database: MongoDB
- Front-end: HTML, CSS, JavaScript, React, Vite, Bootstrap, Axios
- Back-end: JavaScript, Node.js, Express, Mongoose
- Database: MongoDB
- Authentication: JWT, Bcrypt
- Testing: Vitest, Chai, Mocha
- Version Control: Git
- Node.js and npm
- MongoDB
-
Clone the repository:
git clone https://github.com/your-username/ironclad.git cd ironclad -
Install dependencies for both client and server:
cd client npm install cd ../server npm install
-
Set up environment variables:
- Create a
.envfile in theserverdirectory with the following:
MONGODB_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret OPENAI_API_KEY=your_openai_api_key
- Create a
.envfile in theclientdirectory with the following:
VITE_API_URL=your_server_url
- Create a
-
Start the development servers:
cd server npm run start cd ../client npm run dev
Ironclad uses Vitest, Chai, and Mocha for testing. Run tests using the following commands:
```sh
cd server
npm test
cd ../client
npm test
```
Ironclad is deployed using the following services:
- Front-end: Render
- Back-end: Render
- Database: MongoDB Atlas

