{"id":24590408,"url":"https://github.com/nfordumass/winspool-client","last_synced_at":"2025-03-18T01:43:15.400Z","repository":{"id":272622683,"uuid":"909738030","full_name":"NFordUMass/winspool-client","owner":"NFordUMass","description":"React dashboard of Fantasy Sports Competition with daily updates from postgres backend","archived":false,"fork":false,"pushed_at":"2025-01-31T20:30:20.000Z","size":306,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T01:43:12.223Z","etag":null,"topics":["cronjob","css","javascript","postgresql","react","vercel","vite"],"latest_commit_sha":null,"homepage":"https://winspool-client.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NFordUMass.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-29T16:26:51.000Z","updated_at":"2025-01-31T20:30:21.000Z","dependencies_parsed_at":"2025-01-31T20:34:07.814Z","dependency_job_id":null,"html_url":"https://github.com/NFordUMass/winspool-client","commit_stats":null,"previous_names":["nfordumass/winspool-client"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFordUMass%2Fwinspool-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFordUMass%2Fwinspool-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFordUMass%2Fwinspool-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFordUMass%2Fwinspool-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NFordUMass","download_url":"https://codeload.github.com/NFordUMass/winspool-client/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244141593,"owners_count":20404835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cronjob","css","javascript","postgresql","react","vercel","vite"],"created_at":"2025-01-24T09:13:03.802Z","updated_at":"2025-03-18T01:43:15.381Z","avatar_url":"https://github.com/NFordUMass.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wins Pool Tracker\n\n## Check it Out!\n\n[winspool-client.vercel.app](winspool-client.vercel.app)\n\n## Overview\n\nWins Pool Tracker is a full-stack application built to track and analyze team performance in my friends fantasy-style competition of Winspool. The dashboard leverages data from Basketball Reference and Pro Football Reference to provide up-to-date insights and engaging visualizations of league standings, head to head records, and more. The project utilizes a fully-piped backend-to-frontend architecture, with daily data updates via cron jobs, a python backend in Jupyter Notebook, and a SQL client hosted on Supabase.\n\n## Key Features:\n\nReal-time team performance data fetched from external sources (Basketball Reference \u0026 Pro Football Reference)\nFully integrated frontend and backend: SQL queries and API calls for fetching and displaying data\nHosted frontend on Vercel for quick and easy access\nSupabase used as the free, reliable database solution for data persistence\n\n### Technologies Used\n\n#### Frontend:\n\n- ReactJS\n- CSS for styling\n- Deployed via Vercel\n\n#### Backend:\n\n- Jupyter Notebooks (Python)\n- Web scraping from Basketball Reference and Pro Football Reference\n- SQL queries using CockroachDB to store, retrieve, and manage data\n- Cron tasks for daily automated updates\n\n#### Database:\n\n- CockroachDB (Free-tier hosting for easy, distributed SQL storage)\n\n## Architecture\n\nThe application consists of two main parts:\n\n### Backend:\n\nJupyter notebooks that scrape the necessary data (team standings, statistics, etc.) from Basketball Reference and Pro Football Reference.\nSQL queries are used to insert, update, and manage the data in the Supabase.\nCron tasks are scheduled to run daily, ensuring the data is pulled and updated automatically.\n\n### Frontend:\n\nThe React-based dashboard is deployed on Vercel, where users can interact with the data, view statistics, and track team performance in real-time.\nThe frontend is integrated with the backend through fetch requests to the backend API, allowing seamless interaction with the live data stored in the database.\n\n## How It Works\n\n### Data Collection:\n\nEvery day, cron tasks trigger Python scripts running in Jupyter notebooks. These notebooks scrape relevant team data from Basketball Reference and Pro Football Reference, clean it, and push it to Supabase.\n\n### Database:\n\nThe data is stored in a SQL client, Supabase. SQL queries are used to fetch the data, which is then displayed on the frontend.\n\n### Frontend Display:\n\nThe React frontend makes fetch requests to the backend to retrieve the latest data. This data is displayed in an easy-to-understand format, helping users quickly view key insights and statistics.\n\n### Cron Jobs:\n\nSet up using cron tasks, these jobs make daily API requests and ensure that the database is continuously updated with the latest information. The cron jobs are scheduled to run at specific times to minimize the impact on performance.\n\n## Deployment\n\nThe frontend is deployed to Vercel, making it accessible from any browser. The backend processes are managed through Jupyter Notebooks and the database is hosted on Supabase, which provides a free-tier for easy hosting and scaling.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfordumass%2Fwinspool-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnfordumass%2Fwinspool-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfordumass%2Fwinspool-client/lists"}