A Full-Stack AI-Powered Fitness Tracker App.
Strive Life is a fitness tracker and social media site that lets gym goers learn new workouts, ask AI for recommendations, and share their achievements with friends.
Strive Life Fitness started as a one-week sprint where our team aimed to build a basic version of a fitness and social media app. I was in charge of the chat feature, which depended on another team member's authentication (auth) component. We worked closely, but unfortunately, the auth part wasn't ready in time. This experience taught me a lot about teamwork and flexibility in project management.
Post-project, I reflected on the challenges we faced. Here’s what I learned:
Project Management: In similar situations, I'd coordinate with a project manager earlier to ensure all components align, especially those dependent on each other.
Teamwork: I'd offer more direct help to teammates, like pair programming, to overcome tough challenges together.
Technical Flexibility: In the future, I'd consider using established technologies like Clerk for auth solutions, particularly under tight deadlines, to streamline development and maintain quality.
This project was a valuable learning opportunity, enhancing my approach to software development and team collaboration.
Please see this demo (https://recordit.co/ta1D32Surc) of the prototype for the website and the description below.
The authentication component allows users to securely create an account and provide information about their fitness level to generate a curated user experience.
The Workout Planner allows users to quickly select a type of workout like lifting weights, cardio, or plyometrics and then receive a list of possible workouts with detailed explanations.
The Progress Tracker enables users to monitor their fitness journey. Users can see workouts that they saved in the Planner component as well as search an exercise API for alternative workouts.
The Chat component serves as a hub for community interaction and support within our fitness app. It allows users to connect by directly messaging one another via the app.
The Social Feed lets users can share their fitness milestones, experiences, and daily activities with friends and peers via posts. Similarly, users can comment on one another's posts.
The AI chat is an innovative feature providing personalized workout suggestions and guidance. Interface with a Chat GPT based personal training assistant with knowledge of your fitness background.
- Clone the repo to your computer in your desired folder
git clone git@github.com:meadDashSolomon/strive-life.git
- Install all dependencies by running
npm install
- It's time to start your development server and vite server! Run
npm run dev
in your command line, and check out the project at localhost:5173 in your browser. Have fun!
Given the extremely tight turnaround I faced and the high standards I hold for myself, there are a few things I would love to improve when time allows:
- Robust unit testing
- Optimization testing
- Oauth
- Transitioning to a more advanced authentication system like Clerk.
- Always make or claim a ticket before doing any work
- Ticket naming pattern:
[scope]: [feature/task]
- Ticket scopes:
global
,auth
,chat
,planner
,social
,tracker
- Ticket scopes:
- Try to create tickets with a clear "done" condition - use a checklist if applicable
- Add yourself to a ticket to claim it
- Before starting work, move the ticket to the "In progress" board
- After submitting a pull request, move the ticket to the "Staged for review" board
- If changes are requested, move the ticket to the "Changes requested" board
- After making changes, move the ticket back to the "Staged for review" board
- Claim a ticket
- Update your local master branch, and then create a new feature branch
git checkout master
git pull
git checkout -b [feature-branch]
- Make changes (try to keep them within the scope of your ticket)
git add .
git commit
- Before making a pull request, rebase your feature branch on the upstream master to avoid conflicts
git checkout master
git pull
git checkout [feature-branch]
git rebase master
- Run your code again to confirm that it still functions
- Make a pull request
- Use the name of your trello ticket in your PR title and move the ticket to the "Staged for review" list
- Put any additional notes (potential conflicts, scoping comments, compatibility issues) in the PR body
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Configure the top-level
parserOptions
property like this:
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: ['./tson', './tsconfig.node.json'],
tsconfigRootDir: __dirname,
},
- Replace
plugin:@typescript-eslint/recommended
toplugin:@typescript-eslint/recommended-type-checked
orplugin:@typescript-eslint/strict-type-checked
- Optionally add
plugin:@typescript-eslint/stylistic-type-checked
- Install eslint-plugin-react and add
plugin:react/recommended
&plugin:react/jsx-runtime
to theextends
list