| |
CS290I - Scalable Internet Services and Systems
|
| |
|
Thorsten von
Eicken - UCSB - Winter 2002 |
Handout #3 -
Project 2
Due Friday, February 8th
Important:
- A lot of resources are
available on-line and in the library. It is great to use these, but please
always cite them in your projects.
Objective
In this project you get to learn Java Servlets
and, if you choose to, WebMacro. Your task is to build a site that displays the
data you gathered in project 1. In project 3 you will add dynamic
activity to the site in the form of live auctions.
Additional information
See the course web page for:
- Documentation
- Instructions on installing apache, java, etc.
- Instructions on creating charts in Java
Set-up
| You will have to run your web
server on one of the course machines other than bugatti: bentley,
daimler, or lotus (bugatti will continue to run the database,
which you need to use remotely). To spread the load evenly, please use the machines
according to the table at the right as much as possible.
Note that the home directories on these
machines are on the local hard drive and not on the regular NFS file server.
This is because we will disable NFS for project 4 so that we will not get
performance interferences. You must install the web server
software locally or it will all cease
to work at that point. You may load the servlets from your NFS home
directory for now to make editing easier, but you will have to copy them
to the local drive for project 4.
| |
| bentley |
daimler |
lotus |
| user id |
ports |
user id |
ports |
user id |
ports |
hongwei
guopan
adityat
fliu
hsun
unj
jsong110 |
X001
X002
X003
X004
X005
X006
X007 |
liling
gurun
hailling
stevem
jclark
holm
jorgen |
X009
X010
X011
X012
X013
X014
X015 |
nearchos
jinye
ying
suqian
yongbo
zaera
gilad |
X018
X019
X020
X021
X022
X023
X024 |
|
When you run your own copy of apache, you will need to use
a port other than the customary port 80. Use port 80XX according to the above
table. You also need a port for the servlet engine: this is used for the
communication between apache and the servlet engine. Use port 90XX for
that.
Web pages
You need to implement a web site that features the
following main pages:
- Home page with search fields:
- Visually appealing page, list your name
and reference the course, and briefly describe the data available on
your site.
- Show the top 10 items by highest bid
(sort in descending order), present the items in a format similar to the
item results page, see below
- Include a search field in which one can
enter a key word for an item name (auction.name field). Show the result
in the item search results page.
- Include a second search field in
which one can enter a user id (users.id). Allow the use of "%"
as a wildcard in the search. Show the result in the user search results
page.
- Item page
- All information in the database for one
item, including name, small image, seller, price, etc.
- Include a table with the bid history on
this page (i.e., the bid history is not on a separate page)
- Provide links to other pages (e.g. user
page) as appropriate
- User page
- All information in the database about a
particular user (i.e. users table entry)
- Table of all items for sale by this user,
with appropriate links to the items
- Table of all bids made by this user, with
appropriate links to the items
- Item search results page
- Show 20 items at a time of the search
results
- For each item show at least name, seller,
seller rating, image, buy price, ending time, number of bids
- Link to the appropriate other pages
- Show a navigation bar allowing the user
to go to: the previous results page, the next results page, results page
1, page 2, ... page N
- User search results page
- Show all the search results
- For each user show at least id, full
name, rating, number of items for sale, number of bids
- Links to the user pages
- You may either show all users at once, or
include a navigation bar as for item search results page
Notes:
- All web pages that show data contained in the
database must be generated dynamically, i.e., it is not acceptable to generate
static HTML at server start-up and then serve these static pages.
- The requests for the images must be served
straight out of the database/memory, do not write any images to files and
then serve the files.
- Do not use frames! If you want consistent
headers, footers, menu strips, etc, use tables for formatting, and use
includes to pull in the common elements.
- You will need pages in addition to the above,
especially for error handling.
- Format all times/dates as absolute values
(for example, "1/31/2002 10:54:00"), not as relative to the
current time (no "this bid expires in 5 hours").
What to turn in
Write a "two page" project overview
describing the overall structure of the servlets and a complete list of all
pages of the web site. For each page, describe the contents briefly (1 line),
and list which other pages it links to. In essence, this is a flow chart through
your site.
Bring a printed copy of the above overview and
flow, and a listing of the servlet(s) (and templates, if you're using webmacro)
that display the user search results page to class on the due date.
Grading criteria
- Site usability
- ease of navigation
- presentation
- usability of search
- error handling
- Correctness
- correctness of links, etc.
- correctness of data presented
- error handling
- Source code
- design and architecture
- clarity