Real-world applications are often developed as a distributed application such as web browsers, video games, and electronic banking. A distributed application is a program that runs on more than one device and consists of two networking applications, namely a client application and a server application.

To implement such a distributed application, developers integrate many specifications so that they can work together. Java Enterprise Edition (JEE) is a set of specifications that contains various technologies, e.g., JPA, EJB, JMS. JEE is challenging for students to tackle because of its numerous component, their purpose, and their usage.


The purpose of this project aims to develop a distributed application, which will be used to demonstrate various JEE technologies in the context of a course. The application will be a shopping website that has the following properties:

  • A client application will be used by buyers and store owners.
  • A server application will be used by the system admin to monitor the website.
  • Users should have different login options and UIs.
  • A database will be used to store information of items, users, and stores.
  • Various functions to add, remove, alter records on the database (i.e., add a new store, change user information).
  • There should be a shopping cart that stores items before purchasing them.
  • Users can send messages to store owners.
  • A currency calculator converts all prices to the user’s local currency.

The properties are to be discussed in detail. Some functionalities can be added during development.