TKChattoraj / Play_Ball

Baseball League Site
0 stars 0 forks source link

User Stories #1

Closed TKChattoraj closed 8 years ago

TKChattoraj commented 8 years ago

cabl_wireframes.pdf

User format:

As a user type, I want to action so I can reason.

  1. 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
  2. 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
  3. 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]

  1. 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]
  2. 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
  3. 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:

]

  1. 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)

]

  1. 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.

  1. As a manager user, I want to make notes about players on the other teams so that I can make scouting reports. [Phase 3]
  2. 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.
    1. 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.
  3. 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

  1. 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” ]

  1. 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

  1. 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

  1. As an admin user, I want to CRUD an umpire so that umpires can be assigned to games. [Phase 2]
  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.
  3. 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]
  4. 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]
  5. 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:

  1. “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.
  2. “There’s no crying in baseball!” Jimmy Dugan, Manager Rockford Peaches, “A League of Their Own.”
  3. “I’d walk through Hell in a gasoline suit to play baseball.” Pete Rose.
  4. “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

TKChattoraj commented 8 years ago

Moved the content of this issue to the Wiki, a more appropriate place for the general framework plan of the site.