Skip to content

Latest commit

 

History

History
65 lines (57 loc) · 1.8 KB

File metadata and controls

65 lines (57 loc) · 1.8 KB

Library Management System

Project Overview

A comprehensive Library Management System built in C++ demonstrating advanced software engineering principles including OOP, SOLID principles, Design Patterns, and clean architecture.

Features

  • Book Management (Add, Remove, Search, Display)
  • Member Management (Register, Remove, View)
  • Borrowing System (Borrow, Return, Track)
  • File-based Data Persistence
  • Advanced Search Capabilities
  • Statistics and Reporting

Architecture

  • Repository Pattern: Abstraction layer for data access
  • Service Layer: Business logic separation
  • SOLID Principles: Single Responsibility, Open/Closed, Dependency Inversion
  • Clean Code: Modular design with clear separation of concerns

Technologies

  • C++17
  • STL (Standard Template Library)
  • File I/O for data persistence
  • CMake build system

Build Instructions

mkdir build
cd build
cmake ..
cmake --build .

Run

./LibraryManagement

Project Structure

LibraryManagementSystem/
├── include/
│   ├── Book.h
│   ├── Member.h
│   ├── IDataRepository.h
│   ├── FileRepository.h
│   └── LibraryService.h
├── src/
│   ├── Book.cpp
│   ├── Member.cpp
│   ├── LibraryService.cpp
│   └── main.cpp
├── data/
│   ├── books.txt
│   └── members.txt
└── CMakeLists.txt

Key Concepts Demonstrated

  1. Object-Oriented Programming: Encapsulation, Inheritance, Polymorphism
  2. Design Patterns: Repository Pattern, Service Layer Pattern
  3. SOLID Principles: Interface segregation, Dependency inversion
  4. Template Programming: Generic repository implementation
  5. File Management: Persistent data storage and retrieval
  6. STL Algorithms: Modern C++ standard library usage