summaryrefslogtreecommitdiff
path: root/doc/Sprint2-Retrospective.md
blob: 58a52b35ca5591d1d86b2c7f8b7044a4c2d83f3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
---
title: "Team 6 - Project Leaguer: Sprint 2 Retrospective"
author: [ Nathaniel Foy, Guntas Grewal, Tomer Kimia, Andrew Murrell, Luke Shumaker, Davis Webb ]
---

# User Stories

1) As an admin, I would like hosts/players, to have only the options
   their group entitles them to.

2) As an admin, I would like anti-spam measures for registration.

3) As a player I would like to review my peers and have our
   scores reflect these reviews.

4) As a host I would like to have both game-type specific settings and
   tournament specific preferences available when creating a new
   tournament.
    - These settings and preferences were moved to sprint 2 from sprint 1
      because we did not have the API functionality for any specific game yet.

5) As a host/player/spectator I would like to have Riot Games League
   of Legends API integration for match and player statistics and results for
   League of Legends tournaments.

6) As a host/player, I would like my pages to actively update without
   refreshing my current page.
    - For this task, we will implement an Active Status Update system with AJAX.

7) As a host/player, I would like to see an interactive tournament lobby page
   that displays tournament and match information.
    - This will be accomplished with dynamic graphs, trees, and status bars.

8) As a host/player, I would like the Leaguer application to be more intuitive
   and easy to use.

9) As a user, I would like past tournament and player information to be
   persistent and search-able.
    - A working search utility should be implemented that will find specific
      players or tournaments and return their pages.

10) As a user, I would like to see Player Profile pages.
    - For this task, we will be creating profile pages for registered users that
      have player-specific information such as tournament history and activity.

# Tasks

The "size" is using the modified Fibonacci scale.  A '1' is expected
to take less than an hour.  A '3' is expected to take 3-6 hours.  A
'5' should take the better part of a day or two.  An 8 should take
several days.

+---------------------------------------------------------+------+------------+----+
| Tasks Implemented and Working                           | Size | Person\*   | US |
+=========================================================+======+============+====+
| [Define Specific Unit Tests for Security]               |    3 | All        |  1 |
| (#security-test)                                        |      |            |    |
+---------------------------------------------------------+------+------------+----+
| [Implement Anti-spam measures](#anti-spam)              |    2 | Davis      |  2 |
+---------------------------------------------------------+------+------------+----+
| [Implement Teammate Rating System (peer review view)]   |    5 | Guntas     |  3 |
|  (#peer-review)                                         |      |            |    |
+---------------------------------------------------------+------+------------+----+
| [Design/Code Scoring/Pairing Algorithms and Procedures] |    5 | D+F+A      |  3 |
| (#pair-alg)                                             |      |            |    |
+---------------------------------------------------------+------+------------+----+
| [Implement game-type specific and tournament            |    8 | L+A+G      |  4 |
| specific settings and preferences] (#setting-and-pref)  |      |            |    |
+---------------------------------------------------------+------+------------+----+
| [Retrieve data from Riot Games (TM) API ](#riot-api)    |    3 | Foy        |  5 |
+---------------------------------------------------------+------+------------+----+
| [Parse Riot data and attach to scoring subsystem]       |    5 | Davis      |  5 |
| (#parse-riot)                                           |      |            |    |
+---------------------------------------------------------+------+------------+----+
| [Teach Andrew and Tomer AJAX ](#teach-ajax)             |    2 | Luke       |  6 |
+---------------------------------------------------------+------+------------+----+
| [Make pages auto-update with AJAX](#ajax)               |    5 | T+A        |  6 |
+---------------------------------------------------------+------+------------+----+
| [Setting up a Tournament View for matches and tree]     |    5 | Tomer      |  7 |
| (#match-gui)                                            |      |            |    |
+---------------------------------------------------------+------+------------+----+
| [Increase Usability](#usability)                        |    3 | All-L      |  8 |
+---------------------------------------------------------+------+------------+----+
| [Develop comprehensive data storage for s&p&other]      |    5 | L+A        |  9 |
| (#data-storage)                                         |      |            |    |
+---------------------------------------------------------+------+------------+----+
| [Create Player Profile Pages](#profile)                 |    2 | Tomer      | 10 |
+---------------------------------------------------------+------+------------+----+
| [Gravatar Integration](#gravatar)                       |    2 | Foy        | 10 |
+---------------------------------------------------------+------+------------+----+




+---------------------------------------------------------+------+------------+----+
| Tasks Implemented and Not Working Well                  | Size | Person\*   | US |
+=========================================================+======+============+====+
| [Not Applicable](#all-or-nothing)                       |    0 | ---        | 0  |
+---------------------------------------------------------+------+------------+----+




+---------------------------------------------------------+------+------------+----+
| Tasks Not Implemented                                   | Size | Person\*   | US |
+=========================================================+======+============+====+
| [Email Verification Option](#email-varify)              |    5 | Luke       |  2 |
+---------------------------------------------------------+------+------------+----+
| [Project Leaguer Logo](#logo)                           | spike| D+G        |  8 |
+---------------------------------------------------------+------+------------+----+




# Implemented and working

## Define Specific Unit Tests for Security   {#security-test}
## Implement Anti-spam measures {#email-varify}   
## Implement Teammate Rating System (peer review view) {#peer-review}
## Design/Code Scoring/Pairing Algorithms and Procedures {#pair-alg}
## Implement game-type specific and tournament specific settings and preferences
   {(#setting-and-pref)}

## Retrieve data from Riot Games (TM) API {#riot-api}

Grabbing League of Legends user and match data from Riot's servers has been
implemented using their newly available API. A developer key is necessary in
order to retrieve data from their servers. We currently are using Davis's to do
so. Information is grabbed with HTTParty.get and the correct url.  A hash of 
information is stored this way. Grabbing information for a user requires the 
user's League of Legends summoner's name or summoner id. Our current developer
key is limited to utilizing 10 pulls per 10 seconds.

## Parse Riot data and attach to scoring subsystem {#parse-riot}
## Teach Andrew and Tomer AJAX {#teach-ajax}
## Make pages auto-update with AJAX  {#ajax}
## Setting up a Tournament View for matches and tree {#match-gui}

## Increase Usability  {#usability}

Project Leaguer has many new features that have increased usability. AJAX
integration, tournament visuals (ready bar, match trees), Gravatar images, 
and Riot API integration all contribute towards an easier and more automatic
web interface available for our users to utilize.

## Develop comprehensive data storage for s&p&other{#data-storage}

## Create Player Profile Pages {#profile}

Player Profile Pages successfully list important and useful user information.
Player username, e-mail, relationship status, and recent tournament information
are all listed on a user's profile page. Gravatar images are also shown here.
Users can also edit their pages.

## Gravatar Integration {#gravatar}

Gravatar images are fetched from the gravatar website. A user's e-mail is used to
generate a hash key and that key is used to grab their gravatar image from a url.
If their e-mail is not recognized by Gravatar, then we have a wide number of 
optionable default images to use. We currently use a mystery man default. It's
also possible to utilize a number of other image options, such as sizing.



# Implemented but not working well

## Not Applicable (#all-or-nothing)

Everything we implemented was implemented well, or else we didn't implement it.


# Not implemented

## Email Verification Option (#email-verify)

This was not implemented for lack of time. Luke probably would have been able to
implement it with his time constraints if he wasn't busy frequently assisting
other members with various problems. In the end, the email verification was also
simply a low priority.

## Project Leaguer Logo {#logo} 

The Project Leaguer Logo was discussed before the sprint started. We decided we
would follow up on any opportunities to explore creating a Leauger Logo, but this
simply did not happen. We greatly want one, but it's still just a low priority
extra feature.

# How to improve

Our biggest fault this time around was the lack of motivation before spring break.
Our commits slowed to a halt the week before spring break.