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

Announcements

Staff

  • 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

Schedule

Syllabus

Useful Links

Project 2: Expanded Message Board Features

Assigned: Tuesday, Feb 11, 2014
Status Report: Tuesday, Feb 25, 2014
Due: Tuesday, Mar 4, 2014 - in-class demos

Description

The assignment asks you to build upon the basic message board that you built for Project 1. This version requires several additional features, including roles (admin, moderator, etc.), thread support, multiple forums, and pagination.

Roles

Users can now have roles, which are separate from a user's identity

  • admin: superuser for the message board -- if there is a function that is possible to do through your web interface, then admin has that capability
  • moderator: less powerful than the admin, but more powerful than regular user (separate moderator functionality will arrive later)
  • other users may have admin or moderator roles
  • TA = admin, mweigle = moderator

User Login

Note: Is it your design decision whether or not to allow unregistered users to view messages on your message board.

Use cookies and sessions for user login, including either a "remember my user ID" or "stay signed in" option when logging in

  • "remember my user ID" - saves only the username, user must re-enter their password to login again
  • "stay signed in" - keeps the user logged in, the server will send a cookie to the client so the user will automatically be logged in if they return to the message board in, say, 5 minutes (a real value would be longer)

Examples:

Attach:remember-userid.png?Attach:stay-signed-in.png?

Thread Support

A thread is a message and all of its associated replies (and replies to replies to replies...). A new thread is started whenever a user posts a new message that is not in reply to a previous message. There are many different display models possible.

List of Threads in a Forum Examples:

List of Messages in a Thread Examples:

Multiple Forums

A forum is a sub-topic relevant to the entire message board (e.g., separate forums for "Good Eats" and "Recruiting" on the LSU sports message board).

Pagination

Separate the display of messages into pages based on the administrator's setting of number of messages per page. See threading examples for pagination examples.

Requirements

Roles

  • Admin must have its own interface/page from which to perform message board functions
    • does not preclude context-sensitive functionality elsewhere in the message board, but there must be an "admin home page" from which all message board things are possible
  • Admin(s) can add/remove admin or moderator roles to other, existing users (implies the ability to list all valid users)
    • message board can have 0 moderators, but must always have at least 1 admin
  • Each user's role must be visually displayed for the user and all other users to see (for example, on message posts)

User Login

  • Users have either a "remember my user ID" or "stay signed in" option when logging in. It is your design decision as to which to use.
  • Explicit "log out" function that terminates the current session and all cookies

Thread Support

  • Choose and implement a style for the display of threads and messages.

Multiple Forums

  • Your message board must support multiple forums.
  • Administrator can add and delete forums - "/" changed to "and" for clarity -MCW 3/7/14

Pagination

  • Users must have ability to paginate through a forum.
  • Administrator sets how many messages, or replies, to view on a single "page" by default (default = 5). You may allow the user to change this value. - "/" changed to "or" for clarity -MCW 3/7/14

Grading

In-class status report (Feb 25)

  • 0 or 2 points
    • you will get 0 points if you are present but don't report any progress
  • 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 (Mar 4)

  • 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) - "/" changed to "and" for clarity -MCW 3/7/14
  • NEW - include description (or picture) of your database design

In-class demo (Mar 4-6)

  • 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
    • everyone should be prepared to demo on Mar 4
    • if you do not demo on Mar 4, you will demo on Mar 6
    • no code is to be edited after 11:59pm on Mar 4
  • Demonstrate all of the required features of your system
  • Show any 'extras' that you have done
  • Tell us the division of labor (who did what)
  • Demo must use the version available on weiglevm - no magic laptops!
  • 5 minutes max - practice your demo ahead of time

Grades should be available within one week

Submission

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

  • 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 Mar 4

  • 1-2 pgs max, no cover page
  • if 2 pgs, print double-sided if possible

Recommendation

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