Skip to content

oolarr/JavaBookProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 

Repository files navigation

Project Scope

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.

Stacks and Tools

  • 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

Challenges

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.

What went well? / What didn't go as planned?

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.

Screenshots of API calls

Adding a book to the database

Add a book

Get All books from the database

Get all books

Updata an existing book Before

Update a book before

Update an existing book by ID After

Update a book

Find author by nameContaining

Find author by name

Find book by ID

Find book by ID

Delete A Book

Delete a book

Screenshots of Database persistence

books_table

book_table

authors_table

author_table

juction_table

book_authors

Entity Relationship

ERD

Testing

testing_output

Possible improvements for future revisions of the project

  • 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.

Risk Assessment

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages