The Qt and C++ Stock Tracker I Built in University
Not a professional project, but where object-oriented programming actually clicked.
Mert Celal Yılmaz · Full Stack Developer · Updated:
The first serious desktop application I wrote in university was a stock tracker, built with Qt and C++. Qt is a C++ framework for building desktop applications, where the UI and the underlying logic live in the same codebase. Its signal-slot mechanism is how you wire interface elements, buttons, lists, forms, to the logic behind them: you define which function runs when a specific button gets clicked.
I built it during my Statistics and Computer Science degree at Karadeniz Technical University (2020-2024), for a project in an Object-Oriented Programming course. The project was a modular desktop stock tracking application; splitting classes by responsibility and applying inheritance, encapsulation and polymorphism there was the first time those OOP concepts stopped being theory and became something I had to actually get right in a working codebase.
I don't present this as professional experience, it was a university assignment. But that's where I first saw, through my own mistakes, where a class hierarchy starts falling apart and which responsibility needs to be pulled into its own class. The instinct I now use for separating layers in Clean Architecture started forming back then.
Qt's signal-slot mechanism is really a layer bolted on top of standard C++, since plain C++ has no reflection to make that kind of dynamic connection work on its own. Qt gets around that with moc, the Meta-Object Compiler, a preprocessing step that scans your classes ahead of the real compile and generates the code needed to wire signals to slots at runtime. There's also a parent-child ownership model for QObjects: attach a widget to another one and deleting the parent cleans up its children automatically, so you're not manually calling delete on every pointer you allocated.
I don't want to oversell what that project actually tested. A single-semester assignment never really puts you face to face with thread safety, memory leaks, or the performance problems a large production desktop app runs into, and Qt's ownership model already covers most of that in a simple, small-scale scenario. It's also purely desktop C++ experience, a different paradigm from the web-based CRUD work I do day to day now, so I don't present it as production experience with C++.