CS 418/518 - Web Programming
Fall 2012: Tues/Thurs 11am-12:15pm, E&CS 2120

Print - Admin



  • Dr. Michele Weigle
  • mweigle at cs.odu.edu
  • E&CS 3214
  • Office Hours:
    Tues/Thurs 9:30-11am
  • TA: Harshith Bandi (hbandi)



Useful Links

Project 4: Searching and Notification

Assigned: Thursday, Nov 15, 2012
Status Report: Thursday, Nov 29, 2012
Due: Tuesday, Dec 11, 2012 in-class demos (12:30-3:30pm - final exam time)

Note changes to in-class demo below. -MCW 11/15


The assignment asks you to finish implementation of your message board. This version requires the addition of picture upload, notification emails, CAPTCHA, and searching.


User Avatar Picture Upload

Post Picture Upload

  • Allow users to upload multiple pictures with their postings
    • # of pictures per message allowed is set by the admin
    • make user earn increasing number of pictures according to status (e.g. freshman = 1, junior = 3, senior = max)
  • If the user (reader) is logged in:
    • show thumbnails of the images
    • clicking on a thumbnail brings up the full size image in a separate window/tab
  • If the user (reader) is not logged in:
    • show some indicator that thumbnails exist (i.e., placeholder thumbnail image)
    • clicking on a thumbnail “placeholder” brings up a log-in page in the same window
    • note that if you have chosen to not allow guests to read posts, this doesn't apply to you

Email Notification

  • Allow users to specify “notification” preferences on their profile management page
  • The user can specify to receive an email when:
    • a post with a certain set of keywords is made (full boolean operators)
    • any post is made by a certain user
  • The message board sends the email, along with a description of the condition that was met, and a link to the “location of interest” in the message board.


  • Registering users must solve a simple CAPTCHA in addition to the email confirmation process used in Proj3.
  • The CAPTCHA can occur anywhere in the registration process, but it is probably best to put it towards the beginning.
  • reCAPTCHA doesn't seem to work on mweigle418, so just use the simple CAPTCHA from http://captchas.net.


  • Allow users to search for keywords in
    • all forums
    • single forum
  • Allow users to search for all posts by a particular user
    • can be free text search, or pull down menu / pick box, or …
    • also provide choice between all forums or single forum
  • Searches must allow full MySQL boolean operators (+,-,””, etc)
  • Show “where” result found (using breadcrumbs, hierarchy, …)

Full Functionality

Your final message board should allow all of the functions of a standard message board. All requirements from previous assignments will be re-evaluated.

Populate your message board!

Your final message board must have some real content (not just "This is a test!" messages).


In-class status report (Nov 29)

  • Binary, either 0 or 3 points
  • Attendance is mandatory
  • 3-4 minute presentation per group
  • Slides or appropriate digital and presentable alternative
  • Status, problems, solutions, concepts, “to dos”
  • Questions for your audience

In-class demo on Dec 11 - NEW!

  • Each group will have 10 minutes for their demo
  • Demonstrate all of the required features of your system
    • Note that you should prepare a demo script, but you also may be asked to perform certain actions during the demo
  • Show any 'extras' that you have done
  • The instructor will assign 17 points based on your demo
  • Do not edit the files after 12:30pm, Dec 11 - before class

Each student will grade the aesthetic appearance of the other groups’ message boards

  • Email TA (and cc me) a score of 0-3
    • valid scores: 0, 1, 2, 3 (i.e., no decimal points)
    • you must not give every group a grade of 3 (this will be treated as if you did not submit the evaluation)
  • Each group will receive the average value (rounded up)
  • If you do not send your grades in within 24 hours, you will lose 3 points from your assignment


  • http://mweigle418.cs.odu.edu/~username/proj4/
  • These URLs will be valid for all students
    • If you are in a group of 2, only 1 URL will have the actual PHP, and the “other” URL will auto-redirect to the “right” URL
    • -1 point if "other" URL doesn't auto redirect


  • Debug within your group first, then ask for other groups to help debug your operations
  • Your status report is for your benefit and the benefit of your peers more than for me.