CS 418/518 - Web Programming
Spring 2014: Tues/Thurs 9:30-10:45am, E&CS 2120

Print - Admin



  • Dr. Michele Weigle
  • mweigle at cs.odu.edu
  • E&CS 3214
  • Office Hours:
    MW 9:30-11am
  • TA: Sawood Alam
    salam at cs.odu.edu




Useful Links

Project 4: Images and Searching

Assigned: Tuesday, Apr 1, 2014
Status Report: Thursday, Apr 17, 2014
Due: Thursday, May 1, 2014 in-class demos (8:30-11:30am - final exam time)

Note edits/clarifications to requirements in red. -MCW 4/17/14


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

User Profile Management

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 - use your already established user ranking scheme)
  • 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


  • 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 didn't work in the past on weiglevm, so it is fine to just use the simple CAPTCHA from http://captchas.net.

We will discuss CAPTCHA in class on April 8.


  • Allow users to search for keywords in
    • all forums
    • single forum
  • Searches must allow full MySQL boolean operators (+,-,"", etc)
    • This just means that you should take advantage of MySQL's boolean operators. You do not need to parse the search string.
  • Show "where" result found (using breadcrumbs, hierarchy, ...)

We will discuss searching in class on April 8.

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 (Apr 17)

  • 0 or 2 points
    • you will get 0 points if you are present but don't report any progress
    • you will only get 1 point if no member of your group is on-time to class
  • Attendance is mandatory
  • 2-3 minute presentation per group
  • Slides or appropriate digital and presentable alternative
    • don't demo your system for us yet, but screenshots are fine
  • Status, problems, solutions, concepts, "to dos"

Writeup (May 1)

  • 3 points - graded by Dr. Weigle
  • Brief, but should contain how each requirement was met, design decisions, programming tricks, helpful resources consulted, division of labor and responsibilities (if in a 2-person group)
  • Provide an estimate of the number of hours worked on the project
  • In addition to the regular writeup, include a 'Final Thoughts' section where you reflect on what you've learned over the course of the semester. Also discuss things you would do differently, if any, if you were starting the project over from scratch now.

In-class demo (May 1 - 8:30am, during final exam time)

  • 20 points - TA will examine your project after class
    • 15 points - requirements
    • 3 points - usability
    • 2 points - aesthetics
  • Order of the demos will be chosen at random
    • no code is to be edited after 8:29am on May 1 (before class)
  • Demo must use the version available on weiglevm - no magic laptops!
New Demo Guidelines Below
  • Scenario: Your audience is made up of people who want to create their own message boards, but they haven't taken this class, so they don't know how to do this from scratch. Convince them that they should use your message board system for their content. Be creative. Your classmates will be voting for the best system and for the best presentation/sales pitch.
  • Make sure to emphasize the major requirements for Project 4:
    • CAPTCHA to avoid bots in user registration
    • user profile and avatar
    • listing of user's posts
    • uploading pictures inside posts
    • searching
  • Show off the major administrative features of your message board system. For instance, show how easy is it to manage users, delete posts, create new forums, etc.
  • Also show off the user features. Show how easy it is for users to create new threads, add their own comments, edit their comments, etc.
  • 7 minutes max


Project: We will assume that your project is available at https://weiglevm.cs.odu.edu/~username/proj4/

  • These URLs must 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
    • You will lose points if your URLs don't work in this manner

Writeup: Submit a hard-copy in class on May 1

  • 4 pages max, no cover page, print double-sided if possible


  • 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.