You are here:   ArielOrtiz.com > Software Design and Architecture > Final Project: Soccer Pool

Final Project: Soccer Pool

Updated July 2, 2010:

Objectives

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.

Activity Description

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:

Opening the Pool

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.


Closing the Pool

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.


User Registration

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.


Entering Picks

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.


Poll Conclusion

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.


Poll Results

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.

Deliverables

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.

Evaluation

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.
© 1996-2010 by Ariel Ortiz (ariel.ortiz@itesm.mx)
Made with Django | Licensed under Creative Commons | Valid XHTML | Valid CSS