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.
- Host: GitHub
- URL: https://github.com/vickshan001/catshop-java-multi-client-retail-system
- Owner: vickshan001
- Created: 2025-03-29T19:01:19.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-29T19:20:37.000Z (about 1 year ago)
- Last Synced: 2025-03-29T20:24:22.244Z (about 1 year ago)
- Topics: eclipse, github-integration, java, javaproject, junit, multi-client, oop, retail-system, uml
- Language: Java
- Homepage:
- Size: 9.26 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
---