This project showcases real-time model serialization, UDP networking, and Qt GUI design without Qt Designer.
A Qt-based desktop app that:
- Manages customers and inventory (books and magazines)
- Records transactions with date/time and quantity
- Tracks stock availability and prevents overselling
- Displays all transactions grouped by customer using a QTreeView
- Serializes the full model to XML using
QXmlStreamWriter - Broadcasts the XML model to the network via UDP (port
50000) - Built with manual Qt widget setup (no
.uifiles) - Features: splash screen, toolbar actions, help & about dialogs
- C++17, Qt 6.6, CMake
- Object-Oriented Design with parent-child memory management
- Custom serialization (Serializer pattern)
- Qt signals/slots (Observer pattern)
- Model-view architecture with QTreeView
- Multithread-safe UDP broadcasting and message handling
- Qt 6.x with CMake support
- CMake 3.14 or newer
- g++, clang++, or MSVC
mkdir build
cd build
cmake ..
make