Skip to content

Latest commit

 

History

History
76 lines (58 loc) · 2.74 KB

File metadata and controls

76 lines (58 loc) · 2.74 KB

Library App

Description

Library App is a modular application designed to manage library operations such as book loans, patron management, and inventory tracking. It is built using .NET and follows a clean architecture approach to ensure scalability and maintainability.

Project Structure

  • AccelerateDevGHCopilot.sln - Solution file for the project.
  • src/
    • Library.ApplicationCore/
      • Entities/ - Contains core domain entities.
      • Enums/ - Defines enumerations used across the application.
      • Interfaces/ - Declares interfaces for core abstractions.
      • Services/ - Implements business logic and domain services.
      • Library.ApplicationCore.csproj - Project file for the Application Core.
    • Library.Console/
      • appSettings.json - Configuration file for the console application.
      • CommonActions.cs - Contains reusable actions for the console app.
      • ConsoleApp.cs - Main application logic for the console interface.
      • ConsoleState.cs - Manages the state of the console application.
      • Program.cs - Entry point for the console application.
      • Json/ - Contains JSON-related utilities or data.
      • Library.Console.csproj - Project file for the Console application.
    • Library.Infrastructure/
      • Data/ - Contains data access implementations.
      • Library.Infrastructure.csproj - Project file for the Infrastructure layer.
  • tests/
    • UnitTests/
      • LoanFactory.cs - Factory for creating test data related to loans.
      • PatronFactory.cs - Factory for creating test data related to patrons.
      • ApplicationCore/ - Contains unit tests for the Application Core.
      • UnitTests.csproj - Project file for unit tests.

Key Classes and Interfaces

  • Entities
    • Book - Represents a book in the library.
    • Patron - Represents a library patron.
    • Loan - Represents a loan transaction.
  • Interfaces
    • IBookRepository - Interface for book-related data operations.
    • IPatronRepository - Interface for patron-related data operations.
    • ILoanService - Interface for managing loan operations.
  • Services
    • LoanService - Implements loan-related business logic.
    • NotificationService - Handles notifications for overdue loans.

Usage

  1. Clone the repository:

    git clone <repository-url>
  2. Open the solution file AccelerateDevGHCopilot.sln in Visual Studio.

  3. Build the solution to restore dependencies and compile the code.

  4. Run the console application:

    dotnet run --project src/Library.Console/Library.Console.csproj
  5. Execute unit tests:

    dotnet test tests/UnitTests/UnitTests.csproj

License

This project is licensed under the MIT License. See the LICENSE file for details.