summaryrefslogtreecommitdiff
path: root/PREMISE.md
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2026-04-03 16:02:56 -0700
committerAnson Bridges <bridges.anson@gmail.com>2026-04-03 16:02:56 -0700
commit5249744b01849b7158ff9cf796c550924f452320 (patch)
tree1404319acfef55d9a99c56792922515875f9b06e /PREMISE.md
start er up
Diffstat (limited to 'PREMISE.md')
-rw-r--r--PREMISE.md23
1 files changed, 23 insertions, 0 deletions
diff --git a/PREMISE.md b/PREMISE.md
new file mode 100644
index 0000000..7b1f22d
--- /dev/null
+++ b/PREMISE.md
@@ -0,0 +1,23 @@
+Create a website for a Super Mega Baseball 4 league called "The Orchard League" according to the following requirements:
+
+## Functional Requirements
+
+1. Make all site pages visible to un-authenticated users, except the team management page and the admin pages.
+2. Create a login page with the credentials being a simple username and password. Make sure the password is hashed/encrypted.
+3. Users should have the associated fields besides the username/hashed password: whether the user is an admin, team name, team icon, and seasons being partaken in. Potentially more fields could be required to match additional features
+4. Create a standings page that displays the standings for a given season. Columns will be wins, losses, runs for, runs against, and games back.
+5. Create a schedule page that by default when not logged in shows the full schedule for the current season with a calendar. Games in the calendar should have the teams with their records and icons, visiting team first. Clicking on games within the calendar loads the game page. When a user is logged in, it should show the schedule for the logged in team (if the team is participating in the season). There should be a dropdown on the schedule page that allows the visitor to view the schedules of the whole league or of specific teams.
+6. Create an admin-only season management page that allows admins to create seasons, add teams to seasons, generate schedules, and add/remove game results to a season. Season generation should have the following parameters: total number of games, games per week, number of playoff teams, number of playoff games per series. Even number of playoff teams should result in an even two sided bracket with seeding going top seed vs last seed, 2nd vs 2nd to last, etc. Odd numbers should result in the top seed getting a bye and playing the winner.
+7. Create a game page that displays the scheduled or already completed game. The game page should have the two participating teams and their logos/records with the away team on the left. It should also have the scheduled game date and the score (if any). The users for both participating teams can submit a score/result after or on the scheduled game date. If their submissions agree, the match score is finalized. Result submissions have an optional box score with 9 regular innings with an extra innings box (optional), hits, and errors. This is ignored if the box score contradicts the final score or both users submit box scores that contradict each other. Users of the involved teams can also submit petitions to change the start date, which happens automatically if both their petitions agree. Admins can change any game information at will, but the fields only become editable after pressing a pencil edit button visible only to admins.
+8. Create a user management page where users can change their password, team name, and upload team icons.
+
+## Technical Requirements
+
+1. Use Flask for hosting the website and serving the page templates.
+2. Use Flask-login for authentication.
+3. Use SQLite for storing information.
+4. Create data structures and functions that can be used for generating SQLite tables with ease of iteration and regeneration. Tables may include user logins, teams, seasons, schedules, individual games, etc.
+
+## Stylistic Requirements
+
+1. The website appearance should be evocative of themes of futuristic art deco urbanism growing out of dusty rural agricultural surroundings.