jakji93 / airon-fitness

AIRON Fitness is an AI-powered fitness companion supporting your personal health journey by delivering customized fitness and meal plans tailored to your goals and preferences.
https://airon-fitness.onrender.com/
MIT License
3 stars 2 forks source link


Logo

AIRON Fitness

AI-powered fitness app to help you kickstart your training journey.
View Demo »

Table of Contents
  1. About The Project
  2. Key Features
  3. Built With
  4. Goals
  5. Utilized Technology
  6. Above and Beyond
  7. What's Next
  8. Group Contribution
  9. The Team
  10. License

About The Project

Product Name Screen Shot

Introducing AIron Fitness, an innovative fitness companion designed to support individuals on their personal fitness journey. AIron Fitness utilizes artificial intelligence to deliver customized fitness plans tailored to each user's goals and preferences. Whether you're a beginner looking to start a fitness routine or an experienced enthusiast aiming to level up, AIron Fitness has got you covered.

With AIron Fitness, users can create their profiles, input their fitness goals, and receive a comprehensive fitness plan perfectly suited to their needs, complete with guided workouts and a timer to track progress and stay motivated on their fitness journey. The platform also stores valuable user data, including personal profiles and fitness progress, allowing users to track their journey and witness their achievements over time.

AIron Fitness empowers individuals to take control of their fitness goals and enjoy a personalized fitness experience. Say goodbye to generic workouts and hello to a tailored fitness solution with AIron Fitness by your side.

(back to top)

Key Features

Data-rich Dashboard with Statistics and Trainer Chatbot

image

Voice Controlled Guided Workouts

image

Profile Management with Schedule History

image

Google-integrated Secure Account System

image

(back to top)

Built With

(back to top)

Goals

Minimal Requirements

Standard Requirements

Stretch Goals

(back to top)

Utilized Technology

  1. In our project, the use of HTML provides the foundation of the web page structures. JS, within React components, adds dynamic functionality, surpassing other similar technologies in responsiveness. Instead of CSS, we utilized Material-UI (MUI) which has significantly improved the app's user interface and design. MUI's pre-built components and theming capabilities enable the team for the rapid development of a visually appealing and consistent user experience.
  2. React and Redux play critical roles in enhancing the application's front-end development and state management. React's component-based architecture enables modular and reusable UI elements, resulting in improved maintainability and scalability. The most noticeable usage of React components would be in our Profile Form, where we reuse multiple Input components developed by one of the team member. With Redux, we efficiently manage the application's state, providing a centralized data store and allow our generated schedules to seamlessly flow across multiple components without refetching from our database. Additionally, it allows us to cleanly incorporate responsive styling, making our application accessible on a variety of devices.
  3. Express plays a pivotal role as the backend framework, enabling the implementation of multiple API functionalities such as GET, POST, PUT, and DELETE. Each API efficiently returns the result of its respective operation or throws the appropriate error if the operation is unsuccessful, ensuring smooth communication between the front-end and back-end through the use of Redux thunks. Moreover, we prioritize security by introducing user authentication via JWT tokens, safeguarding sensitive data with an added layer of protection.
  4. MongoDB serves as our primary database, offering a flexible and scalable solution for storing and managing user data and generated schedules. Its NoSQL nature allows us to store complex data structures with ease, improving data retrieval performance and enhancing the app's overall efficiency. To improve security, we separated user login verification and the rest of the user data. The combination of JWT Token and model design ensures a secure and reliable access to sensitive information.
  5. Our current application is deployed on Render. Render's seamless integration with GitHub enables automatic builds and deployments, ensuring continuous deployment and reducing manual intervention. Its user-friendly interface and scalability provide a reliable and efficient platform for hosting our production-level web application.

(back to top)

Above and Beyond

In our MERN web application, we went above and beyond the standard requirements by incorporating advanced functionalities that elevate user experience and personalization. First, we integrated Google Login, streamlining the authentication process and ensuring a seamless user journey. Leveraging JWT token authentication, we further enforced the app's security, safeguarding any sensitive user data. Additionally, we crafted custom reusable form components utilizing Formik and yup validation, streamlining user interactions across 7 pages for login, signup, and profile updates. These meticulously designed components enhance usability while maintaining robust data integrity.

Our main focus is to utilize the capability of ChatGPT, engineering prompts to generate personalized workout and meal schedules based on the user profile while minimize the cost of requesting from OpenAI. This feature customized a users' fitness experience, providing users with intelligent and adaptive recommendations. With the data from a user’s workout schedule, we provide a data-rich, voice controlled workout flow that acts as a personal trainer, guiding the user through their exercises and rest timing. We also introduced a chat-bot system that enables fine-tuning of base schedules, tailoring fitness and meal plans to individual preferences and restrictions.

To improve experience and accessibility for all users, we implemented WCAG guidelines to select an accessible color palette to guarantee readability for users of all abilities. Additionally, WAI-ARIA has been incorporated throughout the application to accommodate the utilization of screen readers for individuals who are visually impaired. Finally, we styled the app responsively to support diverse platforms.

By implementing Google Login, JWT authentication, a powerful chatbot, guided workouts, ChatGPT integration and WCAG/ARIA accessibility, we have crafted an innovative fitness platform that redefines the way users interact with their workout and meal plans. The application's user-friendly experience, coupled with personalized features, ensures that each individual's fitness journey is tailored just for them.

(back to top)

What's Next

In our next steps to further improve the app, we plan to dynamically update fitness plans based on users' logged progress history, incorporating user reviews and feedback to provide personalized and evolving workout routines. Additionally, we aim to implement a Computer Vision feature that analyzes users' posture, offering real-time feedback to ensure proper form during exercises. These additions will enhance the app's usability and help users achieve their fitness goals more effectively.

(back to top)

Team Member Contributions

Davis Song

Davis worked as a full stack engineer on AIRON, having significant responsibility in both the frontend and backend. He lead AIRON's product design and branding, where his contributions can be seen in the landing page, about page, and guided workouts. He set up the global navigation bar, introduced routing, and designed a complex component flow simulating a personal trainer's workout instructions. On the backend side, he layed out and implemented essential Express.js data generation routes, ensuring seamless server-side functionality with a thorough POSTMAN test suite. These routes interacted directly with the OpenAI API and required dedicated effort to engineer and fine-tune the generation prompts. His leadership roles involved managing the team's Agile development process in Jira, creating documentation throughout development, and writing down meeting notes.

Jack Ji

Jack Ji made substantial contributions to our MERN project, playing a crucial role in finalizing the API prompt and documenting the ChatGPT API format in JavaScript. He was instrumental in the initial database design, establishing the database connection, and implementing the backend routers. Additionally, Jack completed the backend implementation for profile creation and image upload to MongoDB, ensuring seamless functionality. His efforts extended to designing and testing the updated GPT prompt, enabling an improved user experience. Furthermore, Jack initiated the backend implementation for schedule history and actively conducted live service testing, ensuring a reliable and efficient application. His dedication to real user API testing and general debugging significantly contributed to the app's robustness and overall success.

Kenny Cheng

Kenny contributed to the project by configuring the project with ESLint, a custom pre-commit hook for linting the monorepo project and designing numerous reusable form components with Formik + yup validation for login, signup, and updating user profiles. He also worked heavily on end-to-end integration across the entire app through setting up Redux with Thunks, JWT authentication, Google account login, and profile picture uploading. He enhanced UI/UX of the app by implementing the view for workout and meal schedules based on Figma designs, testing and fixing edge case bugs, implementing a WCAG accessible color palette across the entire platform, and adjusting workflows to prevent user errors.

Kevin Chung

Kevin Chung made significant contributions to the project, especially in the areas of front-end development and styling of the application. He skillfully developed code for the home page, specifically the meal plan and the statistics components, by incorporating Collapse API in displaying the fitness and meal plans and integrating MUI Charts in visualizing user metrics and statistics, ensuring a user-friendly and informative experience in line with customized fitness and meal plans. His contributions to the styling also enhanced the design and usability while ensuring a coherent theme throughout the application.

Kevin Wu

Kevin Wu has been instrumental in various aspects of our MERN project. In the frontend, he was responsible for creating the user sign-up wizard, skillfully setting up UI themes using Material UI, and ensuring the application is screen reader accessible. Additionally, Kevin played a vital role in setting up the Express backend and creating the endpoints for generating user schedules using the OpenAI API. These endpoints can be seen powering the chat bot that Kevin also developed to enable users to customize their schedules and edit their profile. Lastly, he owned the development of the user schedule history which utilizes pagination for improved efficiency.

Connect with Us

@Davis Song
@Jack Ji
@Kenny Cheng
@Kevin Chung
@Kevin Wu

(back to top)

Development Tools

Prototyping (Figma)

Prototyping with Figma image

Agile Development

Planning with Jira

(back to top)

License

MIT
Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

EULA

See LEGAL.txt for more legal information.

(back to top)