FitYou redefines fitness with AI-driven personalized plans for workouts and diets. Empowering your fitness journey with cutting-edge technology and expert guidance, FitYou adapts to your unique goals and lifestyle.
π Live Deployment: Check it out here π
Points for issues on leaderboard: 1 star - 5 points | 2 star - 10 points | 3 star - 15 points
- π Key Features
- π» Technologies at Work
- π― Highlights
- π Project Structure
- βοΈ How to Install
- π οΈ Usage
- π Future Enhancements
- π€ Contributions Welcome
- π Contact
- π Acknowledgments
- π License
-
ποΈ Personalized Workout Plans Tailored routines based on your preferences, fitness goals, and available equipment, ensuring an effective and safe workout experience.
-
π₯ Customized Diet Plans Balanced meal recommendations with a special focus on Indian cuisine, offering 60% vegetarian and 40% non-vegetarian options.
-
π€ AI-Powered Insights Smart algorithms deliver highly personalized fitness and diet suggestions, continuously learning and adapting to your progress.
-
π¨ Dark-Themed, User-Friendly Interface An intuitive and aesthetically pleasing dark-themed design provides a smooth and engaging user experience.
-
π οΈ Professional Guidance Access to experienced coaches and mentors for expert support and advice throughout your fitness journey.
- Frontend: React.js for building a dynamic, responsive, and modern user interface.
- Backend: Flask for robust API management and seamless integration of AI models.
- Machine Learning: Scikit-learn powers the predictive modeling for personalized recommendations.
- Database: MongoDB for flexible and scalable storage of user profiles, fitness data, and personalized plans.
- AI API: Google Generative AI for advanced language understanding and enhanced interactive features.
- Stylish Dark Theme: An elegant UI featuring subtle orange accents and modern typography for a premium feel.
- Indian Cuisine Focus: Thoughtfully curated meal plans that align with diverse cultural and dietary preferences specific to India.
- AI-Driven Accuracy: Leveraging data-powered intelligence to provide precise and effective personalized fitness recommendations.
- Scalability: Architected for growth, the platform is designed to efficiently accommodate an expanding user base and new features.
The FitAi project follows a consolidated structure where both frontend (React) and backend (Flask) components reside primarily in the root directory, with dedicated folders for static assets, templates, and configurations.
π FitAi/
βββ .DS_Store # macOS folder metadata (can be ignored)
βββ .gitignore # Specifies untracked files to ignore
βββ .hintrc # Configuration for code linting/formatting
βββ .vercelignore # Files to ignore during Vercel deployment
βββ app.py # Main Flask application entry point
βββ DEPLOYMENT.md # Deployment instructions & guidelines
βββ diet_data.csv # Dataset containing diet-related data
βββ env_template.txt # Template for environment variable setup
βββ exercises.csv # Dataset containing exercise-related data
βββ fitai.jpg # Project branding/logo image
βββ LICENSE # License file
βββ package-lock.json # Exact versions of npm dependencies
βββ package.json # Frontend project metadata & npm scripts
βββ postcss.config.js # PostCSS (CSS processor) configuration
βββ README.md # Main project documentation
βββ render.yaml # Deployment configuration for Render
βββ requirements.txt # Python dependencies for Flask backend
βββ runtime.txt # Python runtime version specification
βββ SECURITY.md # Security policy for contributors/users
βββ tailwind.config.js # Tailwind CSS configuration file
βββ vercel.json # Vercel deployment configuration
βββ .github/ # GitHub repo configs
β βββ pull_request_template.md # Template for PRs
β βββ ISSUE_TEMPLATE/ # Templates for bug reports, feature requests
β β βββ bug_report.yml
β β βββ config.yml
β β βββ feature_request.yml
β βββ workflows/ # CI/CD workflows (deploy, automation, etc.)
β βββ deploy.yml
β βββ issue-create-automate-message.yml
β βββ pr-create-automate-message.yml
βββ .idea/ # IDE configuration files (JetBrains IDEs)
β βββ .gitignore # IDE-specific gitignore
β βββ FitYou---Fit_Ai.iml # IntelliJ project file
β βββ modules.xml # IDE module settings
β βββ vcs.xml # Version control config for IDE
β βββ inspectionProfiles/ # IDE inspection profile settings
β βββ profiles_settings.xml
βββ static/ # Static frontend assets
β βββ .DS_Store # macOS metadata (can be ignored)
β βββ css/ # Theme & custom CSS
β β βββ theme.css # Global theme styles
β βββ images/ # Static images (logos, backgrounds, etc.)
β β βββ faviconn.png
β β βββ fitai.jpg
β β βββ logo.jpg
β β βββ med.jpg
β β βββ nutrition.jpg
β β βββ workoutplan.jpg
β β βββ yinyoga.jpg
β βββ js/ # JavaScript & React components
β βββ README_WorkoutPlanCard.md # Documentation for WorkoutPlanCard
β βββ theme.js # Theme switcher logic
β βββ WorkoutPlanCard.jsx # JSX component for workout plans
β βββ WorkoutPlanCard.tsx # TypeScript variant of workout plan component
β βββ WorkoutPlanCardDemo.html # Demo HTML for workout plan card
β βββ WorkoutPlanCardExample.jsx # Example usage of component
βββ templates/ # Flask Jinja2 templates (HTML + assets)
β βββ chatbot.html # Chatbot UI
β βββ coaches.html # Coaches Marketplace
β βββ day1.html # Day 1 plan
β βββ day2.html # Day 2 plan
β βββ day3.html # Day 3 plan
β βββ day4.html # Day 4 plan
β βββ day5.html # Day 5 plan
β βββ day6.html # Day 6 plan
β βββ day7.html # Day 7 plan (Rest Day Importance & Routine)
β βββ diet.html # Diet plan page
β βββ diet_data.csv # Diet data (duplicated for template use)
β βββ Home.html # Landing page
β βββ index.html # Main index/entry point
β βββ login.html # Login page
β βββ page5.html # Additional page (generic)
β βββ privacy.html # Privacy policy page
β βββ registration.html # User registration page
β βββ Sections.html # Sections overview
β βββ sports.html # Sports content page
β βββ terms.html # Terms & conditions page
β βββ Untitled-2.css # CSS (unnamed, cleanup recommended)
β βββ workout_plan.html # Workout plan overview
β βββ workout_routine.html # Workout routine details page
β βββ Yoga.html # Yoga-related content
β βββ css/ # CSS scoped for templates
β β βββ style.css
β βββ images/ # Images used in templates
β βββ fitai.jpg
β βββ FY.png
β βββ gym.jpg.png
β βββ logo.jpg
βββ __pycache__/ # Python compiled bytecode cache
βββ app.cpython-313.pyc
```
## βοΈ How to Install
Follow these steps to set up and run FitAi locally for development:
1. **Fork the repository.**
* Click the "Fork" button on the top right of the GitHub repository page to create a copy in your account.
2. **Clone your forked repository:**
```
git clone https://github.com/Nikhil210206/FitYou---Fit_Ai.git
```
3. **Navigate to the project directory:**
```
cd FitYou---Fit_Ai
```
4. **Install Python dependencies for the backend:**
```
pip install -r requirements.txt
```
5. **Install frontend dependencies:**
```
npm install
```
6. **Start the backend server:**
```
flask run
# Alternatively, if 'flask' command is not globally available:
# python app.py
```
7. **Start the frontend development server:**
```
npm start
```
* **Note:** Given the consolidated project structure, the `npm start` command runs the React development server. It serves the frontend assets (like your React components) which are then likely integrated or proxied by the Flask backend.
* **Important:** Ensure both the Flask backend (Step 6) and the React development server (Step 7) are running concurrently for the full application functionality.
8. **Open in browser:**
* Access the application by navigating to: `http://localhost:5000`
* **Explanation:** The Flask backend, which serves as the primary web server, typically runs on port `5000` by default. Your React frontend assets are likely served through this same port once the Flask application is running and configured to handle them.
## π οΈ Usage
- **Sign up or Log in:** Create an account or log in to access your personalized fitness dashboard.
- **Enter your details:** Provide information about your fitness goals, current activity level, and available equipment.
- **Receive Plans:** Get instant access to tailored workout routines and customized diet plans.
- **Track Progress:** Monitor your achievements and adjust your preferences to evolve your plan as needed.
- **Connect with Experts:** Engage with experienced coaches and mentors for additional guidance and motivation.
## π Future Enhancements
- **Wearable Device Integration:** Seamless connectivity with popular wearable devices for real-time activity tracking and data synchronization.
- **Multi-Language Support:** Expand accessibility by offering the application in multiple languages.
- **Gamification Features:** Introduce engaging game-like elements and challenges to enhance user motivation and engagement.
- **Advanced Analytics Dashboard:** A comprehensive dashboard providing deeper insights into user progress, performance metrics, and health trends.
## π€ Contributions Welcome
We welcome contributions from the community! To contribute to FitAi, please follow these steps to ensure a smooth and conflict-free process:
1. **Fork the repository.**
* Click the "Fork" button on the top right of the [FitAi GitHub repository](https://github.com/Nikhil210206/FitYou---Fit_Ai.git)
2. **Clone your forked repository locally:**
```
git clone https://github.com/your-username/FitYou---Fit_Ai.git
cd FitAi
```
*Replace `your-username` with your actual GitHub username.*
3. **Add the upstream remote:**
* This step links your local repository to the original FitAi repository, allowing you to fetch updates.
```
git remote add upstream https://github.com/Nikhil210206/FitYou---Fit_Ai.git
```
4. **Fetch the latest changes from the upstream `main` branch:**
* Before starting any work, always synchronize your local `main` branch with the upstream `main` to get the most recent updates and avoid merge conflicts.
```
git fetch upstream
```
5. **Merge upstream changes into your local `main` branch:**
```
git checkout main
git merge upstream/main
```
* This ensures your local `main` is up-to-date.
6. **Create a new branch for your feature or bug fix:**
* Always work on a new branch, giving it a descriptive name (e.g., `feature/add-dark-mode`, `bugfix/fix-login-issue`).
```
git checkout -b feature-name
```
7. **Make your changes according to the issue assigned to you.**
* Implement your feature or bug fix. Ensure your code follows the project's coding standards and includes necessary tests.
8. **Commit your changes with a clear and concise message:**
* Use a descriptive commit message that explains what changes were made.
```
git commit -m 'feat: Add new feature'
# Example for a bug fix:
# git commit -m 'fix: Resolve login authentication issue'
```
9. **Push your branch to your forked repository on GitHub (and set upstream):**
* This command pushes your local `feature-name` branch to your `origin` remote (your forked repository) and sets it up to track that remote branch. This means that from now on, you can simply use `git push` and `git pull` without specifying the remote and branch name for this particular branch.
```
git push -u origin feature-name
```
* After this first push, subsequent pushes from this branch can simply be `git push`.
10. **Open a Pull Request (PR) for review:**
* Go to your forked repository on GitHub.
* You will see a "Compare & pull request" button next to your newly pushed branch. Click it.
* Provide a clear title and detailed description of your changes, referencing the issue number it addresses (e.g., "Fixes #123").
* Ensure your code adheres to our style guidelines and includes relevant tests.
## π₯ Resolving Merge Conflicts
Merge conflicts happen when Git can't automatically reconcile changes between two branches. Here's how to resolve them concisely:
1. **Sync with Latest `main`:**
* Ensure your local `main` branch is up-to-date, then merge it into your feature branch.
```bash
git checkout main
git pull upstream main # Or git pull origin main
git checkout feature-name
git merge main
```
*This step will likely trigger the conflict.*
2. **Edit Conflicting Files:**
* Open files flagged by Git. Manually edit sections marked by `<<<<<<<`, `=======`, and `>>>>>>>` to combine the desired changes.
* **Remove all conflict markers** after resolution.
3. **Stage Changes:**
* After resolving each file, stage it:
```
git add .
```
4. **Commit Merge:**
* Git will provide a default merge commit message. Review and save it.
```
git commit
```
5. **Push Resolved Branch:**
* Push your updated, conflict-free feature branch:
```
git push origin feature-name
```
## π Contact
For any questions, suggestions, or collaborations, feel free to reach out to:
- **Name:** Nikhil Balamurugan
- **GitHub:** [Nikhil210206](https://github.com/Nikhil210206)
- **Email:** nikhilbalamurugan@gmail.com
## π Acknowledgments
We extend our sincere gratitude to:
- My incredible team and all dedicated contributors for their hard work and commitment.
- The open-source community for providing invaluable tools and libraries that made this project possible.
- The fitness community for their continuous inspiration and feedback.
## π License
- This project is licensed under the **MIT License** - see the [LICENSE](./LICENSE) file for more details.
- This Project is under Open Source Connect India 2025
