The project is organized into several main components:
Media: Base class for all media types- Derived classes include:
Album,Movie,Series,Novel,EBook, andAudioBook - Implements polymorphic behavior through virtual methods
Database: Central class managing media collectionFileManager: Handles file I/O operationsSerializer: Manages JSON/XML serialization
- Built using Qt framework
- Features multiple specialized widgets for different media types
- Implements visitor pattern for widget creation
- Includes two search systems:
- Basic search (real-time title search)
- Advanced search (multi-parameter filtering)
- Visitor Pattern: Used for media type operations
- Polymorphism: Implemented through virtual methods
- Component-based GUI architecture
- Warning-free compilation across different Qt versions
- Responsive design with animation support
- Strict input validation
- Clear separation between business logic and presentation layer
Detailed build instructions are available in the project's build documentation. For development environment setup, refer to the Qt documentation (6.2.4 or higher). A modern C++ application to manage your media collection efficiently.
- Alessandro Morabito (2137991)
- Michele Stevanin (2101741)
Media Library is a C++ application developed using the Qt framework, designed to help users organize and manage their media files. It allows creation, deletion, and modification of music albums, movies, TV series, books, eBooks, and audiobooks through an enriched graphical interface.
- Real-time basic search on media titles (case-insensitive)
- Advanced search with multiple parameter filtering
- JSON/XML data persistence
- Rich graphical interface with animated transitions
- Support for various media types:
- Music Albums
- Movies
- TV Series
- Books
- eBooks
- Audiobooks
- Developed in C++
- Built with Qt framework (tested with Qt 6.4.2 and 6.2.4)
- Implements object-oriented design patterns
- Hierarchical class structure with polymorphism
- Clean separation between logic and UI
- Warning-free compilation
- Clone the repository
- Ensure Qt framework is installed (6.2.4 or higher)
- Build using qmake
- Run the application
- Qt 6.2.4 or higher
- C++ compiler
- qmake 3.1