MyLibrary is a library management system that manages books, loans, users and sections. It allows you to create, update and remove books, manage loan operations respecting user limits and guarantee the availability of books. The system also initializes the database with necessary test data and handles specific exceptions to ensure efficient operation. Furthermore, it has controllers that organize HTTP requests to the appropriate services, providing an efficient and organized user interface.
User
abstract class inherited by Student
and Professor
for different treatment. - Student : You can take out one loan at a time. - Teacher : You can make up to 3 loans at a time. app/library/
├── App/
│ ├── Application/
│ │ ├── Controllers/
│ │ │ ├── BookController.php
│ │ │ ├── LoanController.php
│ │ └── Utils/
│ │ ├── Response.php
│ ├── Domain/
│ │ ├── Entities/
│ │ ├── Repositories/
│ │ ├── Services/
│ ├── Infrastructure/
cd coverageTests
php -S localhost:8000
PSR-2 syntax
Documentation
Code Documentation
Dependencies: php 8.3 and sqlite 3
git clone https://github.com/RudeBoyOne/library-management.git
cd library-management
composer install
php App/Infrastructure/Persistence/Database/initialize_db.php
cd App
php -S localhost:8080
Import the collection file into postman with all http requests to test the system
how to import:
Postman documentation, how to import a collection
Archive Collection
Make requests to resource endpoints