Goals
In order to define the main goals of the system we initially defined scenarios via impact map, and we also used that to define Gherkin features for testing warehouse repository.
After that we defined business goals in order to have a plan to follow.
Scenarios
Impact Map
Scenarios with Gherkin
We used Gherkin to better identify the warehouse use cases and test them.
Feature: Interacting with the warehouse
Scenario Outline: Manager adds a new ingredient
Given there are 99 units of milk and 4 units of tea in the warehouse
When Manager adds an ingredient with name <name> and quantity <quantity>
Then Manager receives <response> and message <message>
Examples:
|name |quantity |response | message |
|milk |99 |400 | ERROR_INGREDIENT_ALREADY_EXISTS |
|butter |-2 |400 | ERROR_WRONG_PARAMETERS |
|coffee |5 |200 | OK |
Business Goals
- Allowing the customers to make orders in an easier way using a web app
- Allowing the employees to manage the orders in real time from an application
- Allowing the management of the menu in an easier way using a web app
- Allowing the management of the inventory in an easier way using a web app
CI Goal
- Usage of CI processes to:
- Back-end self-assessment policy and quality assurance:
- In order to keep develop and main branches clean, it’s required to use pull requests. Each of them starts the CI. It checks if the code is formatted, if all tests pass and if the coverage is high enough
- After every push on develop and main branches CI releases the new code and the relative information on SonarCloud. The developers have to follow the hints given by tool
- Each commit is signed and it must follow the “conventional commits pattern”
- After every push in the main branch, CI will start the semantic release
- Generate and deliver the code documentation automatically (using adequate plugins)
- Back-end self-assessment policy and quality assurance:
CD Goal
Provide a way to build and publish automatically the images on Docker Hub or the executable Jars when there is a new release of the project.