Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IDB5

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for Haroon Memon Haroon Memon
July 20, 2026
0

 IDB5

Avatar for Haroon Memon

Haroon Memon

July 20, 2026

Transcript

  1. CS N373 · SUMMER 2026 RESTLESS REFEREES Connected end-to-end soccer

    data. RR — IDB Haroon · Austin · Vaughn · Ali · Victor · Edmond
  2. 02 WHY IT EXISTS SOCCER DATA IS EASY TO FIND.

    CONTEXT IS NOT. Player statistics, team context, games, and trophies often live in separate places. RestlessReferees turns those fragments into one navigable system. 01 START a player 02 FOLLOW their team 03 DISCOVER games + trophies
  3. 03 ROLES & RESPONSIBILITIES CLEAR OWNERSHIP. SHARED INTEGRATION. HA AU

    VA HAROON AUSTIN VAUGHN Lead · integration Data pipeline Backend · API AL VI ED ALI VICTOR EDMOND React · search UI Design · controls Tests · deployment
  4. 04 DATA MODEL FOUR MODELS. ONE EXPLORATION LOOP. Collection pages

    → instance pages → related records TEAMS PLAYERS GAMES TROPHIES
  5. 05 AUSTIN · DATA PIPELINE RAW APIS IN. CONNECTED RECORDS

    OUT. 01 02 03 04 SOURCE COLLECT CLEAN LOAD Python scripts names + fields JSON + images 3 soccer APIs Zafronix API-Sports TheSportsDB fetch_players.py · scrape_tournament.py Collecting data and producing database-ready data are different engineering jobs.
  6. API Structure/Matching Zafronix | Tournaments | TeamS | Player_NAMES |

    players | Player_Stats API-SPORTS | Player_Images
  7. 06 DATA REALITY THE API RESPONSE WAS ONLY THE START.

    01 NAMES Special characters and inconsistent spelling 02 GAPS Missing images and unexpected null fields 03 LINKS Identifiers had to preserve model relationships
  8. 07 VAUGHN · BACKEND EACH LAYER HAS ONE CLEAR JOB.

    REACT + TEMPLATES interaction FLASK + REST API requests SQLALCHEMY request ↓ query ↓ response relationships POSTGRESQL The frontend asks for data. Flask interprets the request. SQLAlchemy builds the query. PostgreSQL returns the records. records
  9. 08 API BEHAVIOR ONE ENDPOINT. MULTIPLE INTENTIONS. GET /api/players/profile/all?team-name=Spain&sort=name&sort-HL=false FILTER

    SORT PAGE SEARCH team-name = Spain name, low → high (alphabetical) only the requested slice terms across models Backend logic: Vaughn · interface: Victor + Ali · final integration: Haroon
  10. 09 ALI · REACT FRONTEND THE INTERFACE MAKES RELATIONSHIPS VISIBLE.

    RestlessReferees Trophies Players Teams Games Alexander Isak PLAYER Team · Position · Nationality Stats · Related games OPEN RELATED TEAM React renders live backend data across collection and instance pages. About
  11. 10 GOOGLE-LIKE SEARCH ONE QUERY. EVERY MODEL. argentina final →

    PLAYERS TEAMS GAMES Argentina Argentina Final 3 results 1 result 4 results ↗ All terms required · categorized results · highlighted matches ↗ ↗
  12. 12 LIVE AT RESTLESSREFEREES.ME ONE USER JOURNEY. FOUR SYSTEMS WORKING.

    01 NAVIGATE restlessreferees.me 03 Ali 02 FILTER + SORT Victor Rehearsed query · one laptop operator · backup screenshots ready SEARCH Ali 04 EXPLAIN Vaughn
  13. 13 EDMOND · TESTING A PASSING BUILD IS A TEAM

    CONTRACT. ✓ MODEL TESTS SQLAlchemy behavior ✓ API TESTS expected responses Integration changed several layers at once. Automated tests made regressions visible before deployment. ✓ GITLAB CI repeatable verification
  14. 14 PRODUCTION PATH LOCAL CODE BECOMES A PUBLIC SYSTEM. GITLAB

    source restlessreferees.me → CI verify → APP ENGINE serve → CLOUD SQL store Production exposed configuration and table-naming issues that local development did not.
  15. 15 MACROBITES VISUALIZATION 1 46% OF ITEMS FALL BELOW 400

    CALORIES. 12,002 MENU ITEMS ANALYZED 46.2% 30.0% 13.6% 10.2% < 400 400–799 800–1199 1200+ Most items are below 800 calories—but 1,222 entries exceed 1,200. Source: MacroBites API, retrieved July 18, 2026
  16. 16 MACROBITES VISUALIZATION 2 ALLERGEN-SAFE LABELS HAVE THE WIDEST COVERAGE.

    Peanut-Free 61.0% Shellfish-Free 57.9% Fish-Free 57.7% Tree Nut-Free 57.6% Low Calorie 46.2% High Protein 42.4% Vegan 13.8% Keto-Friendly 18 categories · overlapping membership · Source: MacroBites API 3.8% 16× PEANUT-FREE VS KETO
  17. 17 MACROBITES VISUALIZATION 3 RESTAURANT AVERAGES HIDE SERVING-SCALE OUTLIERS. Sbarro

    2220 INFERENCE Little Caesars 1827 Buffalo Wild Wings 1514 Applebee’s 1325 Dickey’s BBQ 1105 Cheesecake Factory 1093 Red Lobster 1022 Famous Dave’s 1006 Average calories reported by MacroBites API · retrieved July 18, 2026 Family packs and multiserving items likely inflate restaurant averages.
  18. 18 CONSTRUCTIVE PEER CRITIQUE STRONG DISCOVERY. ONE IMPORTANT DATA CAVEAT.

    Specific evidence · respectful language · actionable suggestion WHAT WORKS WHAT WE LEARNED 12K items, useful categories, connected restaurant → food → category navigation The frontend recieves and changes data in the URL to send informaiton to the backend to filter and sort WHAT TO IMPROVE WHAT PUZZLES US Show serving basis and separate bundles from single-item nutrition How are inferred dietary labels validated when descriptions are ambiguous?
  19. 19 WHAT THE PROJECT TAUGHT US THE SYSTEM WORKS. THE

    PROCESS CAN IMPROVE. 01 WELL Connected models + full Phase III feature set 02 LEARNED Integration risk grows across every layer 03 BUILD TEST LEARN IMPROVE Earlier merges, stronger tests, clearer mobile states 04 PUZZLES Relevance ranking and continuously refreshed data
  20. FULL TIME CONNECTED DATA. EXPLORABLE SOCCER. restlessreferees.me Reliable data, a

    queryable backend, an understandable frontend, automated verification, and a public deployment. QUESTIONS?