An open API service indexing awesome lists of open source software.

https://github.com/vickshan001/catshop-java-multi-client-retail-system

Java-based multi-window retail app modified in 2021 for CI553. Includes quantity merging, sorting, sounds, GUI enhancements, and JUnit testing.
https://github.com/vickshan001/catshop-java-multi-client-retail-system

eclipse github-integration java javaproject junit multi-client oop retail-system uml

Last synced: 10 months ago
JSON representation

Java-based multi-window retail app modified in 2021 for CI553. Includes quantity merging, sorting, sounds, GUI enhancements, and JUnit testing.

Awesome Lists containing this project

README

          

# ๐Ÿ›’ Catshop โ€“ Java Multi-Client Retail System (CI553, 2021)

A multi-window Java retail application enhanced for the **CI553 module** at the University of Brighton in **2021**. The original Catshop project was forked and expanded with new functionality such as product quantity merging, GUI improvements, sounds, sorting features, and full JUnit testing.

๐Ÿ”— GitHub repository: [2021-CI553-catshop](https://github.com/vickshan001/2021-CI553-catshop)

---

## ๐Ÿ“ฆ Project Overview

Catshop is a simulated retail system with multiple interfaces:

- Customer Client
- Cashier Client
- BackDoor Client
- Pick Client
- Display Client
- Collect Client

Customers can:
- Browse items by product ID
- View quantity and price
- Place or remove orders
- Receive unique order numbers
- Collect items when ready

---

## ๐Ÿ›  Tools & Setup

- **Eclipse IDE** โ€“ used after IntelliJ failed to run the provided code
- **Git & GitHub** โ€“ for cloning and version control
- **WhiteStar UML** โ€“ used for modeling Use Case & Sequence Diagrams
- **JUnit** โ€“ for automated unit testing
- **JavaDoc** โ€“ for project documentation

---

## ๐Ÿš€ Features Added

### ๐Ÿ” Merge Quantity of Same Products
When the same product is added again, the quantity increases rather than creating a duplicate entry in the basket.

### ๐ŸŽจ GUI Button Enhancements
Mouse hover effects added using `MouseListener` and button colors to improve UX.

### ๐Ÿ”Š Added Sound Effects
Custom sound class plays sounds on key interactions using a designated `/sound` folder.

### ๐Ÿ”ข Sort Basket by Product ID
Improved order display by sorting items by their ID in the `BetterBasket` class.

### ๐Ÿ—‘ Remove Button
Implemented `removeItem` functionality allowing customers to remove specific items by product ID.

---

## ๐Ÿงช Testing

- Implemented **JUnit** tests for key features.
- Verified GUI behaviors and core logic independently.

---

## ๐Ÿ“ UML Diagrams

- โœ… Use Case Diagram
- โœ… Customer & Cashier Client Sequence Diagrams

Created using WhiteStar UML.

---

## ๐Ÿ“„ Documentation

- Generated using **JavaDoc plugin** in Eclipse for method-level documentation.

---

## ๐Ÿ‘จโ€๐Ÿ’ป Developed By

**Vickshan Vicknakumaran**
CI553 โ€“ Software Development Practice
University of Brighton | 2021

---