2025 – DUE 18 July 2025; 100% correct solutions and
explanations.
Assignment Breakdown and Development Guide
📘 1. Application Overview
You must develop two separate applications:
Application Description
Allows management of customers, items
Store (books/magazines), and recording transactions.
Application Also broadcasts the data as XML using UDP in a
thread.
UDP Receiver Receives the XML broadcast via UDP and
Application displays it in a GUI.
🛠️ 2. Development Requirements
✅ Project Setup
Use CMake for both applications.
Do not use Qt Designer – all GUI code must be written
manually.
Derive your main window from QMainWindow.
Ensure memory management through parent-child hierarchy
and smart pointers (or raw pointers with proper deletion if
using Qt parent management).
Follow the required coding standards:
o CamelCase for class names, camelCase for
variables/functions.
o Use forward declarations where applicable.
, o Use initializer lists in constructors.
o Consistent indentation, spacing, and blank lines.
️ 3. Functional Requirements per Application
📦 Store Application
Data structures to design:
Customer class (name)
Item class (name, type [book/magazine], optionally price,
quantity available)
Transaction class (customer, datetime, list of item purchases)
Purchase class (item, quantity)
GUI:
Main window with:
o Menu bar (e.g., File, Help, Customer, Item)
o Toolbar (e.g., Add Customer, Add Item, Make Purchase)
o Status bar
o TreeView showing customers and their grouped
transactions (use QTreeView and QStandardItemModel)
Dialogs:
o Add Customer
o Add Item
o Purchase Items
Item backup/restore (keep a memory backup in case of
rollback or error)
Networking: