Always free. For everyone.
Course outline
Module 20 of 20 · Testing and delivery

Deliver an automation capstone

Combine the course ideas into a tested workflow and a clear handover. This module has 3 lessons and takes about 1h 50m. Each lesson has a practice exercise that runs real Python in your browser and a short quiz.

Start module 20 in the Learning Lab
LESSON 1 OF 3

Orchestrate a draft workflow

25 minAI automation
WHAT YOU WILL DO

Validate id and message, route unknown labels to review, and return a repair or training draft. Set ready only for a trusted boolean approved=True.

The capstone combines intake validation, a simulated AI proposal, and an approval state. Every output is a local record. No message is sent by the lesson.

Require a non-empty string id and message. Accept repair or training predictions as drafts; other predictions need review. A trusted approved flag changes draft to ready, which still does not execute an external action.

This small function omits durable idempotency and versioned approval for readability. Your capstone plan must add those before describing a live deployment.

See it in action

example.pyPython 3
def solve(record, label, approved):
    if not isinstance(record, dict) or not all(isinstance(record.get(k), str) and record[k].strip() for k in ("id","message")):
        return {"status":"invalid"}
    if label not in ("repair", "training"):
        return {"id":record["id"], "status":"review"}
    return {"id":record["id"], "queue":label, "status":"ready" if approved is True else "draft"}
print(solve({"id":"r1","message":"Help"}, "repair", False))
Keep this in mind

This small function omits durable idempotency and versioned approval for readability. Your capstone plan must add those before describing a live deployment.

LESSON 2 OF 3

Report test evidence honestly

25 minAI automation
WHAT YOU WILL DO

Return incomplete for an empty result dictionary, pass when every value is boolean True, and fail otherwise.

A handover should show what was tested and what remains uncertain. Do not report unrun tests as passing or simulated results as real customer outcomes.

Given named case results, return pass only when there is at least one case and every result is exactly True. Return incomplete for no cases and fail for any other result.

Keep input fixtures and expected outputs with the report so another person can reproduce the evidence.

See it in action

example.pyPython 3
def solve(results):
    if not results:
        return "incomplete"
    return "pass" if all(value is True for value in results.values()) else "fail"
print(solve({"normal":True,"duplicate":True,"invalid":True}))
Keep this in mind

Keep input fixtures and expected outputs with the report so another person can reproduce the evidence.

LESSON 3 OF 3

Practical: Finish the workshop assistant

60 minAI automation
WHAT YOU WILL DO

Return one status per row: invalid for missing id/message, duplicate for a repeated valid id, review for an unknown label, otherwise ready only for approved=True or draft.

Bring the pieces together in a batch capstone. Each fictional row contains an id, message, simulated label, and trusted approval flag. Preserve every row in the output so invalid work is visible.

Validate id and message before deduplication. Keep the first valid occurrence of each id. A duplicate becomes duplicate, an unknown label becomes review, and known labels become draft or ready according to approval.

This capstone checks deterministic workflow behaviour. It does not measure a real model or prove production readiness. Include the remaining integration work in your handover.

GUIDED PRACTICAL · 60 MIN

Your experiment plan

Use the browser editor or the notebook. All records and AI responses are fictional. No network calls, credentials, or real messages are used.

  1. Build the full fictional workshop intake using the earlier validation, routing, approval, retry, and ledger designs.
  2. Run the example and predict its result before changing it.
  3. Complete the function in Practice and run the checks. Add your own normal, empty, and failure cases.
  4. Inject duplicates, malformed responses, an expired approval, and a temporary failure. Record each path.
  5. Save the notebook with your observations and explain one limitation of the simulation.

What to hand in

  • A runnable capstone notebook, workflow diagram, evaluation table, and handover with owners and limitations.
  • A test table with inputs, expected outputs, actual outputs, and one revision.
Reflect on your results

What evidence would you require before connecting a real model or sending real messages?

The automatic exercise checks the core code behaviour. Review observations and written deliverables yourself or with a mentor.

See it in action

example.pyPython 3
def solve(rows):
    seen, output = set(), []
    for row in rows:
        if not isinstance(row, dict) or not all(isinstance(row.get(k), str) and row[k].strip() for k in ("id","message")):
            output.append("invalid")
            continue
        if row["id"] in seen:
            output.append("duplicate")
            continue
        seen.add(row["id"])
        if row.get("label") not in ("repair", "training"):
            output.append("review")
        else:
            output.append("ready" if row.get("approved") is True else "draft")
    return output
print(solve([{"id":"r1","message":"Help","label":"repair"},{"id":"r1","message":"Help","label":"repair"},{"id":"r2","message":"Hi","label":"other"},{}]))
Keep this in mind

This capstone checks deterministic workflow behaviour. It does not measure a real model or prove production readiness. Include the remaining integration work in your handover.

ABOUT THE LEARNING LAB

Free, open and run by a nonprofit.

This page is part of AI Automation, a free course of 20 modules and 60 lessons in the engineering.fit( ) Learning Lab. The Learning Lab is built and run by engineering.fit( ), a nonprofit founded by Abdullateef Opeyemi Bakare that helps African engineering students gain research experience. You do not need an account or pay a fee to learn.

Course outline · Project lab · Visit engineering-fit.org