Due: Monday, December 1, 2008
Design a "Money Tracker" website for keeping track of your expenses on a daily/weekly basis.
This assignment will serve as a "capstone" project for this class. All of the code must be your own, including the style sheet.
Functionality of site:
- The site must allow a user to enter in values for amounts of money spent during a day.
- It should include appropriate categories to help college students track their expenses; the categories should include some with useful menu options, radio buttons, or check boxes.
- Users should be required to enter their name and email address the first time they enter the site; thereafter, they should be required to enter their name only.
- Whenever possible, data entries should be checked to see if they are valid entries, e.g., correct email address or numbers only for amounts.
- A display should be included that shows the total amount spent for each day of the week already entered and the "Total so far."
- Users should choose the day of the week before entering data.
The corresponding weekday on the week's display should be highlighted in some way to indicate the "current" day. - As the user enters data in each field, the "Total for the day" should be updated automatically to reflect the current total.
- The site should support multiple users.
- Possible extras:
- Email reminders should be scheduled to be sent to the user for the next day's entries.
- Users can go back and add other entries to a previous day.
- Include an "Average expenses for the month" and "Average expenses for the year" display.
Site Design Requirements:
- The site should make effective use of the CSS box model.
- The site should include images in some capacity - either as background, icons, buttons.
- The site must be as accessible as possible, given there is an AJAX component to it.
- The site should be clean and professional, as far as the look and feel of it.
Coding Requirements:
- The site must conform to strict XHTML and valid XML.
- The site should make use of the DOM when involving dynamic content.
- The site should be set up as an AJAX site.