Dog Shop

Web application written using JavaEE and JavaFX technologies. There is three parts of it: database, server and clients. It works similarly to Argos shopping system. Using a customer terminal customer searches for an item. Later he presents chosen item's ID and the quantity to the cashier. Using cashier terminal cashier checks if an item is present in the warehouse and orders to pick it up. Customer on the screen terminal sees his order status. Meanwhile warehouse worker picks the item and updates the stock using its own picker terminal. API.

Cashier terminal, showing order confirmation.
Image 1.1.2: Cashier terminal, showing order confirmation.

Image 1.1.2 shows cashier terminal after she clicked to order customer's items. Project files can be found on the following GitHub repositories: DogShop Server (GitHub) and DogShop Clients (GitHub) .

Reflection

Writing distributed web application is not an easy task, especially if you do not have any experience. That's way DogShop was even bigger challenge than a Squash . Nevertheless, I managed to complete it in a reasonable time and learnt lots of new things. For example, I gained better understanding about software's three tier architecture and how different components fit together, that is database, server and the clients. Learnt about Java EE (Oracle Docs) mainly its three major components:

In addition, CDI (Oracle Docs) , RESTful (Wikipedia) web services and WebSocket (Wikipedia) are not a foreign terms anymore.

What else needs to be done?

Many things. DogShop is far away from being in production. First of all, it doesn't have code for dealing with exceptions. Second, testing has to be more throughout, at the moment only basic functionality has been tested. Third, code especially on client's side has to be refactored and documentation added. Lastly, RESTful API needs improvement as well.