| |
CS290I - Scalable Internet Services and Systems
|
| |
|
Thorsten von
Eicken - UCSB - Spring 2001 |
Handout #4 -
Project 2
Due Thursday, May 3rd
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 the following project you will add dynamic
activity to the site in the form of stock trading.
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 |
ashish
cdxiong
esben
hugh1su
icicle00
jyzhou
kuschner
ljmiller |
X001
X002
X003
X004
X005
X006
X007
X008 |
ljosa
longjiao
madhavan
phanse
ranjan
srsiva
suny
sverma
sxs |
X009
X010
X011
X012
X013
X014
X015
X016
X017 |
vishal
vivek
vveytser
wenye
wminghao
yingf
yjpark
ynshenoy
zhp |
X018
X019
X020
X021
X022
X023
X024
X025
X026 |
|
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.
- Include a link to the company listing.
- Include a search field in which one can
enter a ticker and arrive at the corresponding company page.
- Include a second search field in which
one can enter a partial word and arrive at an intermediate search
results page with links to the pages of the companies that include the
search term (i.e. you need to search in the companies.name
field).
- Company listing
- Names and tickers of all companies and
links to each company page
- Company page
- Overview data collected about the
company, e.g. business description, current market cap, outstanding
shares, current price, etc...
- Buttons, links or drop-down menus to
display charts, provide the following features (be
creative, see financial sites for inspiration):
- Ability to select the date range and granularity of stock price charts
- Text field to enter additional ticker
symbols (space or comma separated) to plot on the same chart
- Ability to choose chart type
(absolute/relative/tabular)
- Absolute chart
- Plots the stock price (top Y axis) and
trading volume (bottom Y axis) of one or
multiple stocks over a selected date range and granularity
- For each time unit (day/week/month) plot
an error bar showing the low/high/close price
- Always plot split-adjusted prices and
volumes (i.e.
prices/volumes relative to the current number of outstanding shares)
- If possible, place a marker at stock split dates
- Provide fields to change the date range
and granularity
- Provide links back to company page, home
page, etc...
- Relative chart
- Same as absolute chart, except that the
price of each stock is defined to be "100" on the first date
the stock is plotted and all other dates are normalized to that
- No trading volume is plotted
- "Tabular" chart
- Same as absolute chart, but display a
table with low, high, open, close, split-ratio, and trading volume for each day in the
date range (the granularity is always a day)
- Split-ratio is the ratio between that
day's outstanding shares and today's outstanding shares
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.
- 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.
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 absolute chart page to class on the due date.
Grading criteria
- Site usability
- ease of navigation
- presentation
- usability of search and charting
- error handling
- Correctness
- correctness of links, etc.
- correctness of data presented
- error handling
- Source code
- design and architecture
- clarity