Skip to content

frankli-n/surf-detector

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Source Surf Report

Developer Setup (Backend)

Disclaimer: You're likely going to need some env variables to get things running correctly. Feel free to contact me at [email protected] and I'd be more than happy to help you get setup.

  1. Fork the repo.
  2. Clone the forked repo: git clone [email protected]:<your_github_username>/surf-detector.git
  3. Enter correct directory: cd surf-detector
  4. Choose what to work on: cd data OR cd models OR cd server
  5. Follow instructions below depending on what section your working on.

Data

  1. Create a virtual environment: python -m venv env
  2. Install Requirements: pip install -r requirements.txt
  3. cd into source directory and run: cd src AND python main.py

Models

  1. No developer setup needed yet.

Server

  1. Create a virtual environment: python -m venv env
  2. Install Requirements: pip install -r requirements.txt
  3. Run locally: flask run

Developer Setup (Frontend)

Disclaimer: You're likely going to need some env variables to get things running correctly. Feel free to contact me at [email protected] and I'd be more than happy to help you get setup.

  1. Fork the repo.
  2. Clone the forked repo: git clone [email protected]:<your_github_username>/surf-detector.git
  3. Enter correct directory: cd surf-detector AND cd frontend AND cd app
  4. Install Requirements: npm install
  5. Run locally: npm run dev

TODO (Backend)

  • Implement object detection model that can detect how many surfers are in water.
  • Configure cloud db (CockroachDB, Supabase)
  • Fetch swell and weather data from NOAA and relative databases, given specific location.
  • Define db methods.
  • Add NOAA buoy data (SCRIPPS) to the db.
  • Deploy scheduled tasks using AWS ECS and ECR.
  • Grab historical NOAA and SL data to train prediction models more quickly.
  • Create AI forecast using GPT API (3 day forecast and 14 day forecast).
  • Configure data collection from bouys other than SCRIPPS.
  • Train crowd prediction model.
  • Train height prediction model. (given actual buoy reading, predict wave height)
  • Train buoy prediction model (given gfs reading, predict actual buoy reading)
  • Update root README for developer setup.
  • Add cam URL dictionary to .env.
  • Adding data for every spot appears to not work on AWS ECS. Figure out a different way.
  • Configure a local setup that works without the need for env variables.

TODO (Frontend)

  • Add chart to represent wave height.
  • Chart to represent tides and current crowd.
  • Add point to tide chart showing current time.
  • Style tide chart to better represent mouse hover position.
  • Add Icons to navbar.
  • Update root README for developer setup.
  • Handle Mobile Web Version for spot forecast.
  • Landing Page
  • Supabase confirmation link page.
  • Fix bug where swell chart renders multiple times. Usually occurs when spot is spam clicked.
  • Find a way to create custom scroll bar for day forecasts.
  • Set minimum of tide chart to -1.5 OR to the calculated minimum of all the possible datapoints (As was the height of swell chart).
  • Make mobile Compatible
  • Box that shows current tide is not centering text vertically.
  • Change style of nabvbar on mobile screens (design is on figma).
  • Migrate vanilla css to Tailwind (low priority).
  • Configure a local setup that works without the need for env variables.
  • Make Home page footer work
  • Home page login on hover should be pointer

About

TwoSurf is a free surf forecasting service.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 46.6%
  • TypeScript 41.0%
  • CSS 11.3%
  • Other 1.1%