Giter Site home page Giter Site logo

better-baskets's Introduction

BetterBaskets Introduction

The BetterBaskets web application improves your basketball abilities. It takes recordings of you playing basketball, and leverages computer vision video processing to identify key weaknesses in your basketball game. It provides the users with benchmarks so they can constantly improve their basketball capabilities.

This was a 2-week final project produced by Andrew Hui, Anthony Kao, and Sarah Mahovlich. During this time, the group learned new technologies such as OpenCV, AWS S3, VideoJs, Google Charts, while also improving their understanding of React (Hooks), Node, Express, Postgres, and Bootstrap.

How to use?

"Shot Page Display"

BetterBaskets tracks the ball to extract key information such as shot arc, success and shot angle.

"Session Data to Shot Display"

In a session, multiple shots can be taken. This is so you can collect all data from a single practice session. As you can see in this session, we have a total of 9 shots which all have been collated into a graph. This way you can evaluate your shots against each other. In the session screen, you will also see stat cards, and links to all shots that belong within that session. On each shot, you can see icons that indicate the success of your shot. Please see below for in-depth on how to use the stat cards.

"Session Stat Cards"

These session stat cards identifies your basketball weaknesses and help you improve your basketball shot. There are two rows of cards. The top row is your session statistics, and your bottom row is the users overall average. There are green and red cards for the session stat cards. Green cards meaning you are doing above average, and red cards meaning you need some improvement in this area. Idealy you want to have all green cards in your top row!

"Dashboard of BetterBaskets"

This is the user dashboard of BetterBaskets. It collates all data from your user profile for this application. BetterBaskets provides lifetime statistics from all your shots, and all your sessions combined in this dashboard.

"Taking New Shots"

From the dashboard, you can navigate to the new session page, which will redirect you to create a new shot. When on this page, click the recorder button, and line up the blue and green box to be right under the basket like above. This is critical for our success algorithim to accurately calculate the success of the shot. Shoot away, and click "end session" when you are done your session. It will redirect you to your results!

Setup and Install

There are multiple steps to deploy this project.

  1. Clone the project onto your local server.
  2. Install dependencies:
  • from root directory, install client dependencies:
$ npm i
  • from server directory, install server dependencies:
$ cd server 
$ npm i
  • from server/lib/python directory, install python dependencies:
$ cd server/lib/python
$ pip install -r requirements.txt
  1. Setup an AWS S3 account with a basket named "betterbaskets"
  2. Setup a POSTGRES Database named of your choice, and create the tables using our script in server/db/migrations/create.sql
  3. Setup a .env file in the "server" folder with your AWS S3 credentials, and Database information.
  4. In the terminal under the "betterBaskets" folder, enter npm start. This will host your client on localhost:3000
  5. In the terminal under the "betterBaskets/server" folder, enter node app.js. This will host your server on localhost:8080

Once completed, please go ahead and take some shots in the betterBaskets web application!

For any additional questions, please reach out to any one of the members: Andrew Hui, Anthony Kao, and Sarah Mahovlich.

better-baskets's People

Contributors

anthonykao10 avatar andrewhui avatar sarahmahovlich avatar

Stargazers

Sunjin Kang avatar Kenneth Zhang avatar  avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.