A desktop application for managing a library, developed with C++ and Qt.
- Display all books in table and list views
- Add, update and delete books
- Search books by title
- Filter books by title or publication year
- Sort books by title, author, or publication year and genre
- Undo the latest add, update or delete operation
- Generate a report grouped by genre
- Add books to a shopping cart
- Generate random cart contents
- Empty and export the shopping cart
- Synchronize multiple cart windows using the Observer pattern
- Store books in a text file
- C++
- Qt Widgets
- Object-oriented programming
- Layered architecture
- Repository pattern
- Observer pattern
- Command pattern for undo operations
- File persistence
- Polymorphism
- Input validation
- Automated tests with assertions
domain– book entityrepo– in-memory repositoryrepoFile– file-based repositoryRepoMap– map-based repository implementationservice– business logicvalidator– input validationundo– undo actionscos– shopping cart functionalityobserver– synchronization between windowsgui– Qt graphical interfaceteste– automated tests
- Install Qt and Visual Studio with the Qt Visual Studio Tools extension.
- Configure a compatible Qt kit in Visual Studio.
- Open
Lab13-14.slnx. - Build and run the solution.
The application loads and saves books using carti.txt.
Completed academic project developed during the Object-Oriented Programming laboratory.
