summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Sprint1-Retrospective.md220
-rw-r--r--doc/Sprint2-Retrospective.md215
-rw-r--r--doc/Sprint2.md103
-rw-r--r--doc/Sprint3.md80
-rw-r--r--doc/sprint2Retro.md12
5 files changed, 630 insertions, 0 deletions
diff --git a/doc/Sprint1-Retrospective.md b/doc/Sprint1-Retrospective.md
new file mode 100644
index 0000000..7bffde7
--- /dev/null
+++ b/doc/Sprint1-Retrospective.md
@@ -0,0 +1,220 @@
+---
+title: "Team 6 - Project Leaguer: Sprint 1 Retrospective"
+author: [ Nathaniel Foy, Guntas Grewal, Tomer Kimia, Andrew Murrell, Luke Shumaker, Davis Webb ]
+---
+
+# User Stories
+
+1) As an administrator, I would like to install and boot my own server.
+ - Alternately: As a developer, I would like a demo/testing server,
+ with a basic Rails setup.
+2) As a host/player, I would like to register and have an account.
+ - For this task, we will be creating the user registration and log
+ in capabilities for Leaguer.
+3) As a host, I would like to start a tournament.
+ - For this task, we will be creating a base tournament system for a
+ host to run.
+4) As a host/player, I would like to enter scores for players.
+ - For sprint own, the scores will be entered by hand.
+5) As an administrator, I want to specify how users become hosts.
+6) As a user I would like to see the progress of the tournament in my
+ browser.
+7) As a user, I would like a presentable homepage.
+ - For this task, we will be creating a Leaguer homepage and ensure that it
+ is pleasing to the eye and easy to navigate.
+
+# 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 |
++=========================================================+======+========+====+
+| [Learn Rails, set up Scaffolding for all Models, Views, | 8 | All | 1 |
+| Controllers](#learn-rails) | | | |
++---------------------------------------------------------+------+--------+----+
+| [Deploy rails on Luke's server](#deploy-rails) | 3 | Luke | 1 |
++---------------------------------------------------------+------+--------+----+
+| [Create log-in system back-end (verification, cookies, | 5 | Davis | 2 |
+| and redirection)](#login-backend) | | | |
++---------------------------------------------------------+------+--------+----+
+| [Create log-in system UI](#login-ui) | 2 | Tomer | 2 |
++---------------------------------------------------------+------+--------+----+
+| [Create Tournament Settings Page](#tourney-settings) | 3 | Guntas | 3 |
++---------------------------------------------------------+------+--------+----+
+| [Implement Tournament Registration and Tournament | 2 | Andrew | 3 |
+| Controller](#tourney-registration) | | | |
++---------------------------------------------------------+------+--------+----+
+| [Implement match controller](#match-controller) | 3 | Dav+And| 4 |
++---------------------------------------------------------+------+--------+----+
+| [Implement permissions system over the users | 3 | Luke | 5 |
+| system](#permissions) | | | |
++---------------------------------------------------------+------+--------+----+
+| [Create View Tournament Page](#tourney-view) | 5 | All | 6 |
++---------------------------------------------------------+------+--------+----+
+| [Create Presentable Homepage](#homepage) | 5 | Guntas | 7 |
++---------------------------------------------------------+------+--------+----+
+
+
++---------------------------------------------------------+------+--------+----+
+| Tasks Implemented and Not Working Well | Size | Person | US |
++=========================================================+======+========+====+
+| [Design and implement match score models](#match-score) | 3 | Foy | 4 |
++---------------------------------------------------------+------+--------+----+
+| [Create Admin-level Server Management Page](#srv-man) | 2 | Luke | 5 |
++---------------------------------------------------------+------+--------+----+
+
+
++---------------------------------------------------------+------+--------+----+
+| Tasks Not Implemented | Size | Person | US |
++=========================================================+======+========+====+
+| [Design/Code Scoring/Pairing Algorithms and | 5 | Foy | 3 |
+| Procedures](#score-algo) | | | |
++---------------------------------------------------------+------+--------+----+
+| [Observe Foy Design/Code Scoring/Pairing | 2 | Dav+Foy| 3 |
+| Algorithms](#score-algo) | | | |
++---------------------------------------------------------+------+--------+----+
+| [Create a Player-level Data Entry Page/Method for | 3 | Tomer | 4 |
+| Results](#data-entry) | | | |
++---------------------------------------------------------+------+--------+----+
+
+# Implemented and working
+
+## Learn Rails {#learn-rails}
+
+Learning Rails has been a growing experience for the majority of the
+team. Some of us coming from no significant experience to being able
+to put together a relatively functional product in only three weeks
+has been an impressive journey.
+
+## Deploy Rails {#deploy-rails}
+
+The entire team became familiar with deploying Rails in our rather
+diverse working environments and successfully deployed a server
+instance located at demo.projectleaguer.net as well as on our local boxes.
+
+## Login (back-end) {#login-backend}
+
+Our login back-end successfully logs users in and our and can handle
+user registrations and first-come-first-serve uniqueness validation.
+
+## Login (UI) {#login-ui}
+
+Our login user interface successfully differentiates between logged in
+and logged out users as well as between users of different
+designations (although for the demo some of the hooks were not in
+place, this has been fixed).
+
+## Tournament settings {#tourney-settings}
+
+Tournament settings were implemented at a basic level, instituting those
+items which are similar to all tournaments, regardless of type, orginating
+from the game model.
+
+## Tournament registration {#tourney-registration}
+
+Tournament registration and the tournament contoller were completed which
+allowed users to join and participate in basic tournaments of several types.
+The tournament controller handled a variety of tournament related tasks,
+including creating and updating tournaments and validating tournament related
+operations.
+
+## Match controller {#match-controller}
+
+The Match Controller creates the separate matches for a specific tournament.
+When a tournament is started, it begins with an initial match that contains
+no players. Currently, a player must join a match by entering the specific
+tournament (by clicking the 'show' button on the tournament),
+then they must enter the match (again by clicking the 'show' button but this
+time on the match they desire to participate in) and then finally clicking
+the 'join' button. This updates the match with the user as a participant in
+the matc and then finally clicking the 'join' button. This updates the match
+with the user as a participant in the match. A match can also be destroyed
+by clicking the 'delete' button on the no longer desired match on the page.
+
+## Permissions system {#permissions}
+
+The permissions system is implemented, easy to use, and works well.
+In some places, it appears to be broken (overly-permisive), but this
+is because the relevant page doesn't hook into the permission system.
+This needs to be fixed with unit tests.
+
+## Tournament view {#tourney-view}
+The view page for tournaments contains a table that lists all on going
+tournaments for all types of games. It also lists other game attribute like
+Players per team, Teams per match, whether or not teams were randomized
+and also has links to Show, Edit, Destroy, Join a particular tournament.
+A link to create a tournament is also provided. Each of the links correspond
+to view pages which are html.erb pages that provide styles and functionality
+of each of the tournament setting features. Show, Edit, Destroy, all have
+views of their own to perform each of the above actions.
+
+## Homepage {#homepage}
+The homepage is mainly controlled by the views that are associated with each
+model and controller. The main view for the homepage is the one found in the
+layouts called application.html.erb, this view is responsible for display of
+all the headings, navigation bars, forms and containers. This view page
+contains mostly links to other view pages and yields whatever the other view
+pages have to offer. The Homepage redirects to Login, Signup, See Ongoing
+Tournaments and shows the view for those models.
+
+
+# Implemented but not working well
+
+## Match score models {#match-score}
+
+This only functioned properly for noting which team would win a match. We want
+more information to be included, such as individual player scores. We also
+only had it working where the tournament host would decide who won.
+
+## Server management {#srv-man}
+
+The server management software interface is implemented, and working
+fine. The other modules use it. However, what we didn't implement is
+an actual *page* to edit these settings. We had this task in the
+iteration because other items depended on it. Though we did not
+implement the full story, we implemented the core reason that we
+wanted it.
+
+# Not implemented
+
+## Scoring Algorithms {#score-algo}
+
+Scoring algorithms was not implemented because we did not have time for
+implementing player statistics in the first sprint. There were some
+preliminary approaches, but the task lost priority and was abandoned.
+
+## Data entry {#data-entry}
+
+It was decided to not be a priority for sprint one due to time constraints.
+Also, we want to implement data entry for League of Legends through
+Riot Games (TM)'s API for grabbing match data.
+
+# How to improve
+
+Peer reviews and testing were our biggest pitfalls.
+
+
+1. All testing was just manual, in-browser testing, rather than unit
+ tests. We really need write unit tests this iteration, as we had
+ breakages where we said "this is exactly why we need unit
+ testing." However, that happened late enough in the iteration that
+ we didn't have time to do anything about it.
+
+2. That leads us into time management. Our commit activity plotted
+ against time has humps each weak, each growing a little. That is,
+ we started slow, and ended with a lot of work. This wasn't exactly
+ poor planing, but we had a poor idea of how much time things would
+ take. We plan to fix this by front-loading this iteration instead
+ of back-loading it.
+
+3. We had the approach of "show everyone everything" with peer
+ reviews, as we anticipated that this would be nescessary for
+ everyone learning Rails. However, in effect it meant that
+ sometimes information was spread very thin, or because things were
+ being done "in the open", we didn't ever explicitly review them.
+ We plan on fixing this next iteration by committing to do very
+ specific peer reviews with just a couple members of the team.
diff --git a/doc/Sprint2-Retrospective.md b/doc/Sprint2-Retrospective.md
new file mode 100644
index 0000000..9a98ec5
--- /dev/null
+++ b/doc/Sprint2-Retrospective.md
@@ -0,0 +1,215 @@
+---
+title: "Team 6 - Project Leaguer: Sprint 2 Retrospective"
+author: [ Nathaniel Foy, Guntas Grewal, Tomer Kimia, Andrew Murrell, Luke Shumaker, Davis Webb ]
+---
+
+# 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 |
++=========================================================+======+============+====+
+| [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 |
++---------------------------------------------------------+------+------------+----+
+| [Define Specific Unit Tests for Security] | 3 | All | 1 |
+| (#security-test) | | | |
++---------------------------------------------------------+------+------------+----+
+
+
+
+
+# Implemented and working
+
+## Implement Anti-spam measures {#anti-spam}
+
+To handle potential spam problems, Project Leaguer has implemented Simple Captcha
+on the user sign up page. Users must enter the correct code corresponding with
+Simple Captcha's generated image when registering. Usernames must also be unique.
+E-mail verification has been pushed to Sprint 3.
+
+## Implement Teammate Rating System (peer review view) {#peer-review}
+
+This sprint covered both the database framework and actual implementation of the
+peer review rating system. Peer review was accomplished with both server-side
+processing and client-side manipulation of the DOM via a floating tactile dragable
+info-box interface.
+
+## Design/Code Scoring/Pairing Algorithms and Procedures {#pair-alg}
+
+Several scoring algorithms were considered for demonstration purposes for this
+sprint and eventually a modified fibonachi peer review system was chosen as the
+most fair system. This was the only scoring algorithm implemented in this sprint.
+A single-elimination pairing algorithm was chosen for similar reasons (as well
+as for simplicity in SVG generation).
+
+## Implement game-type specific and tournament specific settings and preferences
+ {#setting-and-pref}
+
+The input for settings and preferences for creating tournaments are displayed
+dynamically in both the substance of the content and form in which it is displayed.
+
+## 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}
+
+We successfully parse the data we recieve from the Riot servers. The information
+is stored in a JSON hash which we separate based on the information we want (like
+kills, deaths, etc). One issue with our current pull method is that it can exceed
+the pull limit that is on our current development key. To fix this, we are planning
+on implementing a remote user id to link users Leaguer information to their Riot
+information.
+
+## Teach Andrew and Tomer AJAX {#teach-ajax}
+
+Luke instructed Tomer on his AJAX tasks, but most of Andrew's were deferred to
+sprint 3 and he focused his efforts elsewhere.
+
+## Make pages auto-update with AJAX {#ajax}
+
+AJAX was used in tournament and match views to update the tournament progress bar
+and manage input options for tournament flow but still needs to be implemented
+across the website in other areas.
+
+## Setting up a Tournament View for matches and tree {#match-gui}
+
+A new system was set-up so that matches are created from the trunk (final match) to
+the most out matches, and teams are inserted into matches starting at the leaves and
+and filling up the trunk. Any number of teams is now supported. A lot of log-based
+math was used to write the rails-generated SVG, and a lot of arithmetic was done to
+calculate the relative proportions.
+
+## 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}
+
+Settings and Preferences (those options specific to tournaments of a game type
+or a specific tournament, respectively) are handled through a single
+TournamentPreference SQL (ActiveRecord) interface.
+
+## 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.
+
+## Define Specific Unit Tests for Security {#security-test}
+
+Because of heavy "dog-food" style testing during the development process and
+fairly heavy rapid redesign, specific unit tests were not given a high priority
+for this sprint. The interdependency of components for tournament logic provided
+near-instant feedback when something was wrong.
+
+# How to improve
+
+1. We can better document our code with proper commentation and indentation. The
+team has run into issues where we've become confused with our own code and wasted
+time reviewing code.
+
+2. Our commits slowed to a halt the week before spring break. In this upcoming
+sprint we plan to take a stronger initiative and take a running start rather than
+a last lap dash.
+
+3. We can more carefully push and merge. We ran into a couple issues where team
+members broke each others work. These mistakes cost a lot of time to fix.
diff --git a/doc/Sprint2.md b/doc/Sprint2.md
new file mode 100644
index 0000000..a823600
--- /dev/null
+++ b/doc/Sprint2.md
@@ -0,0 +1,103 @@
+---
+title: "Team 6 - Project Leaguer: Sprint 2"
+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.
+
++---------------------------------------------------------+------+------------+----+
+| Task Description | Size | Person\* | US |
++=========================================================+======+============+====+
+| Define Specific Unit Tests for Security | 3 | All | 1 |
++---------------------------------------------------------+------+------------+----+
+| Implement Anti-spam measures | 2 | Davis | 2 |
++---------------------------------------------------------+------+------------+----+
+| Email Verification Option | 5 | Luke | 2 |
++---------------------------------------------------------+------+------------+----+
+| Implement Teammate Rating System (peer review view) | 5 | Guntas | 3 |
++---------------------------------------------------------+------+------------+----+
+| Design/Code Scoring/Pairing Algorithms and Procedures | 5 | D+F+A | 3 |
++---------------------------------------------------------+------+------------+----+
+| Implement game-type specific and tournament | 8 | L+A+G | 4 |
+| specific settings and preferences | | | |
++---------------------------------------------------------+------+------------+----+
+| Retrieve data from Riot Games (TM) API | 3 | Foy | 5 |
++---------------------------------------------------------+------+------------+----+
+| Parse Riot data and attach to scoring subsystem | 5 | Davis | 5 |
++---------------------------------------------------------+------+------------+----+
+| Teach Andrew and Tomer AJAX | 2 | Luke | 6 |
++---------------------------------------------------------+------+------------+----+
+| Make pages auto-update with AJAX | 5 | T+A | 6 |
++---------------------------------------------------------+------+------------+----+
+| Setting up a Tournament View for matches and tree | 5 | Tomer | 7 |
++---------------------------------------------------------+------+------------+----+
+| Increase Usability | 3 | All-L | 8 |
++---------------------------------------------------------+------+------------+----+
+| Project Leaguer Logo | spike| D+G | 8 |
++---------------------------------------------------------+------+------------+----+
+| Develop comprehensive data storage for s&p&other | 5 | L+A | 9 |
++---------------------------------------------------------+------+------------+----+
+| Create Player Profile Pages | 2 | Tomer | 10 |
++---------------------------------------------------------+------+------------+----+
+| Gravitar Integration | 2 | Foy | 10 |
++---------------------------------------------------------+------+------------+----+
+| Test it | 1 | All-L | all|
++---------------------------------------------------------+------+------------+----+
+| Peer review | 1 | All | all|
++---------------------------------------------------------+------+------------+----+
+
+Total Size of Iteration: 55
+
+ D = Davis = 10
+ A = Andrew = 10
+ F = Nathaniel = 10
+ G = Guntas = 10
+ L = Luke = 11
+ T = Tomer = 10
+
+\* `+` means those members work together, `-` means exclude following members
diff --git a/doc/Sprint3.md b/doc/Sprint3.md
new file mode 100644
index 0000000..31f505e
--- /dev/null
+++ b/doc/Sprint3.md
@@ -0,0 +1,80 @@
+---
+title: "Team 6 - Project Leaguer: Sprint 3"
+author: [ Nathaniel Foy, Guntas Grewal, Tomer Kimia, Andrew Murrell, Luke Shumaker, Davis Webb ]
+---
+
+# User Stories
+
+1) As a user, I would like the web interface to look more professional and complete.
+
+2) As an admin, I would like to have an email verification system for a more secure
+ and spam free enviroment.
+
+3) As a user, I would like intelligent error handling (e.g. 404 and 403 redirection).
+
+4) As an admin, I would like to send alerts to users.
+
+5) As a user, I would like to be able to send private messages.
+
+6) As a user, I would like a working search utility.
+
+7) As a host or player, I would like customizable settings for peer evaluation and
+ scoring.
+
+8) As a host, I would like to have multiple tournament structures and types for
+ pairing and running tournaments. (e.g. Round Robin team pairings).
+
+9) As a host, I would like to have an interface for adding tournament-specific
+ preferences (e.g. Capture the Teemo).
+
+10) As a user, I would like to view and create brackets.
+
+11) As a user, I would like the Riot API to be asynchronously polled in the
+ background so League of Legends tournaments proceed automatically.
+
+12) As a player, I would like a way to enter my usernames for several different
+ remote games.
+
+
+#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.
+
++---------------------------------------------------------+------+------------+----+
+| Task Description | Size | Person | US |
++=========================================================+======+============+====+
+| Intelligent Error Handling (404 redirection) | 3 | Andrew | 3 |
++---------------------------------------------------------+------+------------+----+
+| Search | 5 | Tomer | 6 |
++---------------------------------------------------------+------+------------+----+
+| Remote Game UserNames | 3 | Davis | 12 |
++---------------------------------------------------------+------+------------+----+
+| Email verification | 8 | Luke | 2 |
++---------------------------------------------------------+------+------------+----+
+| Alternate Scoring and pairing methods | 5 | G, A, D | 7,8|
++---------------------------------------------------------+------+------------+----+
+| Tournament preference interace | 3 | Andrew | 9 |
++---------------------------------------------------------+------+------------+----+
+| More types of seeded settings | 2 | Andrew | 9 |
++---------------------------------------------------------+------+------------+----+
+| Asynchronous Riot Pulls | 5 | Nathaniel | 11 |
++---------------------------------------------------------+------+------------+----+
+| Map out brackets scaffolding | 5 | Tomer | 10 |
++---------------------------------------------------------+------+------------+----+
+| Create braket creation and submission gui | 3 | Tomer | 10 |
++---------------------------------------------------------+------+------------+----+
+| General Interface Cleanups | 2 | Tomer | 1 |
++---------------------------------------------------------+------+------------+----+
+| Make it look professional | 3 | All | 1 |
++---------------------------------------------------------+------+------------+----+
+| Expand Peer Evaluation | 3 | G, A, D | 7 |
++---------------------------------------------------------+------+------------+----+
+| Private Messages | 5 | N, L | 5 |
++---------------------------------------------------------+------+------------+----+
+| Alerts | 3 | Guntas | 4 |
++---------------------------------------------------------+------+------------+----+
+| Project Leaguer Logo | spike| G, D | 1 |
++---------------------------------------------------------+------+------------+----+
diff --git a/doc/sprint2Retro.md b/doc/sprint2Retro.md
new file mode 100644
index 0000000..1a40bac
--- /dev/null
+++ b/doc/sprint2Retro.md
@@ -0,0 +1,12 @@
+Riot API
+
+The Riot API allowed us to pull information from the Riot servers for League of Legends
+Tournaments. For sprint 2, we were able to pull the information, but not very efficiently.
+We ran into an issue where we were making too many pull requests for our Riot developer key
+which would gave us some issues.
+
+Anti-Spam
+
+For now, the only anti-spam protection that we have is a captcha at the user creation page.
+Our hopes is to implement an email verification system in order to help further protect
+Project Leaguer from spam.