High‐Level‐Analysis - gcivil-nyu-org/team4-mon-fall26 GitHub Wiki

High Level Analysis

Overview

PlayNYU is a web platform for NYU intramural sports. Verified NYU students keep a persistent player profile, join or request placement on teams, see schedules and athletic facilities on a map, and follow scores and standings across seasons. League Admins configure sports and seasons, schedule matches, and moderate. Team chat, direct messages, and match comments are MLP-priority social features. The system is a single Django application with a PostgreSQL database, deployed on AWS Elastic Beanstalk.

Context Diagram

playnyu_context_wiki

Left: personas. Middle: the PlayNYU system with its epics (dashed ovals are engineering enablers). Right: external systems.

Personas

All personas share one User record and role membership. Every verified user is a Casual Player first.

Persona Who they are What they want
Casual Player Verified NYU student Keep a profile with season history; see teams, schedules, standings, and facilities; chat and comment
Team Captain Player who created a team Manage the team roster
Free Agent Player without a team Be placed on a team by an admin
Scorekeeper / Referee Organizer role, assigned per event Submit results for assigned events only
League Admin Full organizer Configure sports, seasons, divisions, facilities, schedules; assign roles; correct results; moderate

External systems: Email delivery (SMTP) is used by E1. The NYC Open Data Athletic Facilities dataset (imported by a management command) and OpenStreetMap tiles (loaded by the browser) are used by E4.

Out of scope this revision: NYU single sign on, friends, following, activity feeds, season forums, reactions, email notifications.

Epic chosen for this sprint's user stories

E1 Register, Verify & Manage Profiles

Every other epic depends on verified users, roles, and profiles existing, so this epic is built first.

Registration and verification flow

  • Users register with a valid NYU email / NYU ID.
  • If a user registers with a non-NYU email, the system shows the message "Please use your NYU ID".
  • When a user enters an NYU email, a confirmation email is sent to that address.
  • The user must click the confirmation link to verify the account.
  • If the NYU email is fake or invalid, the confirmation email never arrives, so the account stays unverified and cannot be used.
  • Only legitimate NYU emails can complete registration and become verified users.
  • Once verified, the user can create and edit their player profile.

User stories for E1

Registration & Login

  • As a new NYU student, I want to create an account with my NYU ID and password so that I can access PlayNYU.
  • As a registered user, I want to log in with my NYU ID and password so that I can access the platform.
  • As a user, I want the system to tell me if an account with my NYU ID already exists so that I do not create a duplicate account.

Verification

  • As a user, I want the system to reject non-NYU emails and show "Please use your NYU ID" so that only NYU students can register.
  • As a user, I want to receive a confirmation email at my NYU address so that I can verify my account.
  • As a user, I want my account to stay unverified until I click the confirmation link so that only legitimate NYU emails can complete registration.

Profile Management

  • As a verified user, I want to create and update my player profile (name, photo, preferred sports, etc.) so that captains and other players can see my information.
  • As a verified user, I want to edit my profile at any time so that my details stay accurate and up to date.
  • As a verified user, I want to see why an update was rejected and know that nothing was saved so that I can fix the problem.
  • As a verified user, I want to correct my details and submit again after a rejection so that I can finish my update without starting over.
# High Level Analysis

Overview

PlayNYU is a web platform for NYU intramural sports. Verified NYU students keep a persistent player profile, join or request placement on teams, see schedules and athletic facilities on a map, and follow scores and standings across seasons. League Admins configure sports and seasons, schedule matches, and moderate. Team chat, direct messages, and match comments are MLP-priority social features. The system is a single Django application with a PostgreSQL database, deployed on AWS Elastic Beanstalk.

Context Diagram

PlayNYU context diagram

Left: personas. Middle: the PlayNYU system with its epics (dashed ovals are engineering enablers). Right: external systems.

Personas

All personas share one User record and role membership. Every verified user is a Casual Player first.

Persona Who they are What they want
Casual Player Verified NYU student Keep a profile with season history; see teams, schedules, standings, and facilities; chat and comment
Team Captain Player who created a team Manage the team roster
Free Agent Player without a team Be placed on a team by an admin
Scorekeeper / Referee Organizer role, assigned per event Submit results for assigned events only
League Admin Full organizer Configure sports, seasons, divisions, facilities, schedules; assign roles; correct results; moderate

Epics

ID Epic Description Personas Priority
E1 Register, Verify & Manage Profiles nyu.edu email verification, login, roles, player profile with cross-season history All users; League Admin assigns roles MVP
E2 Configure Sports & Seasons Sports and event types, season lifecycle (draft, open, active, closed), divisions League Admin MVP
E3 Form Teams & Place Free Agents Create teams, manage rosters, free agent requests, admin-triggered matching Team Captain, Free Agent, League Admin MVP
E4 Schedule Matches & Browse Facilities Schedule events, assign scorekeepers, NYC Open Data and NYU facilities on a map League Admin, Casual Player MVP
E5 Record Scores & View Standings Submit and correct results, standings computed from results Scorekeeper / Referee, League Admin, Casual Player MVP
E6 Monitor the League & Send Notifications Admin overview of the league, in-app notifications League Admin, all users MVP
E7 Chat, Comment & Moderate Team chat, direct messages, match comments, blocking, reporting, moderation All users; League Admin moderates MLP
E8 Set Up, Test & Deploy the Project Repo, Django skeleton, CI, AWS Elastic Beanstalk deployment, seed data Development team Enabler
E9 Secure & Observe the System Verified-user middleware, rate limits, permission tests, logging, audit log Development team Enabler

External systems: Email delivery (SMTP) is used by E1. The NYC Open Data Athletic Facilities dataset (imported by a management command) and OpenStreetMap tiles (loaded by the browser) are used by E4.

Out of scope this revision: NYU single sign on, friends, following, activity feeds, season forums, reactions, email notifications.

Epic chosen for this sprint's user stories

E1 Register, Verify & Manage Profiles

Every other epic depends on verified users, roles, and profiles existing, so this epic is built first.

Registration and verification flow

  • Users register with a valid NYU email / NYU ID.
  • If a user registers with a non-NYU email, the system shows the message "Please use your NYU ID".
  • When a user enters an NYU email, a confirmation email is sent to that address.
  • The user must click the confirmation link to verify the account.
  • If the NYU email is fake or invalid, the confirmation email never arrives, so the account stays unverified and cannot be used.
  • Only legitimate NYU emails can complete registration and become verified users.
  • Once verified, the user can create and edit their player profile.

User stories for E1

Registration & Login

  • As a new NYU student, I want to create an account with my NYU ID and password so that I can access PlayNYU.
  • As a registered user, I want to log in with my NYU ID and password so that I can access the platform.
  • As a user, I want the system to tell me if an account with my NYU ID already exists so that I do not create a duplicate account.

Verification

  • As a user, I want the system to reject non-NYU emails and show "Please use your NYU ID" so that only NYU students can register.
  • As a user, I want to receive a confirmation email at my NYU address so that I can verify my account.
  • As a user, I want my account to stay unverified until I click the confirmation link so that only legitimate NYU emails can complete registration.

Profile Management

  • As a verified user, I want to create and update my player profile (name, photo, preferred sports, etc.) so that captains and other players can see my information.
  • As a verified user, I want to edit my profile at any time so that my details stay accurate and up to date.
  • As a verified user, I want to see why an update was rejected and know that nothing was saved so that I can fix the problem.
  • As a verified user, I want to correct my details and submit again after a rejection so that I can finish my update without starting over.
⚠️ **GitHub.com Fallback** ⚠️