Project 2

4002-539/4004-739 - Fall Quarter (20051)

Due Sunday, October 23rd, midnight
Project 2:
On-line polling TNG.


  • Description:
    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 database. Second, 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 polls.
        • 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 home page.
        • 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 topic
      • Incorporate RSS feeds about your topic from other web sites/blogs
  • databases:
    Here is a suggested approach to the tables for the projects:
    • ❑ polls
      • poll ID (unique) (INT)
      • poll name
      • description
      • 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.
      • pollID (INT)
      • pollchoice
      • votes (INT)
    • ❑ users
      • user ID (unique) (INT)
      • username (unique)email
      • password
      • email
      • privileges (this is optional)
Extras (examples only) 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 above.

  • ❑ 70% Functionality (does it work?)
  • ❑ 10% On-going development of your web-site home page
  • ❑ 20%Code quality and quality of design
Note: Meeting the requirements is a B.

    You must exceed the requirements non-trivially to get an A.

    Due date: Sunday, October 23rd, midnight 10% per day late.


©2003, 2004 Information Technology Department, RIT