Hackathon-Winter-2023

FitVid

Inspiration

There have definitely been times we've wanted to do a quick workout but spent more time just finding the right video on youtube! We wanted to come up with something that does the hard work for you.

What it does

The purpose of this project is to give users a recommended exercise regime by providing various workout videos based on their preferences.

Using this information, the program will then direct the user to a set of randomized videos that fit these preferences. This allows the program to not only be useful for someone who doesn’t have a lot of knowledge in the exercise space, but to also give an experienced user something different/new to try. The videos linked will provide all the information the user needs, including workout regime and explanations of those exercises from a professional.

Given Requirements:

It will ask users:

  • the length of workout, depending on their preference
  • the type of workout they are interested in for the day
  • How intense that workout should be

Features:

  • A navigable website
  • A login page
  • A database of youtube videos and descriptors

How we built it:

  • Python
  • Flask
  • CSS
  • HTML
  • jasper.ai image generator
  • SQLAlchemy

Challenges we ran into:

  • This was the group's first time using Flask. A few of us had a lot of difficulty getting Flask to even work on our computers.
  • It was also our first time using SQLAlchemy, which proved to be a steep learning curve for those of us with no SQL experience
  • Getting Flask to interact with the database made with SQLAlchemy proved to be a unique challenge as we had a preexisting database, rather than having the user create the database, which most tutorials had us doing.
  • A lot of the errors we ran into using Flask were new to us, so these errors took longer to understand/fix.
  • Some of us had never worked with a project with multiple files, folders, and different languages all at once, so it was a big jump at first.
  • For some of us, it was the first time using VS Code, so we had to adjust to the different settings/features of a new IDE
  • Although we have used GitHub in CS 161, it was for some of us the first time using it in a group setting to coordinate a group effort. We learned a lot about how to navigate GitHub’s features
  • Non-project related errors, such as python.exe not being found by command prompts/terminals, preventing the running of the files locally.
  • AI art generator and not only matching keywords/tags, but also getting usable images related to exercise, working out, building muscle, etc.

What we learned:

  • AI-generated art: this is a complex and amazing process. That being said, it’s still in its relative infancy and requires a lot of use of keyword manipulation to generate images that will work, especially in a professional environment. Most of the faces in realistic images had either an uncanny valley effect (at best) or were pure nightmare fuel. We were able to generate a variety of art-based photos that could have worked, and in future designs of the website with more functionality we may decide to change the art design to something more pop/comic to fit those limitations. For the time being, we decided to go with a more traditional photo, despite its uncanny valley effect. It was much easier to find fantasy-related images than workout related ones, as well, so adjusting for keywords, tags, and playing around with image upload features is absolutely imperative.
  • Working as a team: For most of us, it was the first time we’ve worked as a team on a complex project, let alone one with such a fast turnaround date. On top of that, dealing with general time limitations/priorities, and different time zones (including one member going off of British Standard Time) made it tricky at times to always be on the same page. We were able to learn new skills, push one another, keep each other on task, and mainly just remind each other that it really was a fairly low pressure experience meant to challenge, educate, and entertain us. That being said, it truly proved the importance of having great personalities that mesh well together, because despite these issues, we were able to create a final working product, with each member adding a different element to the project’s success. There really is no replacement for awesome personalities and having a team of easy to work with individuals.
  • It’s a good idea to set up virtual environments when using Flask instead of installing packages globally. Otherwise, you might encounter many errors.

What's next for FitVid

  • Given more time we would have enjoyed working on the CSS further to make the website a bit flashier.
  • Continuing to experiment with AI generation and using a variety of tags, image uploads, and keywords to generate images that line up with goals/themes.

Resources Used

  • Tech with Tim Flask videos
  • Tech with Tim CSS videos
  • Codeacademy Flask videos
  • AI image generator (jasper.ai)
  • Corey Schafer's Flask youtube series
  • stack overflow
  • youtube workout videos

Accomplishments that we're proud of

  • Getting something up a running in a framework none of us have used before! We're really proud of that.

Built With

Share this project:

Updates