This project implements a REST service to keep records of wines in a cellar. It is written in Java using Spring Boot to perform CRUD operations on MySQL database.
This project is part of the requirement for the completion of QA Digital Skills Bootcamp where the fundamentals of Software Development were covered.
The objective is to create a Spring Boot REST API, with utilisation of supporting tools, methodologies, and technologies, that encapsulates all fundamental and practical modules covered during training.
Jira as an Agile project management tool was an extremely valuable instrument for the planning of the whole project as it allowed to layout the work ahead from the big picture to the fine details. Also, Spring Boot Framework was undoubtedly the most helpful in the whole coding experience.
Some tasks took more effort to implement than originally expected. This happened, for example, during the development of the first action: creating an entity (/wine/create
) where much more code was needed than expected. As a result, part of this code was later reused by other actions making subsequent tasks less time consuming.
It would be nice to have another controller (possibly under /status
) containing information about the current status of the Cellar, such as: the total number bottles, total value of the cellar, the most expensive and the cheapest wine, or a list of wines containing low number of bottles that need to be back ordered.
Spring Application Test
Wine Entity Unit Test
Wine Service Unit Test
Wine Controller Unit Test
Wine Controller Integration Test
Tests were also run from the command line using ./mvnw test
and the output was collected and located in doc/test.log
https://contieroelza.atlassian.net/jira/software/projects/CC/boards/4/backlog
Entity Relationship Diagram for the database.
Wine | |
---|---|
ID | BIGINT AUTOINCREMENT PRIMARY KEY |
NAME | VARCHAR(255) NOT NULL |
NUMBER_OF_BOTTLES | INT |
PRICE | DOUBLE |
PRODUCER | VARCHAR(255) |
REGION | VARCHAR(255) |
TYPE | VARCHAR(255) |
YEAR | INT |