Skip to main content
Department of Information Technology

E-Commerce and Security - Project

Back

General

The students will be divided into project groups of size 4 or 5. Each group must select a project manager.
The group is expected to do all of the following:

  • On each project lecture, each group must be represented by at least two members.
  • Create and maintain a project web page located on the project server. This page must contain:
    • Contact info for project members.
    • All documentation for the project.
    • Weekly time report for each individual participant. The project manager is responsible for the correctness of the time report. The report should specify task and time consumed.
    • Link to the project e-commerce web site.
  • Deliver an e-commerce web site, according to specifcations.
  • Present and demo the web site.

Quick links


Introduction

Top

The goal of this project assignment is to give a taste of how to develop real-world applications as a group and how to use standard technology such as servlets, JDBC, HTML etc. For each task some research is required in order to solve it. There will often be some hint in each task description to get going and it is essential that all project members understand that much is left to the project group to solve. Important to note is that this project assignment description is in no way complete. Many important topics will be handled at the project lectures. Therefore, at least one member of each group attending these lectures.

It is recommended that all members of a project group are assigned an area of responsibility. For example, in this project there should be at least one or two persons responsible for the database you will have to use. One person should be responsible for the design of the web shop. Of course, there is a project manager responsible for getting it all done. The project group will have to work together on all areas to succeed and all member should be involved in all aspects of the web shop.

Again, this project assignment is designed to give a first hint of real world application development. This requires a lot of independent work.


General Requirements

Since the goal of this course is to let each student experience the process of creating a web shop, it is important to simulate the conditions from a real-world project as much as possible. The conditions are as follows:

Important

  • The group must elect a project manager who will be responsible for the administrative work (project page, time reports etc.) and communication with contractor. It is very important to have a good relation with the contractor so communicating all relevant events such as delays, sickness, problems etcetera, is necessary.
  • The group will have to set up a small project plan including a coarse time schedule.
  • There is an external contractor who is paying for this web shop to be created. It is very important to have a good relation with the contractor so communicating all relevant events such as delays, sickness, problems etcetera, is necessary.
  • The group must create time reports for each member of the group. This is used for virtual cost analysis. Each week the project manager will send a time report to the contractor.
  • The group will have deadlines (milestones) during this project. These deadlines is agreed upon with the contractor.

Project Web Page

All project groups must have their own web page containing contact information of all members in the group. Also this page must include the time weekly time reports. a link to the web-shop and anything else the group feels is important for documenting their approach, such as links to other web shops that is used as inspiration etc. This page must be kept alive and updated throughout the course since it will be used to monitor the group's progress.

Technical requirements

  • This project assignment must be coded in Java using Servlets or JSP (Java Server Pages).
  • All HTML-output must be valid and well-formed. This is very important in order for all kinds of browsers to function properly. You will find a HTML Validator at w3c. W3C is a rich source of knowledge for a web application developer.
  • The code must be well documented and commented.
  • You are encouraged to follow these coding conventions. This is to facilitate communication within the group and with the contractor. In the very least, all project code MUST follow a defined coding convention.

Tasks

Top

The project is divided into several tasks. Each task designed to bring you a step further to publishing a simple yet fully functional web shop on the Internet. Fortunately the project web shops will be available only within Uppsala University so no one should be worried of customer complaint when articles aren't delivered :). Be creative and try to find your unique approach.

Quick links


Task 1 - Set Up a Web Page Using Tomcat

Top

Each student will create a folder in their home directory which will be used as a deployment catalog pretty much like the public_html folder present today. The folder should be named tomcat and created in your home folder (eg for me the folder path is /home/jimh/tomcat). Your tomcat-URL will depend on which group you are in. Three tomcat servers will be running in parallel, we will disclose the user-to-server allocation after the groups have been decided (make sure to read the News section on the course page). The three tomcat servers are named http://tomcatN.it.uu.se:8080/username, where N is 1, 2 or 3.

This is an excellent opportunity to create the project web page (see general requirements)

Do the following while standing in your tomcat folder:

  • Name your page eg. index.html and copy it to the tomcat folder. This will require basic HTML skills.
  • Create a WEB-INF folder and copy this (web.xml|deployment file) into it.
  • NOTE! it may take some while for your initial deployment to activate, in the worst case 1h.

Resources

  • The Tomcat 5.5 documentation, containing how-to:s and tutorials is found here.
  • Simple deployment file to be used for the project page. Edit this deployment file.

Goal

  • A static web page with some information on it.

Examination


Task 2 - Get Familiar With Servlets

Top

Tomcat is more than a web server, capable of serving static web pages to a user. In fact Tomcat is what is called a Servlet Container. A servlet is a server-side piece of java code implementing APIs for handling HTTP requests received. A servlet will receive a request, process it and deliver a response to the calling client. The client is often a web browser such as Internet Explorer or Netscape. Since servlets are java code, any processing is possible and very complex functionality may be implemented such as database connectivity and user sessions. You will be needing this powerful tool when creating your web shop.

In this stage you should have decided what to sell and started to look around for inspiration on design. There are a lot of nicely implemented and designed web shops around the Internet:

Resources

  • Standard Directory structure, where to put what: where to put what!
  • The developer's guide to Servlets can be found here.
  • Java Servlet 2.4 API documentation can be found here.
  • This tutorial is also helpful.
  • Download the HelloClientServlet. You should compile and deploy it to get a basic understanding of how it all works. Read the tomcat documentation for details. You can use this deployment file.

Goal

  • A first front page of the web shop.
    • NOTE! it may take some while for your deployment to update, in the worst case 1h (the tomcat servers are restarted ).

Examination

  • This task should be done within the group and is part of the project. Examination is done on the entire project later.

Task 3 - Learn To Use a Database

Top

No web shop would be complete without articles to sell. In your assignment you will be needing to store your inventory of items in a persistent way. You will be using a simple SQL database, HSQL 1.8.0.2, communicating via JDBC. You will be running an in-process db, which means you will have to add the hsqldb.jar file (you will find it below) to your classpath (read the hsqldb manual). Some example code on how to use the database can be found below.

If your project doesn't specifically have articles, there is still functionality that requires the use of a database. Make the appropriate modifications to this task and continue.

This task is for getting acquainted with the basic ways of achieving this. If you already know SQL, you can concentrate on the actual implementation of the inventory.

Resources

  • Documentation of the HSQL database and how to setup JDBC is found here.
  • If you want to know more about JDBC, this is a good place to start.
  • Documentation of SQL and how use it is also found here.
  • A small code example is available to help you getting started.
  • The jar file needed to compile and run the HSQLDB is here. Download it and add it to your classpath when compiling. The jar file should be added to the deployment of the web application. Do not forget to add . to the classpath, if you only add the hsqldb.jar it will not work.

Goal

  • The task is to create a servlet displaying a text input field and two buttons. In the text field you may input any string. The two buttons are add and search. If you press the add button you will add the string to the database and if you press the search button the servlet will list all strings containing the input string. When you have done this, you will know how to perform operatations on the database using posts to submit queries to the web server.

Examination

  • This task should be done within the group and is part of the project. Examination is done on the entire project later.

Main Task - Web Shop

Top

Each project group shall implement a web shop selling commodities or services over the Internet. The structure of a web shop is fairly simple, potential customers will browse to the web shop. When arriving there they will be greeted with a first page, displaying information about what the web shop is offering.

At this stage you should have a rudimentary understanding of servlets, how to code and deploy them under Tomcat. You should be able to use the HSQL database with its JDBC driver and you should have decided on the kind of web shop you want to set up. With all this in place it is time to implement the required functionality of the web shop.

Shopping Cart

A natural feature for most web shops is the virtual shopping cart. When browsing the web shop, the customer might want to buy several articles. By adding articles to the cart, the web shop remembers them until the customer is ready to place an order. A shopping cart is a major feature that has to be implemented in you web shop. The contents of the shopping cart and the total value of all articles in it should be available on all pages in the web shop in some fashion.

Inventory

As we are implementing a web shop an inventory is needed. This inventory is stored in a persistent storage (database).
Associated with an article are some necessary fields:

  • Article number - A unique identifier for this article (e g 0032-223b)
  • Name - A user friendly name (e g mountain bike)
  • Description - A short presentation of the article (e g super high density mountain bike with titanium brakes and cream colored handles)
  • Category - If you sell a number of articles, this will be needed in order to simplify searching and listing of everything available (e g sports).
  • Picture - A picture of the article. This information is optional but extra credits to groups adding this.
  • Number In Stock - How many is in stock right now.
  • Number of booked - How many items of this article is added to a shopping cart. Useful if you want to guarantee a customer an item when he has added it to the cart.
  • Price - Important. The price of the article.

These fields should be a good starting point for your inventory. Most likely you will need more data stored for each article, depending on the level of service you want to provide and what you are selling. You should take some time and plan the structure of your database before implemeting as this may have severe impact on performance and the service you can provide.

Use Cases

There are several use cases that you must read and take into consideration, you can find them here:


Project Examination

Top

This project will be examined in two parts at the end of the course.

Project Presentation

Each group will be required to present their project on one of the "Project Investment Presentations" lectures (see schedule).
The presentation must include the detailed business plan as well as design-issues, implementation, functionality and any other relevant information. Try to make a presentation that sells your project as a reasonable investment/viable business idea.
A short demo of the website is expected in the presentation, however keep it short.
Each group has 20 minutes in total which in reality after all technical issues have been solved is closer to 15 minutes worth or presentation time.

All members of the group must attend.

Business Plan
The business plan should at least contain:

  • A rough budget
  • A projection of development
  • A market analysis, what other actors are competing on the market. What makes you better?
  • A convincing argument of why this will work/make money

Remember that one important purpose of the presentation is to convince your investors that your idea is woth investing in.

Techincal Examination

Each group will be required to sit down with the teachers and give a 15-20 min techincal demonstration of their project.
During this demonstration the project group will have to answer questions about design, functionality and security. Even though no security is required to be implemented, as a separate task all students should try to identify different security flaws in the design of their particular web shop.

To this examination each group is expected to bring (or provide a link to) a ZIP-file containing the complete project including the documentation, project presentation from earlier, and the complete project source (the entire tomcat dir preferably), in short everything concerning the project.

All members of the group must attend this examination, and all members will be required to answer questions concerning the project.

  • The schedule for when and where examination takes place for each group can be found here

Cheating

  • You are encouraged to discuss problems with other groups, however you may not hand in the same (or almost the same) code, each project should be different in a significant way to the others.
  • You are not allowed download/copy existing code except for small parts of the project. If you are the least unsure if it is ok to take some piece of code (html/style sheets/java/anything) you should consult with us to get approval.
  • Cheating is looked upon very seriously.

Updated  2006-03-20 09:05:14 by Jim Holmström.