TO WRITE
resources:
dave Farley: How to write acceptance tests
Nat Pryce: E2E functional tests that can run in milliseconds
quii: Acceptance tests, BDD and Go.
protocol buffer: https://www.youtube.com/watch?v=_jQ3i_fyqGA
gRPC basics: https://www.youtube.com/watch?v=uolTUtioIrc
docker basics: https://www.youtube.com/watch?v=pTFZFxd4hOI
in this video dave farley talks about 4 layered approach for acceptance testing

User Story:
- Purpose: we use a story to define the requirement from the user's perspective.
- Example: "As a user, I want to scan a QR code to check if a card is valid."
- Focus: What the user wants to achieve.
Specifications:
- Purpose: here we breakdown the user story into precise steps, where each step has specific functionality
- Example:
- Open the camera.
- Scan the QR code.
- Extract the card details.
- Query the database for validity.
- Display the result to the user.