Updated July 2, 2010:
During this activity, students should be able to:
This activity helps students develop the following skills, values and attitudes: ability to analyze and synthesize, capacity for identifying and solving problems, and efficient use of computer systems.
This activity must be solved individually or in pairs.
Write a web application that facilitates the administration of soccer pools. The application must be developed using Ruby on Rails. The model must be implemented using ActiveRecord over a relational database. The user interface must be intuitive and easy to use.
The application must implement the following use cases:
The administrator, after being authenticated, enters all the matches that will be considered during this new pool. Only the name of the two soccer teams must be specified for every match. From this moment onwards, users can enter their picks. A new pool cannot be opened until the previous one has concluded.
The administrator, after being authenticated, closes the current pool. Only open pools can be closed. No one can enter or modify picks from that moment onwards. This operation should be carried out before the first match.
A user creates an account. The system requests a login and password. The login should be unique. From this moment, the user can enter or modify his/her picks as long as the pool is open. Al users start with a zero points score.
A user, after being authenticated, enters his/her picks as long as the current pool is open. For every match, the user must specify who he/she thinks will win, or if it will be a tie. Users may modify their picks as many times as they wish as long as the current pool is open.
The administrator, after being authenticated, enters the final results for each match (who won or if it was a tie) of the current poll (which must be closed). All the users that entered their picks must get their scores computed, obtaining one point for every match result correctly guessed. From this moment, the poll is considered concluded and a new poll can be opened.
Any person can review the results of all concluded polls. The results must appear in a table like the following one:
User | P1 | P2 | P3 | P4 | Total |
angie | 4 | 3 | 4 | 5 | 16 |
bobie | 4 | 2 | 3 | 6 | 15 |
malena | 5 | 3 | 0 | 2 | 10 |
kika | 3 | 2 | 0 | 2 | 7 |
hippo | 1 | 0 | 0 | 1 | 2 |
For each user, the score obtained for each concluded poll is displayed (P1, P2, ...). The total sum for each user must appears at the very last column. The rows must be sorted in descending order by total sum.
Every class and public method developed must be adequately documented
using the rdoc
utility.
HTML documentation must be generated using rdoc
.
Place in one ZIP file called soccer.zip
all the contents of
your project and deliver it using the
Online Assignment
Delivery System (SETA). No assignments will be accepted through
e-mail or any other means.
IMPORTANT: All the Ruby source files must include at the top the authors' personal information (name and student id) within comments. For example:
# ITESM CEM, July 7, 2010. # Ruby Source File # Activity:: Soccer Pool # Authors:: 456654 Anthony Stark # 1160611 Thursday Rubinstein . . (The rest of the program goes here) .
Due date: Wednesday, July 7.
This activity will be evaluated using the following criteria:
-5 | The program doesn't contain within comments the authors' personal information. |
---|---|
-20 | Rdoc generated HTML documentation is incomplete or absent. |
DA | The program was plagiarized. |
20-50 | The program doesn't work, but it seams that some significant amount of time was spent in it. |
60-90 | The program works, but has some flaws. |
100 | The program works as requested. |