Apprentice

Apprentice

Cancelled

Job Description

Summary

This project requires developing of a prototype of a technological solution which utilizes servlets, database and AJAX technologies for building multi-tier Web applications.

• The report is to describe the design of a simple auctioning system with a backend database and a Web front-end (mini-eBay) and its prototype implementation.

• The software development is for a simple auctioning Web site which features database backend, synchronous and asynchronous operations and operates using standard browser only. It can be developed on a different level of sophistication, depending on the personal preference of the students but must utilize synchronous server-side processing of customer registration and bidding (using Java servlets or JSP, with a JDBC connection to a database) and asynchronous client-side updating of the status of the auction (using JavaScript and AJAX technology).

Tasks

1. Design the architecture of a Web auctioning site.

2. Design a database for storing information about users, items, auctions and bidding.

3. Build a Web site for setting-up and maintenance of online auctions for selling items, utilizing synchronous server-side Java Web technologies.

4. Extend the client with an AJAX layer which allows one or more asynchronous operations.

Deliverables

1. Written report in Word format
2. Web application written using HTML, JavaScript, Java servlets/JSP and Access/MSSQL/MySQL and submitted on CD during the demonstration.


Requirements

1. The written report does not have fixed structure, but can provide information on the following issues:
• Database design (using a class diagram, or ER diagram, or data diagram, or SQL DDL script)
• Web site design (using UML State Transition diagram or a simple page navigation map)
• Program description showing the flow of events during bidding (using UML sequence diagram)
• A full walkthrough of the working with the system (set of screen dumps)
• The software deployment (servers, libraries and application components installation and configuration)

2. The database for storing auctioning information should be build using an ODBC database such as MS Access, a native Java DB such as Derby, or a standard SQL DB such as MySQL. It should contain at least 4 tables for storing the description of auction items, personal information about the bidders and operational information about the past, ongoing and closed bids (USER, ITEM, AUCTION, BID).

3. The auction site should be built using HTML, CSS, JavaScript and Java/JSP. It may combine static and dynamic pages for the synchronous operations as necessary. It can also utilize the AJAX technology in one or more asynchronous operations. The minimal functionality of the site required includes cataloguing of an item, setting of a new auction and bidding for an item in an auction. Additional functionality can include user registration, access control and historic or statistic reporting.

• The static Web pages can be build using HTML/XHTML/DHTML and CSS. The Web site can contain 5-12 pages for supporting the synchronous or asynchronous operations as needed.
• The Web site must contain at least 5 servlets/JSPs to allow registering items (CatalogueItem), creating auctions (CreateAuction), searching for auctioned items (SearchItem or SearchAuction), watching auctions (WatchAuction), and bidding: (Bid). You may use either servlets or JSPs for dynamic server-side scripting.
• The AJAX functions must support one or more of the following additional functionality: – autofilling of the registration forms (when setting up of an new auction or starting to watch an existing auction), alerting about the end of an auction (when the auction is closed or the time expires), alerting about the new bids in an action (when new bid is entered) and updating of the current highest bid for a watched auction (when the new bid exceeds the previous highest bid). The asynchronous operations would be triggered by the following events: NewAuction, NewWatch, NewBid, EndOfBidding. The implementation of the AJAX engine must be generated by corresponding JavaScript scripts, embedded in the dynamically generated HTML and must utilize the JavaScript HTTP and XML objects for asynchronous event processing.

---
Skills: servlets, design, dhtml