STAGE 1: Model the domain
Concept: The database should protect important invariants.
Task: Define course, learner and booking tables with keys and uniqueness rules.
Acceptance: Explain how cancellations affect duplicate-booking rules.

My assumptions:

My work / file link:

My checks and results:

What I changed:


STAGE 2: Implement the service
Concept: An endpoint needs a contract and predictable errors.
Task: Specify create, list and cancel operations with validation and status responses.
Acceptance: A missing course ID does not create an orphan record.

My assumptions:

My work / file link:

My checks and results:

What I changed:


STAGE 3: Test behavior
Concept: Tests should exercise boundaries and failures.
Task: Test duplicate booking, invalid capacity, missing fields and cancellation behavior.
Acceptance: Do not use production learner data in fixtures.

My assumptions:

My work / file link:

My checks and results:

What I changed:


STAGE 4: Prepare a handover
Concept: A runnable project needs installation and operational assumptions.
Task: Write setup, migration, test and local-run instructions; describe secrets handling.
Acceptance: Do not commit credentials or claim production deployment from a local run.

My assumptions:

My work / file link:

My checks and results:

What I changed:
