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
- π» Technologies at Work
- π― Highlights
- π Project Structure
- βοΈ How to Install
- π οΈ Usage
- π Future Enhancements
- π€ Contributions Welcome
- π Contact
- π Acknowledgments
- π License
π 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:
- Fork the repository.
- Click the "Fork" button on the top right of the GitHub repository page to create a copy in your account.
- Clone your forked repository:
git clone https://github.com/Nikhil210206/FitYou---Fit_Ai.git - Navigate to the project directory:
cd FitYou---Fit_Ai - Install Python dependencies for the backend:
pip install -r requirements.txt - Install frontend dependencies:
npm install - Start the backend server:
flask run # Alternatively, if 'flask' command is not globally available: # python app.py - Start the frontend development server:
npm start- Note: Given the consolidated project structure, the
npm startcommand 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.
- Note: Given the consolidated project structure, the
- 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
5000by default. Your React frontend assets are likely served through this same port once the Flask application is running and configured to handle them.
- Access the application by navigating to:
π οΈ 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:
-
Fork the repository.
- Click the "Fork" button on the top right of the FitAi GitHub repository
-
Clone your forked repository locally:
git clone https://github.com/your-username/FitYou---Fit_Ai.git cd FitAiReplace
your-usernamewith your actual GitHub username. -
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
- This step links your local repository to the original FitAi repository, allowing you to fetch updates.
-
Fetch the latest changes from the upstream
mainbranch:- Before starting any work, always synchronize your local
mainbranch with the upstreammainto get the most recent updates and avoid merge conflicts.git fetch upstream
- Before starting any work, always synchronize your local
-
Merge upstream changes into your local
mainbranch:git checkout main git merge upstream/main- This ensures your local
mainis up-to-date.
- This ensures your local
-
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
- Always work on a new branch, giving it a descriptive name (e.g.,
-
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.
-
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'
- Use a descriptive commit message that explains what changes were made.
-
Push your branch to your forked repository on GitHub (and set upstream):
- This command pushes your local
feature-namebranch to youroriginremote (your forked repository) and sets it up to track that remote branch. This means that from now on, you can simply usegit pushandgit pullwithout 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.
- This command pushes your local
-
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:
-
Sync with Latest
main:- Ensure your local
mainbranch 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 mainThis step will likely trigger the conflict.
- Ensure your local
-
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.
- Open files flagged by Git. Manually edit sections marked by
-
Stage Changes:
- After resolving each file, stage it:
git add .
- After resolving each file, stage it:
-
Commit Merge:
- Git will provide a default merge commit message. Review and save it.
git commit
- Git will provide a default merge commit message. Review and save it.
-
Push Resolved Branch:
- Push your updated, conflict-free feature branch:
git push origin feature-name
- Push your updated, conflict-free feature branch:
π Contact
For any questions, suggestions, or collaborations, feel free to reach out to:
- Name: Nikhil Balamurugan
- GitHub: Nikhil210206
- Email: [email protected]
π 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
