CSci 4657 Project 2 (60 points). Due Wednesday, April 27th at 11:59pm
Work in in groups of three or four.
Your task is to develop a web application for an online questionaire. For
simplicity let us assume that the set of questions is just pulled out
of the database and cannot be edited. The nubmer of questions should
be 7-12. Questions are presented to users
in groups. They should allow answers that are radio buttons,
checkboxes, pull-down menus, or text areas. At least three different
kinds must be used.
There should be at least one
place where the next group of questions depends on the answer to a
previous question. For instance, if the person answered that they are
a current student, the next questions would be different than if they
identified themselves as an alum.
Questions can be of your own design.
Answers should be validated and not accepted until problems are
fixed.
People are invited to take a survey by being sent a link with a unique
id number in the extended URL. These ids are stored in the
database, together with real names of those surveyed. The person is
allowed to submit the survey only once. However,
they can stop in the middle and save, and then come back later to
finish. The session should time out after 5 minutes of inactivity.
There should be a way for users to go back to previous questions and
edit their answers. However, the questions that lead to different
paths in the survey are not editable unless the entire survey is
started from scratch.
There must be a page that displays the summary of answers to the
questions. For open-ended answers there should be a link to see all
answers. The summary does not correlate answers (for instance, you
cannot see who answered "yes" to question 2 and "no" to
question 5, but you should be able to see how many people answered
"yes" or "no" to every question).
Technical requirements
- Your code must be well-organized and use good style. Make sure to
document your code, including information about who participated in
development of a particular feature.
- Your web site must be XHTML-valid (using strict 1.1 checking). It
should have a consistent style provided by an external CSS file that
passes CSS validation, except possibly some (documented) CSS3
features. The CSS3 features must work in the majority of browsers.
- Validate all form data, both on the client side (for user convenience)
and on the server side. Your validation should check for length of
fields (set a limit on event title length and other fields, should
check that a selected date exists and that the starting date/time is
before the ending date/time), etc. Limit tags that a user can use
in event description. Make sure your error reporting is reasonable.
- Use AJAX for page updates to avoid reloading the entire
page. AJAX must be used at least once.
Testing
- Make sure that the model, validation, and user interface are
tested. In your submission explain how you tested your web site and
provide testing code for retesting. If you would like to create
another database for testing purposes, let me know.
What to submit
- Send me (by e-mail, CC all group partners) the location of your
project in SVN; point out where the starting page is. If your
project is currently not in the dungeon SVN, please add a copy of it
there.
- In the e-mail please explain (briefly) how each requirement above
is satisfied. For many of them simple "Done" is sufficient, for
others (e.g. Ajax) explain where it is located in your web site. If
something is not finished or is not working as it should, please
mark it as such.
- Each group member should write down what they were working on. If
you would like to mention extra effort or extra contributions of one
or more group members, please do so. You may choose to report
contributions in one of two ways:
- Write it together and include it in the main submission
e-mail
- Send me separate e-mails about contributions to the
project (in that case every person comments on everyone's
contributions, including their own, separately).
Choose the option
that you are more comfortable with. If the contributions are
uneven, this will be reflected in the grade. If there is a
discrepancy in description of contributions, I will talk to each
group member while going over the code, to determine what the actual
contributions were.
Some helpful information
- Ruby
on rails guide has helpful information (but note that the
databases are on the remote server)
- You need to modify
is
config/database.yml
file. It should look like
this:
development:
adapter: mysql
database: yourdatabase
username: yourusername
password: yourpassword
host: csci4657spr11
The database information is different for every group and will be sent
to you by email.
- You will be running WEBrick server out of your rails project
directory. Go to the top-level rails project directory and type
script/server
. You should be abel to access your project
at localhost:3000
. Please let me know if anything
explodes.
This page is a part of CSci 4657
course web site.