Overview
This project is about constructing an online message board for users to post
and have discussions. This project will be heavy on simple database design
principles and writing PHP that mostly just interacts with the database.
Requirements (one student)
- Users should be able to create accounts and log in.
- Users should be able to post "topics" in a variety of Categories, each
of which might contain several "posts" or replies.
- Users should be able to reply to existing topics or edit replies that
they have already made. Editing and replying should be possible via
AJAX.
- Users should be classified as Administrators or just regular Users.
- Administrators should be able to add new Categories for users to post
in.
- The home page should list the categories (and how many topics and posts
are in each category). When opening a category, that category's page
should show topics for that category (and how many posts are in each
topic).
- Users should be able to have emoticons in their posts (that is, things
like ':)' should be converted to something like
- Users should not be able to post HTML, especially not any malicious
scripts.
- Topics should show ten posts per page with links to next/previous
pages.
Requirements (two students)
- All of the one-student requirements are required.
- Users should be able to include attachments with posts and replies.
- Administrators should be able to edit or delete anything, including
existing categories, topics, and posts.
- Users should be able to post "bbCode", e.g.
"[b]bold text[/b]" goes to "bold text",
"[url=http://google.com]Google![/url]" goes to
"Google!", etc.
- Users should be able to change their settings to view more or fewer
posts per page while browsing.
- Users should be able to change their passwords.
Requirements (extra credit)
For 10% extra credit, use a templating system for all of your output.
Instead of printing HTML straight from your PHP code, you should use templates
with a system such as Smarty or
Mustache. To qualify for this extra
credit, your PHP scripts should not contain any HTML code.
Examples
See vBulletin for
an example of a fully-featured forum site.