{"id":21438345,"url":"https://github.com/lugudu/borrowbooks","last_synced_at":"2025-03-16T23:43:25.660Z","repository":{"id":62687579,"uuid":"559836096","full_name":"LuGuDu/BorrowBooks","owner":"LuGuDu","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-27T16:03:00.000Z","size":10160,"stargazers_count":1,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T09:45:37.039Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LuGuDu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-31T07:40:40.000Z","updated_at":"2023-05-12T16:10:51.000Z","dependencies_parsed_at":"2023-01-29T16:46:03.149Z","dependency_job_id":null,"html_url":"https://github.com/LuGuDu/BorrowBooks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuGuDu%2FBorrowBooks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuGuDu%2FBorrowBooks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuGuDu%2FBorrowBooks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuGuDu%2FBorrowBooks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LuGuDu","download_url":"https://codeload.github.com/LuGuDu/BorrowBooks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243950805,"owners_count":20373664,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-23T00:34:57.959Z","updated_at":"2025-03-16T23:43:25.643Z","avatar_url":"https://github.com/LuGuDu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📚 BorrowBooks 📚\n\n*Cloud Computing project || Computer Engineering master's degree from UGR*\n\n\u003cimg src=\"https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone0/docs/resources/borrowbooks.jpg\" alt=\"Borrow a book\" style=\"width:300px;\"/\u003e\n\n\u003e \"Books give a soul to the universe, wings to the mind, flight to the imagination, and life to everything.\" Plato\n\n## 1. Abstract\n\nThis 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.\n\n***\n\n## 2. Create repoistory and ssh key-gen\n\nA 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](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone0/docs/milestone0.md).\n\n***\n\n## 3. Project planification\n\nIn 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.\n\nThe milestones that have been created are the following:\n\n - [Milestone 1 - Books management](https://github.com/LuGuDu/BorrowBooks/milestone/2)\n - [Milestone 2 - Borrow service](https://github.com/LuGuDu/BorrowBooks/milestone/3)\n - [Milestone 3 - Login system](https://github.com/LuGuDu/BorrowBooks/milestone/4)\n - [Milestone 4 - Finished project](https://github.com/LuGuDu/BorrowBooks/milestone/5)\n\nFor 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.\n\nIn 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.\n\n***\n\n## 4. Testing\n\nDuring [Milestone 1 - Books management](https://github.com/LuGuDu/BorrowBooks/milestone/2) 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:\n - [Choise and  use of a Task manager](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone1/docs/task_manager.md)\n - [Choise and use of an Assert's library](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone1/docs/assert_library.md)\n - [Choise and use of a Test framework](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone1/docs/test_framework.md)\n - [Code advance](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone1/docs/code_advance.md)\n\n***\n\n## 5. Dockerize testing\n\nIn 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:\n - [Testing with docker](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone1/docs/test_docker.md)\n - [Automated docker](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone1/docs/automated_docker.md)\n\n\n***\n\n## 6. Continuous integration\n\nThe 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:\n - [Continuous integration](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone1/docs/continuous_integration.md)\n\n ***\n\n## 7. Design and testing of a microservice\n\nDuring [Milestone 2 - Borrow service](https://github.com/LuGuDu/BorrowBooks/milestone/3) 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:\n - [Choosing a Framework](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone2/docs/api_framework.md)\n - [API design](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone2/docs/api_design.md)\n - [API Logger](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone2/docs/api_logger.md)\n - [API testing](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone2/docs/api_testing.md)\n - [Code advance 2](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone2/docs/code_advance2.md)\n\n  ***\n\n## 8. Service composition with docker-compose\n\nDuring 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.\n\nYou can see more information in the following post:\n\n - [Service composition](https://github.com/LuGuDu/BorrowBooks/blob/LuGuDu-milestone2/docs/service_composition.md)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flugudu%2Fborrowbooks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flugudu%2Fborrowbooks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flugudu%2Fborrowbooks/lists"}