The project of
Basics
· SEASnet Machine, Database, and Port Assignments
DB2 references
Java references
· JavaTM 2 Platform, Standard Edition, v 1.4.0, API Specification
Servlet references
JDBC references
Your project is to build a Java-Servlet-based Web site supported by a relational database system. Your system manages all of its data at the back-end in the IBM DB2 and provides a Web interface to the users at the front-end. The project that will manage movie-related data (movies, studios, actors, etc), so eventually you will build a site similar to the landfair, national, and westholme. Each student will be given a separate new account on SEASnet machines for our class project. To obtain your account id and password, please visit Orachet Chieu. If you have access to an equivalent DB2 system and Java Servlet installation (Tomcat version 4.1.7 or higher), you may use them instead of the SEASnet system. However, please note that we cannot provide support for your own system other than the SEASnet machines, and that your project should be submitted and runnable on SEASnet machines. We cannot make any exceptions to your project schedule for problems incurred by using your own computing facilities rather than those provided by SEASnet.
We will assume that students are proficient already with UNIX, and with the Java programming language. However, please note that Java is easy to learn for the students familiar with C++. Our project requires a very limited subset of Java, so you do not need to know all the corners and tricks of Java. We expect the resources and links provided above will provide you with enough information to get you started.
Our project proceeds in four parts:
· Part 1: DB2 and Web servlet Warm-Up Part I (assigned Jan. 13th, due Jan. 22nd)
You will become familiar with the basics of DB2 and Java Servlet. You will have to create a simple table on DB2 and play with the data using DB2 command line interface. In addition, you will implement a very simple "Web site" that takes an input from the user using "forms" and return the input as the result page. We will provide a small dataset and sample code for your use.
· Part 2: DB2 and Web servlet Warm-Up Part II (Jan. 22nd, due Feb. 5th)
You will improve the servlet interface that you’ve created in Part 1 and connect it to the DB2 using JDBC. You will make a user-friend servlet interface, adding functionalities that are needed for database interaction. This is an opportunity for you to demonstrate some creativity and personal style. You will also learn how to connect the servlet interface with DB2, allowing a user to query the database through the servlet. A user of your interface should be able to execute basic SQL queries learned in Part 1.
· Part 3: Indexes and Constraints (assigned Feb. 5th, due Feb. 19th)
You will explore the effects of indexing on the performance of a database query. You will experiment with indexing on different attributes in a large data set, and report the differences in query performance. You will also add constraints in a database to check for data inconsistencies, ensuring that the data that you have is without inconsistencies. We will provide a large dataset and sample queries for your use.
· Part 4: Final Web site (assigned Feb. 19th, due Mar. 5th)
You will assemble all the parts of the class project together and form a fully-functional movie database (a la IMDB.com). Users should be able to execute various queries to find the information requested. We may choose one or two outstanding projects for demonstration during one of the discussion sections.
To accommodate the emergencies that a student may encounter, each student has 4-day grace period for late submission. The grace period can be used for any part of the project in the unit of one day. For example, a student may use 1-day grace period for part 1 and 3-day grace period for part 3. Note that even if a student submits a homework 12 hours late, he/she needs to use a full day grace period to avoid late penalty.
The submit program in UNIX allows the students to electronically turn in any type of file to the instructor.
Syntax of the submit program is as follows:
Usage: submit <class> <file1>
[<file2> <file3> …]
Example: submit cs143 Copycat.java
submit cs143 Copycat_before.html Copy_after.html
Students my implement the project individually or in teams of two. The choice is up to each student, but please keep the following rules in mind when you select your project partner:
An identical amount of work is expected and the same grading scale is used for individual and team projects. Faculty experience indicates that in general it is not necessarily easier or more productive to work in teams of two - it's largely a matter of personal preference and working style.
If you work in a team, choose your partner carefully. Teams are permitted to "divorce" at any time during the course (due to incompatibility, one partner dropping the course, or any other reason), and individual students may choose to team up as the project progresses, however students from divorced teams may not form new teams or join other teams. Put another way, if a student turns in any part of the project as part of a team, every later part of the project must be turned in individually or as part of the same team.
Both partners in a team will receive exactly the same grade for each project part turned in jointly. We will not entertain any complaints of the form "I did all the work and my partner did nothing." Choose your partner carefully!
If you work in a team, your work must be turned in jointly, as one submission. Teamwork turned in as individual work will be considered as plagiarism and handled through official University channel.
Each of you is expected to submit your own original work, or the original work of your two-student team in the project. On many occasions it is useful to ask others (the instructor, the TA's, or other students) for hints or debugging help, or to talk generally about programming strategies. Such activity is both acceptable and encouraged, but you must indicate any assistance (human or otherwise) that you received. Any assistance received that is not given proper citation will be considered plagiarism. In any event, you are responsible for coding, understanding, and being able to explain on your own or as a team all project work that you submit.
We will pursue aggressively all suspected cases of plagiarism, and they will be handled through official University channels.
If you have any questions about this policy or about the degree to which we will pursue Honor Code violations, please discuss your concerns with the course staff immediately.