My BackYard API
Java - Maven - Spring Boot - JUnit - MySQL
Description
My BackYard is a full stack application designed to act as a handy reference for homeowners, gardeners or even landscapers as they tend to their yards or gardens. Inspired by my wife, who loves spending time tending to all of our various plants, there came a point where she required some sort of note system to help her remember all the facts and notes about our home's ecosystem.
I have designed My BackYard as a full stack application divided into a backend and frontend components that utilizes a REST API for communication between the two components. At this stage in the application development functionality is limited and represents only a minimum viable product however I have placed much of my focus on a backend architecture that will allow for growth both in scope and demand.
The Backend
The backend component of My BackYard is where I have focused the majority of work for this application as it will be the heart and soul of the application. All business rules, or other logic, validation, error handling, data processing, transformations, etc... will happen here in the backend. This will allow for any form of frontend to quickly and easily be adapted to suit the needs of the user. This is a backend-for-frontend architecture.
The backend utilizes a MySQL and Java Spring Boot stack with a model, service, controller dataflow architecture which exposes several REST endpoints as an interface for extracting the required data. The Maven build tool was used to coordinate dependencies and organize test runs.
Spring data JPA and Spring web provide the bulk of the work here in the backend. JPA for relational mapping and Web for simplifying REST controller development and interactions. In addition to these core dependencies I also make use of Spring aspects for logging functionality and Spring security for authentication and authorization. Unit testing is accomplished with JUnit and Mockito via the JUnit and Spring starter test dependencies.