4002-539/4004-739 - Fall Quarter (20051)
Due Sunday, October 23rd, midnight
On-line polling TNG.
- Your second project is a reinvention of the first polling application.
You will make two fundamental changes to the application. First,
instead of using text files, you have to use tables in your mySQL
this version will support on-line (web) creation, modification
and deletion of polls by authorized users. You will use the mySQL
database to maintain a list of administrative usernames and passwords
- Installation and submission:
- The path to your project on vega: ~abc1234/pfw/project2/
- The starting point for your project: index.php
- Submit scripts to the dropbox in your course's FC conference.
- In the note to which your scripts are attached, please make sure that
you provide a username and password that can be used to test your project.
- Basic functionality of the poll
- All pages MUST show within the index.php
- Home page for your e-commerce site with a current
poll (now all polls MUST have something to do with what you are selling)
in a section of the page.
- Continue working on your homepage. On the homepage, you
will include the current polls with a choice of voting or
just viewing results and a link to a list past polls. In
addition, include two RSS news feeds in another section
of this home page. The news feeds should be relevant to
your chosen site.
- Page with a list of past polls
- Past polls (assumption is that they are closed) are listed
and users can click on any poll to see the results).
- Results page
- This is php page to view the results of a poll. It displays
results the same way as the first project including count,
bar graph and percentages.
- Administrative section:
Authorized administrative users can administer polls from the web via
this interface (NOT for general, public users of the site).
- authenticate yourself
- Users must login and their username and password
are checked against a database of users. Only after
sucessfully logging in can they access the admin
pages. Use session variables to enforce this.
- administrative functionality
- add a new current poll
- The user can specify a new poll as the current
poll. It will replace the current poll, if
any, which be added to the list of previous
- delete a poll
- Delete any of the polls but, be careful not
to allow a user to delete the current poll.
There should always be a current poll on the
- modify a poll
- Give some thought to this. Should you be able to
modify a poll that is over? How about the current active poll?
You may want to use the field in the polls table for whether
a poll is active or not to make your policy easier to implement.
- make a poll the current poll
- select a poll as the current poll. There
should only be one current poll at a time.
If another poll is the current poll, selecting
a new one as the current poll effectively moves
the current poll to the past, closed polls category.
- embedding in your web site
- continue to build the web site for your
- Incorporate RSS feeds about your topic from
other web sites/blogs
- Here is a suggested
approach to the tables for the projects:
- ❑ polls
- poll ID (unique) (INT)
- poll name
- is the poll active?
- poll question
- ❑ choices
- Each poll can have 2 or more choices. All the choices
for a poll are listed here and linked to the poll by the
- pollID (INT)
- votes (INT)
- ❑ users
- user ID (unique) (INT)
- username (unique)email
- privileges (this is optional)
Some Ideas (if in doubt, ask):
Web-based site registration with different users have different privileges
For example, you may want to have only one or two users
who can set the current poll or change the current poll
(or delete a poll) but lots of users who can make new polls
- maybe as a way of letting registered users of your site
suggest new polls. (think of different levels of users)
Note on registration of new users: If you have a web interface for registering users,
you will probably need a system of privileges so
new users start with the lowest privileges until granted more by the honcho.
This will be useful in the final project so doing this will put you ahead of the game.
Be Creative: Think of neat stuff that your site needs! (Be sure to list the extras in your post to the drop-box.)
Here are some functions and tips that you may find come in handy:
- Use the design of the tables to make it easier to code.
The most essential element of the project is scripts
that work properly and functionality that matches the requirements stated
- ❑ 70% Functionality (does it work?)
- ❑ 10% On-going development of your web-site
- ❑ 20%Code quality and quality of design
Note: Meeting the requirements is a B.
|| ©2003, 2004 Information
Technology Department, RIT