Skip to content

The "BIBLIObooks" is a distributed system consisting of two Laravel projects deployed in separate containers. Each project represents an independent instance of a library, allowing users to query the catalog and reserve books for a specific period.

License

Notifications You must be signed in to change notification settings

gianni/BIBLIObooks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BIBLIObooks

The "BIBLIObooks" is a distributed system consisting of two Laravel projects deployed in separate containers.
Each project represents an independent instance of a library, allowing users to query the catalog and reserve books for a specific period.
The communication between the two systems is facilitated through a RESTful API.

GitHub Actions PHP Test PHPStan

Technologies

  • PHP The 8.2 version of PHP, bringing new features and improvements.
  • Apache2 The web server for serving your PHP application.
  • Docker A containerization platform for packaging, distributing, and running applications.
  • !Laravel The backend framework for building robust and scalable web applications.
  • Pest PHP A delightful PHP Testing Framework with a focus on simplicity.
  • Scramble OpenAPI (Swagger) documentation generator for Laravel.

Features

  • 🚀 Reservation API RESTful: To create a book reservation from a library (biblio Florence) to another library (biblio Milan) and viceversa.
  • 📚 Book API RESTful: CRUD requests to create, remove, update and delete books from the library
  • 🎤 Requests API RESTful: Exercise purpose only: a "valid" request that passes validation rule and create a new reservation and a "not valid" request that doesn't pass the validation rule and return the errors

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone git@github.com:gianni/BIBLIObooks.git
  2. Move to the directory:

    cd BIBLIObooks
  3. Start Docker containers:

    docker-compose up -d
  4. Execute Init script for bibliobooks_florence application:

    docker exec -it bibliobooks_florence ./init.sh
  5. Execute Init script for bibliobooks_milan application:

    docker exec -it bibliobooks_milan ./init.sh
  6. Point the browser to the first "Biblio" (Florence) API documentation

    http://localhost:8001/docs/api
  7. Point the browser to the second "Biblio" (Milan) API documentation

    http://localhost:8002/docs/api
  8. Play with the RESTful Api to explore books available in each library and simulate a reservation of a book from a library to another.

About

The "BIBLIObooks" is a distributed system consisting of two Laravel projects deployed in separate containers. Each project represents an independent instance of a library, allowing users to query the catalog and reserve books for a specific period.

Topics

Resources

License

Stars

Watchers

Forks

Languages