As a guest user, I want to initially see
home page showing [Phase 0: skeleton view showing feature locations and important announcement field.]
general league info—including a pithy statement about who we are [Phase 1]
important announcement field [Phase 0]
Current standings [Phase 1]
with a link to each each Team’s show page [Phase 1]
Current league leaders in certain categories [lower priority] [Phase 2]
Ave.
OBP
Hits
HR
ERA
Pitched Innings
Ks
As a guest user, I want to see any Team’s show page which displays [Phase 0: skeleton view showing feature locations and Notes/Announcements]
Team Name/Logo [Phase 2]
Manager [Phase 1]
Notes/Announcements [Phase 0]
Win/Loss Record [Phase 1]
Next Game Info: Where, When, vs who [Phase 1]
Table of Players with season statistics [Phase 1]
with the players name as a link to the Player Show page
As a guest user, I want to hit a player’s link on the Team show page so that I can see specific info and stats about that player: [Phase 1]
the player’s picture [Phase 2]
some quote etc something personal about that player—e.g. his walk up song—maybe play his walk up song. [Phase 3]
maybe play his walk up song [Phase 3](this suggests that maybe the player should have ability to do a limited CRUD on himself—limited to personal stats—height, weight-Bats R/L, Throws R/L—but not game_stats)
which will show a listing of table of game stats for that player [Phase 1]
and at the bottom of that table will be the totals. [Phase 1]
As a guest user, I want to hit the “Schedule” link in the application layout to see the schedule so that I will know when, where and against whom my team is playing or other teams. [Phase 2]
[Technical Task:
Games Index page
Link on the application layout sending to the Games#Index
Games-sorted by date-showing visitor v. home, location, time
[Later phase: display in a calendar grid format—with map to location]
As a guest user, I want to hit the “I want to play!” button on the application layout so that I can see info about becoming a player and fill out a form expressing interest in playing. [Phase 3]
As a guest user, I want to sign up so that I am authenticated as either a manager or admin. [Phase 0: basic sign-up—automatic confirmation—admin confirmation in Phase 1.]
Question: what will the relationship between a manager and admin be? Enum or should admin be a separate Model? I lean to Enum
As a guest user, I want to log in as a manager or admin if authorized so that I can do the things a manager or admin is authorized to do. [Phase 0]
[Technical Tasks:
Create a Session.
]
As a manager user, I want to:
CRUD a Player for my Team so that I have a roster. [Phase 1]
CRUD a GameHittingStats for a Player so that hitting stats for each player for each game are tracked. [Phase 1]
CRUD a GamePitchingStats for a pitcher Player so that pitching stats for each player for each game are tracked.[Phase 1]
Update a Game with the score and win/loss so that so that the status of each game is known and team records/standings can be complied. [Phase 1]
Create Notes about each Game that my team plays so that notable items for each game are tracked.[Phase 1]
[Technical Tasks:
Create User Model—using Devise—confirmable
name, password, email, cell, enum (manager, admin, or both)
if manager then validate team—has one team
becoming confirmed requires admin to “manually” agree
Create Player Model
name, birthdate, height, weight, bats, throws, pic
belongs_to a Team
has_many games_stats
(hitting totals: ab, h, 2, 3, hr, rbi, r, sb, bb, k, plate appearance, hb, ave, slg%)
(pitching: innings, runs, earned runs, ks, bb, hb, w, l, era)
Create GameStats Model [lower priority]
belongs to a player
belongs to a game
(hitting totals: ab, h, 2, 3, hr, rbi, r, sb, bb, k, plate appearance, hb)
(pitching: innings, runs, earned runs, ks, bb, hb, w, l)
]
As a manager user, I want to send a text from my phone so that the message appears on the site under my team’s Notes/Announcement’s section. [Phase 0]
[Technical Tasks:
Figure out twilio [dont’ really know what is needed here]
Want to send texts to a Teams Notes/Announcement text field—append/prepend the comments from the latest game and whatever else the manager includes either on-line or via text. Remove announcements if stale—older than a day or two—retaining recap of last game.
As a manager user, I want to make notes about players on the other teams so that I can make scouting reports. [Phase 3]
As a player, I want to make notes about players on the other teams so that I contribute to my team’s scouting reports.
This is a later phase because it would require that players sign in so that he can create scouting reports only for his team.
As a manager user or player, I want to see the scouting reports created by my Team only so that I can prepare.
This is a later phase because it would require a player to sign-in so that he can see only those scouting reports created by his team.
As a manager user I want to do all those things that a guest user can do so that I can see info/stats about other Teams/Players [Phase 0]
[Technical Task:
perform through Pundit
As an admin, I want to “manually” confirm manager sign-up [Phase 1]
This means I want to:
receive a notification upon user sign-up
designate as confirmed or not—
have the requesting guest user notified of the decision.
[The idea here is that only vetted folks should be manager—the admin should see who the request is coming from verify his identity—etc. and then confirm—sending a notice to the manager.]
[Technical Tasks:
need to get in the middle of the Devise “confirm.” After the user signs-up—send email to admin with the information—NOT to the user—admin does his vetting—says yes this is the right guy and hits the link that confirms the user—basically Devise sending the email to the admin for confirmation not the requesting user—after confirmation—email sent to the requester user/manager saying confirmed.
An alternative is to write the user sign-up/confirmation from scratch
form for user sign-up
upon submittal of form
email notification to admin
admin determines whether requesting user is appropriate person to be manager
hits the “yes” or “no” button
which sends email back to site
site processes “yes” or “no”
if “yes”-confirm the requesting user as a manger
completing the creation of a manager user
sending status email to new manager
if “no”-don’t complete the manager user setup
send a status email—“you’re out of luck”
email status notice to requesting upon submittal—that “you’ll have to be confirmed”
]
As an admin user, I want to CRUD a Team [Phase 1]
[Technical Tasks:
Create Team Model
name, wins, losses, games back, notes/announcement text field
has many managers
has many players
has many games
[Technical Tasks:
Create Team Model
name
has_many players
has_many managers
has-many games [lower priority]
w, l, % games_back
As an admin user, I want to CRUD a Game [lower priority] [Phase 1]
which will include establishing:
a date
assigning umpires
assigning a location
assigning a home team
assigning an away team
assigning a game_time
providing explanatory notes, e.g. “no metal cleats at Riverfront!”
[Technical Tasks:
Create Game Model
date
has-many umpires—validate at least one
location
home_team
away_team
home_team_score
away_team-score
home_team_summary/comments
away_team_summary/comments
has_many GameHitting Stats
has_many Game Pitching Stats
Notes field
As an admin user, I want to CRUD an umpire so that umpires can be assigned to games. [Phase 2]
As an admin user, I want to do all those things that a manager user can do/see so that I can act as a manger for my team also.
As an admin user, I want to do all those things that a guest user can do/see so that I can see info/stats about all teams. [Phase 1]
As an admin user, I want to be able to send text to the important announcement fields so that I can immediately communicate info. [Phase 0 or 1]
As an admin user, I want to update the important announcement field on-line so that I can immediately communicate info. [Phase 1]
[Technical Task:
button at the top tab layout—“Manager Sign In” and/or “Admin Sign In”
Quotes for the footers:
“Baseball is the hurrah game of the republic! That's beautiful: the hurrah game! well—it's our game: that's the chief fact in connection with it: America's game: has the snap, go, fling, of the American atmosphere—belongs as much to our institutions, fits into them as significantly, as our constitutions, laws: is just as important in the sum total of our historic life.” Walt Whitman.
“There’s no crying in baseball!” Jimmy Dugan, Manager Rockford Peaches, “A League of Their Own.”
“I’d walk through Hell in a gasoline suit to play baseball.” Pete Rose.
“People ask me what I do in winter when there's no baseball. I'll tell you what I do. I stare out the window and wait for spring.” Rogers Hornsby
For Phase 0
User [:admin] -> Member [:user_id, :team_id, :manager, :season] <- Team
Note_Announcement [:content, :from, :twillio_id]<- Team
cabl_wireframes.pdf
User format:
As a user type, I want to action so I can reason.
[Technical Task: Games Index page Link on the application layout sending to the Games#Index Games-sorted by date-showing visitor v. home, location, time [Later phase: display in a calendar grid format—with map to location]
[Technical Tasks:
]
CRUD a Player for my Team so that I have a roster. [Phase 1] CRUD a GameHittingStats for a Player so that hitting stats for each player for each game are tracked. [Phase 1] CRUD a GamePitchingStats for a pitcher Player so that pitching stats for each player for each game are tracked.[Phase 1] Update a Game with the score and win/loss so that so that the status of each game is known and team records/standings can be complied. [Phase 1] Create Notes about each Game that my team plays so that notable items for each game are tracked.[Phase 1]
[Technical Tasks:
Create User Model—using Devise—confirmable name, password, email, cell, enum (manager, admin, or both) if manager then validate team—has one team becoming confirmed requires admin to “manually” agree Create Player Model name, birthdate, height, weight, bats, throws, pic belongs_to a Team has_many games_stats (hitting totals: ab, h, 2, 3, hr, rbi, r, sb, bb, k, plate appearance, hb, ave, slg%) (pitching: innings, runs, earned runs, ks, bb, hb, w, l, era) Create GameStats Model [lower priority] belongs to a player belongs to a game (hitting totals: ab, h, 2, 3, hr, rbi, r, sb, bb, k, plate appearance, hb) (pitching: innings, runs, earned runs, ks, bb, hb, w, l)
]
[Technical Tasks: Figure out twilio [dont’ really know what is needed here] Want to send texts to a Teams Notes/Announcement text field—append/prepend the comments from the latest game and whatever else the manager includes either on-line or via text. Remove announcements if stale—older than a day or two—retaining recap of last game.
[Technical Task: perform through Pundit
[The idea here is that only vetted folks should be manager—the admin should see who the request is coming from verify his identity—etc. and then confirm—sending a notice to the manager.]
[Technical Tasks: need to get in the middle of the Devise “confirm.” After the user signs-up—send email to admin with the information—NOT to the user—admin does his vetting—says yes this is the right guy and hits the link that confirms the user—basically Devise sending the email to the admin for confirmation not the requesting user—after confirmation—email sent to the requester user/manager saying confirmed. An alternative is to write the user sign-up/confirmation from scratch form for user sign-up upon submittal of form email notification to admin admin determines whether requesting user is appropriate person to be manager hits the “yes” or “no” button which sends email back to site site processes “yes” or “no” if “yes”-confirm the requesting user as a manger completing the creation of a manager user sending status email to new manager if “no”-don’t complete the manager user setup send a status email—“you’re out of luck” email status notice to requesting upon submittal—that “you’ll have to be confirmed” ]
[Technical Tasks: Create Team Model name has_many players has_many managers has-many games [lower priority] w, l, % games_back
[Technical Tasks: Create Game Model date has-many umpires—validate at least one location home_team away_team home_team_score away_team-score home_team_summary/comments away_team_summary/comments has_many GameHitting Stats has_many Game Pitching Stats Notes field
[Technical Task:
button at the top tab layout—“Manager Sign In” and/or “Admin Sign In”
Quotes for the footers:
For Phase 0
User [:admin] -> Member [:user_id, :team_id, :manager, :season] <- Team
Note_Announcement [:content, :from, :twillio_id]<- Team