Skip to content

LuGuDu/BorrowBooks

Repository files navigation

📚 BorrowBooks 📚

Cloud Computing project || Computer Engineering master's degree from UGR

Borrow a book

"Books give a soul to the universe, wings to the mind, flight to the imagination, and life to everything." Plato

1. Abstract

This system will consist of a free web platform that will offer users a lending service for books of any genre. Through the platform the user will be able to search for different books and select one or more of them to borrow for a period of time.


2. Create repoistory and ssh key-gen

A document has been created in order to explain the creation of the repository, the ssh key generation and some usefull commands to start with the git command line. You can see the documentation here.


3. Project planification

In terms of planning, 4 milestones have been created through which at the end of each one a minimum viable product is offered that complies with a series of functionalities. This is done with the objective of progressively advancing in the development of the application.

The milestones that have been created are the following:

For the correct development of each milestone, a series of user stories have been defined for each one. Thus, for a milestone to be considered completed, all the user stories created must have been completed. Each user story responds to a functionality that a user requires from the application.

In addition, a Python project has been initialized using the Flask framework for the Backend development. React and Bootstrap will be used for the Frontend. As for the persistence it will be achieved with MongoDB Atlas, a cloud service. So some classes have been added to form the main skeleton of the tasks corresponding to milestone 1 for the management of the books.


4. Testing

During Milestone 1 - Books management of the application development, a series of tasks related to testing have been carried out in order to verify that the implemented code works correctly. In addition, these tests have been automated by means of a task manager. For more details please refer to the following points:


5. Dockerize testing

In this task the tests performed in the previous task have been put inside a Docker container so that it can be executed completely independent of the machine where the server is running. For more details, please read the following post:


6. Continuous integration

The next step is to use some technology to achieve continuous integration in our project. Specifically, we want to launch code tests every time important changes are made. For more information read the following post:


7. Design and testing of a microservice

During Milestone 2 - Borrow service of the application development, a series of tasks related to the api design have been carried out. For more details please refer to the following points:


8. Service composition with docker-compose

During this task, a composition of different services has been made, which are orchestrated thanks to a docker-compose.yml file. The objective was to be able to separate the different services deployed from the machine, so that they can be independent from the host machine. Three services have been created: the API Rest, the database and a SonarQube server for quality measurement.

You can see more information in the following post: