Project Info
Inspiration
As computer science students we are often busy hunched over our computers making our ideas into projects. Its really helpful to take a break and stretch every once in a while, so we create this application to promote yoga and stretching.
What it does
Users can select which pose they want to perform on our app, and the camera will open up and our awesome and cool mascot will indicate how accurate the user's pose is. The user will also receive helpful advice on how to perform the pose they chose.
How we built it
We used OpenCV and Mediapipe to capture the camera input and obtain the coordinates of a person in front of the camera. We then created helper functions to help us calcuate the angles between 8 major joints in the body. We used images of people doing the pose to help us find the ideal angles, and we created more helper functions to calculate the accuracy of the pose given the coordinates of a person.
Challenges we ran into
We had some issues with calling the LLM we chose for our advice. We also had some issues with merge conflicts and communication between frontend and backend, but we're glad we were able to resolve those in the end!
Accomplishments we're proud of
We are proud of how we were able to connect the dataflow from the backend to an image in the frontend as our first project with computer vision. We were also happy to create actionable health feedback from camera input.
What we learned
We learned a lot more about how OpenCV and Mediapipe worked, and also more about how to integrate frontend and backend together.
What's next
We would like to be able to add more yoga poses to our app, and we would also like to be able for users to create a guided yoga routine, and to be able to save the routines.
This is a Next.js project bootstrapped with create-next-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
Then, run the fastAPI server:
source /Users/dir-name/yoga-app/venv/bin/activate
python -m uvicorn main:app --host 127.0.0.1 --port 8000
It opens on http://localhost:8000.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy on Vercel
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
Analysis
View
Metric
- 10
- 4
- 3
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FastAPIIn code
- FlaskIn code
- HTMLIn code
- Hugging FaceIn code
- Next.jsIn code
- OpenAIIn code
- PythonIn code
- PyTorchIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- Google GeminiClaimed
12 of 13 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
64 KB
Source files
21
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
charred-70/yoga-app
47 files · 7.0 MB · @ 8d757d2
Structure
Interface
16 files · 34%Screens, components and styles rendered to the user.
Application logic
4 files · 9%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript77%
- Python13%
- CSS7%
- Markdown3%
- HTML1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 145- absl-py
- aiohappyeyeballs
- aiohttp
- aiosignal
- annotated-types
- anyio
- asttokens
- attrs
- audioop-lts
- audioread
- beautifulsoup4
- blinker
- cachetools
- certifi
- cffi
- charset-normalizer
- click
- contourpy
- +127 more
package.json
npm · 20- @radix-ui/react-dialog
- @radix-ui/react-separator
- @radix-ui/react-slot
- @radix-ui/react-tooltip
- class-variance-authority
- clsx
- lucide-react
- next
- react
- react-dom
- tailwind-merge
- +9 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.