COP4710 Fall 2009 Final Project

An Online Enterprise Management System

Due: 11:55pm, December 4, 2009 (Friday), project report and code should be submitted by this deadline. A demonstration of your system will be scheduled during the week of 11/30/09-12/04/09. Exact date of the demo will be announced later.

 

Sample system: an online bookshop. You can find an introduction and all the code.  

An Introduction to using JDBC in netcluster and sample code.

  

Introduction

In this project, you are expected to design and develop an online enterprise management system with non-trivial functionalities. You can choose whatever enterprise you want to support, and we tend not to provide detailed specifications. However, as a guideline for grading, we do expect the following features from your system:

  1. Your system should be backed up by a database built under a DBMS such as Oracle;
  2. Your system should have a text-based or web-based interface to interact with a human user;
  3. You should support some application logic written in a general programming language.

More specifically, we want to see the following features in your system:

  1. A database that consists of at least three relations, and you should load the tables with some data (you need to either make up some data or borrow data from other sources with permission from the data owner); 
  2. At least eight different types of queries (in terms of SQL statements) should be supported by your system. You must have some queries that can modify the content of your database; 
  3. A text-based (or web-based) interface with at least three different appearances (or web pages);
  4. Usage of JDBC/ODBC to connect to the database and send in queries;

Accomplishment of all above four features will guarantee you a high B grade (i.e., > 80% of total points) in the project (assuming you do an OK job in the demo and the report).  To get a higher grade (up to 110%), you can implement the following extra functionalities:

  1. Create users for your system, assign userID/password to them;
  2. Create views for your database, assign different privileges to different users;
  3. Using stored procedures/functions to process application logic on the database side;
  4. Using client-side scripts (e.g., JavaScript) to process application logic;
  5. Any other features that are relevant to the system.

Getting Started

If you feel uncomfortable designing a non-trivial system from scratch, you can find several sample projects from here. In fact, we strongly recommend you follow the design of one of the examples in that document and code up any functionalities you like. We will also post several successful projects from previous semesters. 

Environment

In this project, you choose the platform to work on and show the demo. The most successful demonstrations from previous years were done in standalone machines (e.g., a laptop) where students installed their own DBMS and application servers. I suggest you follow that strategy - by that you are not vulnerable to all kinds of problems caused by sharing a server with other (inexperienced) users.  

On the other hand, you can also use the Oracle server at netcluster.csee.usf.edu that has been running for a while. The server has JDBC driver loaded therefore you can start communicating with the database with minor changes in your client machine environment. We will post instructions on how to enable JDBC from a client machine shortly. For those of you who choose to write dynamic pages (e.g., using JSP/ASP), you probably have to set up your own application server. 

Deliverables and Grading

You are required to show the functionalities of your system in a 10-minute demonstration. You also need to finish a report describing your design and the main functionalities. You are encouraged to paste sample code to the report to explain your implementation. A sample report can be found here. We also need you to submit all code (JSP, html, Java, procedures, SQL statements …) you wrote for this project. To be specific, you are required to submit two files: one containing your report and another compressed file containing the code. For the latter, you should put all the code files into a folder and compress that folder into a file named proj4-xxx.tar or proj4-xxx.zip where xxx is the NetID of one of the group members. One submission is sufficient for each group. 


The project will be graded based on the functionalities implemented (70%), the quality of the demonstration (20%), and the content and format of the project report (10%). We will set up a time for the demo session such that all students can attend and grade the demos shown by other groups.  

 

Other Issues

·         This project is supposed to be finished by 3-person groups. If you choose to work by yourself or form 2-person groups, you are expected to do the same amount of work as the other groups. If you have trouble finding partners, please let me know asap.

·         Copying code from the Internet or other sources without an explicit statement will be regarded as plagiarism.

·         More messages on various technical topics will be posted. But do NOT wait till you see more of such messages. Start NOW by talking to fellow students to form a group!

·         Late submissions are still acceptable if you have free tokens left, but each day beyond the deadline will cost you n tokens where n is the number of persons in your group.