Fernando Campos Silva Dal Maria & Rafael Fleury Barcellos Ceolin de Oliveira
This project is a comprehensive software solution for managing and organizing data. It is structured to efficiently handle various data operations and storage needs.
-
Modular Architecture: The system is built with a modular approach, allowing for easy modification and extension of functionalities.
-
Generic Classes: Utilizes generic programming to ensure flexibility and reusability across various components.
-
Robustness: Strong focus on reliability and stability, ensuring the system can handle diverse scenarios and data types efficiently.
In summary, this database management system project combines these three core attributes to provide a solution that is not only powerful and reliable but also flexible. It is designed to cater to a broad spectrum of data management requirements, making it a valuable tool for various industries and applications.
Data Manipulation and Retrieval: Facilitates the creation, reading, updating, and deletion of data entries.
Compression Algorithms: Implements Huffman and LZW algorithms to optimize data storage space.
Pattern Matching: Includes advanced search algorithms like Boyer-Moore, Knuth-Morris-Pratt (KMP), and Rabin-Karp for efficient data retrieval.
Security Measures: Features RSA encryption to enhance data security.
Indexing and Sorting: Offers a variety of methods for indexing (hash, trees, query-based) and sorting data for efficient access and organization.
Error Handling: Robust error handling mechanisms are in place to manage various exceptions related to database operations.
User Interface: Provides a user-friendly interface with various menus for easy interaction with the database system.
Data Backup: Supports data backup in different formats (Huffman, LZW) ensuring data integrity and recovery.
File Management: Includes utilities for handling CSV files and managing different data structures.
Testing Suite: Comprehensive test cases are provided to ensure the reliability and stability of the system.
The project is organized into several directories:
crud: The core of the application, containing all the logic for data operations, compression, pattern matching, indexing, sorting, and error handling.
data: A directory for storing database files, configuration files, and backups.
utils: Utilities for supporting operations like file management and data structure handling.
err: Dedicated to managing various exceptions and errors that might arise during database operations.
layout: Contains components related to the user interface, such as menus and responses.
logic: Hosts the main logic behind the system's operations.
test: Includes test cases to ensure the functionality of all components.
To use this project, navigate through the directory structure to access different functionalities. Each directory and its subdirectories are well-documented, allowing for easy understanding and modification of the code.
Contributions to this project are welcome. Please ensure that any changes are well-documented and tested before submission.
This project is licensed under the terms included in the LICENSE file.