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.
- The 8.2 version of PHP, bringing new features and improvements.
- The web server for serving your PHP application.
- A containerization platform for packaging, distributing, and running applications.
- The backend framework for building robust and scalable web applications.
- A delightful PHP Testing Framework with a focus on simplicity.
- OpenAPI (Swagger) documentation generator for Laravel.
- 🚀 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
-
Clone the repository:
git clone git@github.com:gianni/BIBLIObooks.git
-
Move to the directory:
cd BIBLIObooks
-
Start Docker containers:
docker-compose up -d
-
Execute Init script for bibliobooks_florence application:
docker exec -it bibliobooks_florence ./init.sh
-
Execute Init script for bibliobooks_milan application:
docker exec -it bibliobooks_milan ./init.sh
-
Point the browser to the first "Biblio" (Florence) API documentation
http://localhost:8001/docs/api
-
Point the browser to the second "Biblio" (Milan) API documentation
http://localhost:8002/docs/api
-
Play with the RESTful Api to explore books available in each library and simulate a reservation of a book from a library to another.