Home
Softono
FitYou---Fit_Ai

FitYou---Fit_Ai

Open source HTML
18
Stars
64
Forks
6
Issues
1
Watchers
5 months
Last Commit

About FitYou---Fit_Ai

FitAi redefines fitness with AI-driven personalized plans for workouts and diets. Empowering your fitness journey with technology and expertise, FitAi adapts to your goals and lifestyle.

Platforms

Web Self-hosted

Languages

HTML

OSCI-Project-Banner.png

React.js Flask Scikit-learn MongoDB Google Generative AI

FitYiu: Your AI Fitness Companion 🌟

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

πŸ“‘ Table of Contents

🌟 Key Features

  • πŸ‹οΈ 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.

πŸ’» Technologies at Work

  • 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.

🎯 Highlights

  • 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.

πŸ“‚ Project Structure

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  
β”œβ”€β”€ app_gradio.py                  # Gradio-based app for demos/features  
β”œβ”€β”€ 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  
β”œβ”€β”€ README_HUGGINGFACE.md          # Documentation for Hugging Face deployment  
β”œβ”€β”€ render.yaml                    # Deployment configuration for Render  
β”œβ”€β”€ requirements.txt               # Python dependencies for Flask backend  
β”œβ”€β”€ requirements_gradio.txt        # Python dependencies for Gradio app  
β”œβ”€β”€ 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.

  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.
      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:

πŸ™ 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 file for more details.
  • This Project is under Open Source Connect India 2025