A REST API Microservices application created using Spring Boot framework in Java, implementing CRUD functionality to store, read, update and delete book data from a database. The purpose of this project is to demonstrate the knowledge and skills I have gained during my software development bootcamp at QA.
- Java
- Spring Boot
- Maven
- MySQL
- Git/GitHub
- JUnit and Mockito - for testing
- Jira - for project management
- H2 database
- H2 console
- MySQL workbench
- Postman - for making API calls
- Scrum - Agile
There were a few challenges, one was getting the application to work with multiple tables in a ManyToMany relationship between the authors and books tables. The testing part also presented a challenge as the constructor in my Book entity was different to the constructor I made in the Book DTO class, as a result it took some time to resolve the conflict, but I learnt a great deal during the process.
Overall the project went really well, a lot of the challenges I encountered improved my knowledge of how the spring boot framework works and certainly improved my competency in using Java.
Knowing what I know now, for future projects, I will spend more time planning before jumping into coding the solution just so that the build phase is carried out in the most efficient manner.
- Build a frontend for the project using a framework like Angular.
- Create forms so that data can be submited and read in a more pleasing format for the end user.
- Transfer/host the app on a cloud based service such as AWS or Azure.
| Description | Likelihood | Impact | Responsibilty | Response | Mitigation |
|---|---|---|---|---|---|
| No Internet Connection | Unlikely | High | Me | Connect via mobile | Find a library or public place that thas free wifi |
| GitHub goes down | Unlikely | Medium | GitHub/MicroSoft | Save code locally on machine while the service comes back online | Ensure code is saved at regular intervals both locally and pushed to remote repository |
| Offsick/Ill | Unlikely | High | Me | Inform tutor/trainer and have contact details readily accessible | Ensure there is a minimum viable product to submit as early as possible during the project |
| Code doesn't compile | Medium | High | Me | Roll back to last working branch/commit | Ensure each working feature branch is commited and pushed at regular intervals |
| Loss of Power | Unlikely | High | Me/Power Networks | Save all work and push to remote, if internet connection available | Have a battery/portable power pack available to run machine long enough to save any work in progress |










