Desktop Java Swing storefront for PC parts with cart, checkout, receipts, and a reward mini-game.

Context
Techfinity started as a desktop commerce exercise with a strict constraint: the app had to be self-contained and work without external services. That made the project a useful way to practice how interface decisions, state changes, and transaction feedback connect inside one local application.
Build
I built the Java Swing interface around a familiar shopping sequence. Users browse PC components, add items to a cart, apply balance and voucher logic, confirm the checkout, and receive a generated receipt with a UUID-style order reference.
The implementation emphasized predictable state management. Cart updates, payment validation, and receipt generation had to stay clear so the user always knew what changed and why.
Product detail
After checkout, I added a lightweight logo-quiz mini-game as a post-purchase reward. It was a small feature, but it helped me think beyond CRUD and checkout mechanics into how a product can create feedback, completion, and delight within a simple local app.
Reflection
Techfinity was not a complex distributed system, but it trained an important foundation: user actions must move through visible, reliable states. That lesson still matters in larger systems where checkout becomes approval, fulfillment, reporting, or any other workflow with consequences.