summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authortkimia <tkimia@purdue.edu>2014-02-10 11:35:44 -0500
committertkimia <tkimia@purdue.edu>2014-02-10 11:35:44 -0500
commitd3fac3566f7a9c395feecbfeaf7ea223246ee0c1 (patch)
tree0eaba5a58cde9823cce953eec55f10960e7218fe /docs
parent0e79088e2d9c3b1777536e971dcc7378533e4c84 (diff)
Added some controllers
Diffstat (limited to 'docs')
-rw-r--r--docs/DesignDocument.md148
-rw-r--r--docs/Images.pptxbin44675 -> 41303 bytes
2 files changed, 66 insertions, 82 deletions
diff --git a/docs/DesignDocument.md b/docs/DesignDocument.md
index aaf42f0..d9761b1 100644
--- a/docs/DesignDocument.md
+++ b/docs/DesignDocument.md
@@ -1,87 +1,60 @@
----
-title: Design Document
-author: [ Nathaniel Foy, Guntas Grewal, Tomer Kimia, Andrew Murrell, Luke Shumaker, Davis Webb ]
----
+Design Document
Version 1.0 – 2014.02.09
-Created 2014.02.09
-
-# Purpose
+Created 2014.02.09
+
+Leaguer
+Nathaniel Foy
+Guntas Grewal
+Tomer Kimia
+Andrew Murell
+Luke Shumaker
+Davis Webb
+
+1. Contents
+1Purpose 3
+2Non-Functional Requirements 3
+3Design Outlines 3
+3.1Design Decisions and Components 3
+3.2Component Interaction 3
+4Design Issues 3
+4.1Scoring Algorithm 3
+4.2Offline Data Management 3
+4.3Fetching Data from Games 3
+5Design Details 4
+5.1Class Descriptions and Interactions 4
+5.2UML Diagram of Classes 4
-This document describes all components of the Leaguer Tournament
-management system. Leaguer is a software to be installed and run on a
-server. TODO. ANDREW COMPLETE THIS.
-# Non-Functional Requirements
-
-TODO Guntas. Email dunsmore and marco about this, then fill it out.
-
-# Design Outlines
-## Design Decisions and Components
-
-Our system will on the Model 2 design pattern/architecture. TODO:
-Davis – add the purpose of EACH component as a list.
-
-Controllers – The controllers will control any logic necessary to
-obtain the correct content for display. It then places the content in
-the request and decides which view it will be passed to.
-
-Models – The classes in the UML document below will reside in the
-model…
-
-Views – Views will be the HTML pages for Leaguer, and will display the
-users desired content inside of the web browser.
-
-## Component Interaction
-
-Controllers will be used to run all of the background work of Leaguer.
-They will fetch the necessary data and will tell the view what to do.
-We will be implementing seven controllers into Leaguer. Those will
-be:
-
- 1. PM & Alerts – This controller will be used for sending and
- receiving private messages to and from the host. Players will be
- able to message the host in order to inform him/her of anything
- during the tournament. This will also allow the host to post any
- notifications he or she desires that will be displayed for all to
- see.
- 2. Homepage – Used to handle the homepage. This will be the first
- web page seen by any user of the application.
- 3. Login – This controller will be used when a user attempts to sign
- in to their profile on Leaguer.
- 4. Search – This controller will be used to search the web-base for
- on going tournaments, players and past tournaments.
- 5. Tournament – Used for setting up a tournament. This will be
- restricted to the host of the tournament.
- 6. User – The controller that will take each user to their own
- profile.
- 7. Match/Peer Review – used for gather game statistics and the
- separate player reviews.
-
-Each of these controllers will fetch the data specified by its
-separate section. The view will then be used to display all of this
-information, so Login will take the user to a login page, search will
-take the user to a search page and so on.
-
-# Design Issues
-## Scoring Algorithm
-
-In an effort to keep our system broad, one of our requirements is that
-Leaguer is adaptable to many competitions, not just League of
-Legends. How do we assure that the different scoring systems of
-different sports are represented in Leaguer?
-
-Option 1: One of our interfaces could be “Scoring System” which will
-be implemented by many classes with common scoring systems. For
-example there would be a implementing class in which the highest score
-wins, and one in which the lowest score wins. This is likely to be the
-winning option, as there are not too many obscure scoring systems that
-we could not think of.
-
-Option 2: We could design an API in which the host writes a method to
-update the scoring. This is pretty complex, and while it would allow
-more customization, it is hard to imagine completing this task without
-first completing option 1.
+1 Purpose
+This document describes all components of the Leaguer Tournament management system. Leaguer is a software to be installed and run on a server. TODO. ANDREW COMPLETE THIS.
+
+2 Non-Functional Requirements
+TODO Guntas. Email dunsmore and marco about this, then fill it out.
+
+3 Design Outlines
+3.1 Design Decisions and Components
+Our system will on the Model 2 design pattern/architecture. TODO: Davis – add the purpose of EACH component as a list.
+Controllers – The controllers will control any logic necessary to obtain the correct content for display. It then places the content in the request and decides which view it will be passed to.
+Models – The classes in the UML document below will reside in the model…
+Views – Views will be the HTML pages for Leaguer, and will display the users desired content inside of the web browser.
+Component Interaction
+
+ Controllers will be used to run all of the background work of Leaguer. They will fetch the necessary data and will tell the view what to do. We will be implementing seven controllers into Leaguer. Those will be:
+ I. PM & Alerts – This controller will be used for sending and receiving private messages to and from the host. Players will be able to message the host in order to inform him/her of anything during the tournament. This will also allow the host to post any notifications he or she desires that will be displayed for all to see.
+ II. Homepage – Used to handle the homepage. This will be the first web page seen by any user of the application.
+ III. Login – This controller will be used when a user attempts to sign in to their profile on Leaguer.
+ IV. Search – This controller will be used to search the web-base for on going tournaments, players and past tournaments.
+ V. Tournament – Used for setting up a tournament. This will be restricted to the host of the tournament.
+ VI. User – The controller that will take each user to their own profile.
+ VII. Match/Peer Review – used for gather game statistics and the separate player reviews.
+Each of these controllers will fetch the data specified by its separate section. The view will then be used to display all of this information, so Login will take the user to a login page, search will take the user to a search page and so on.
+Design Issues
+
+Scoring Algorithm
+In an effort to keep our system broad, one of our requirements is that Leaguer is adaptable to many competitions, not just League of Legends. How do we assure that the different scoring systems of different sports are represented in Leaguer?
+Option 1: One of our interfaces could be “Scoring System” which will be implemented by many classes with common scoring systems. For example there would be a implementing class in which the highest score wins, and one in which the lowest score wins. This is likely to be the winning option, as there are not too many obscure scoring systems that we could not think of.
+Option 2: We could design an API in which the host writes a method to update the scoring. This is pretty complex, and while it would allow more customization, it is hard to imagine completing this task without first completing option 1.
4.2 Offline Data Management
TODO – Nathniel write this
@@ -98,7 +71,11 @@ Homepage: This page has 3 basic options. Visually simple – two large buttons o
Login: Page with form entries for username, password. If user clicks “new user” more forms entries will appear. One for repeating the password, and one for email. This POST to the Login controller.
-Tournament: A tree-like display of pairs of matches, where each match consists of a pair of teams. All users can click on a match to go to that match’s page. Host can see a gear on top left corner that represents tournament settings. This will open up more options for the host to change. This will POST to the tournament controller.
+newTorunament: A form that interacts with users who are either hosts or becoming hosts. This interacts with tournament controller.
+
+Tournament: A tree-like display of matches, where each match consists of a pair of teams. All users can click on a match to go to that match’s page. Host can see a gear on top left corner that represents tournament settings, it will GET the edit Tournament view. There will be an end button that will redirect to back to the homepage after posting to the tournament controller. The tournament will POST to the tournament controller.
+
+editTorunament: This view is a list of settings. Some are form entries, and some are checkboxes. More settings will be added later in develpment. This view interacts with the tournament controller.
Match: A display of both teams. Each team's players are clickable which causes a GET for the player's profile HTML. A link above both teams will GET the tournament the match belongs to. This will POST its actions to the Match controller.
@@ -108,7 +85,14 @@ UserProfile: A page with the user's information. One can view the player's revie
CONTROLLERS
-Homepage Controller:
+HomepageController: This is the main controller. It has methods showHomepage() which renders the homepage view. It has editSettings() method, that gets the current settings of the entire server, provided that the host is viewing the homepage.
+
+LoginController: This has doLogin() and doLogout(). Both have access to the HTTP requrest. It will interact with the Users model to validate passwords and usernames.
+
+TournamentController: This controller will have methods: newTorunament(), getTournament(), editTournament(), and endTournament(). All of these methods will interact with the Tournament model, and all of its fields including users matches and TournamentSettings. And all will interact with their tournament view, for example, newTournament() will render newTorunament.
+
+
+
Server: Rails’ Server class handles all HTTP events. Our Server class is the class that is the main program. It instantiates other classes, manages requests from Views, and runs static methods.
User: A class that represents someone using the Views (HTML, javascript) the user is in competitions and
diff --git a/docs/Images.pptx b/docs/Images.pptx
index 73f002d..01e8016 100644
--- a/docs/Images.pptx
+++ b/docs/Images.pptx
Binary files differ