Cloud Computing project || Computer Engineering master's degree from UGR
"Books give a soul to the universe, wings to the mind, flight to the imagination, and life to everything." Plato
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.
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.
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:
- Milestone 1 - Books management
- Milestone 2 - Borrow service
- Milestone 3 - Login system
- Milestone 4 - Finished project
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.
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:
- Choise and use of a Task manager
- Choise and use of an Assert's library
- Choise and use of a Test framework
- Code advance
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:
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:
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:
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: