The CCIS Faculty Listing Project
Design and implement a web site that enables the search and update of faculty members in the College of Computer & Information Science, Northeastern University.
Important notice! On every page your program may generate, you should include the following note: "This page is generated by a class project and may contain inaccurate information."
The data
There are six types of faculty:
- regular faculty
- adjunct professors
- lecturers
- guest faculty
- co-op faculty
- faculty emeriti
For each faculty member, you should maintain the following default information:
- first name
- middle initial
- last name
- CCIS login
- phone
- office number
- year joined
- photo
- note
Besides, a regular faculty member should have:
- rank (Professor, Associate Professor, or Assistant Professor)
- Ph.D. university (from which university he or she got Ph.D.)
- research areas
The data can be acquired from the college web site
by clicking the "People" link. In particular, you can get the list of regular faculty members in the format of TAB-delimited lastname, firstname, middleinitial, and login by:
- Cut and paste the list of regular faculty members
to a file tmpfile.
- Download the Perl script divide.pl.
- On denali, run: divide.pl tmpfile regular.txt
For your convenience here is the generated files regular.txt.
Four functionalities
- Type Management
Allow the user to add/delete/rename a type.
- Single Add
Allow the user to add a single faculty member. The user should be allowed to provide all
fields. As an example, for a regular faculty member, there are three more fields than default. As another example, the user may select to upload an image file as photo.
- Bulk Add
Allow the user to select a type and upload a text file. Your program then reads the text file and inserts all data into the database. In particular, each line of the text file
should be TAB-delimited lastname, firstname, middle initial, and login.
- Search & Update
- Allow the user to select from a list a particular type or "ALL" for all types.
- Allow the user to provide other fields including name, login, phone, office number, year joined, rank, research area. Here are some notes:
- For name and research area, the user may input a sub-string. For instance,
if the user enters "database", you should find someone whose research area is
"database systems, data mining".
- For year joined, of course you need to allow the user to input a year. But
you should also allow the user to select, from a drop-down list,
one symbol out of "<", "=", and ">". For instance, the user may want to list
the faculty members who joined since 2002.
- These choices should be understood in AND relationship. For instance, this allows the user to search for a regular faculty member whose research area includes the keyword "database" and whose rank is Assistant Professor.
- The search result, if containing more than one person, should be a list of lastname, firstname, login, year joined, and type. The result should allow the user to sort based on one of the five fields. The page should allow the user to view the details of one person, which will be the same page if the search result had one person in the first place.
- The detail page of one person should show all fields of that person. Here, you should allow the user to perform updates including deleting this record or changing any field. For instance, the user can change the type of this person, can change the photo, etc. In addition, the detail page should display the email and URL of this person. The email is ccislogin@ccs.neu.edu. The URL is http://www.ccs.neu.edu/home/ccislogin.