Study Studio · Engineering Internship

Build.Ship.Repeat.

Your assignment board. Every week a new set of missions lands here — each one a self-contained module you own end to end. Past assignments stay on the board, so you can revisit any week's tasks anytime.

Team05
CurrentAssignment 05
CadenceWeekly
Writing ChamberHumanizerHubFull RewriteFlutterGoPython Writing ChamberHumanizerHubFull RewriteFlutterGoPython
Weeks Assignment 06 · 22 Sep Current Assignment 05 · 05 Sep Assignment 04 · 01 Sep Assignment 03 · 22 Aug Assignment 02 · 12 Aug Assignment 01 · 01 Aug
Assignment 06 · Current

22 September 2026

Two new fronts. Sean opens OctoSlides — presentation slide generation and the agent that drives it, in two modes. Amirjon & Chris bring Study Studio to mobile — an independent, purpose-built layout for every page behind isMobilePlatform.

2 tasks 1 shared collab Slides · Mobile
SubmissionFork-based PR · Cockpit repo
FocusNew modules · Slides + Mobile
Check-insDaily · via WhatsApp
01
S
Sean
Generation & Agent · OctoSlides
No deadline

OctoSlides — Slide Generation & Agent

Build the brain behind OctoSlides — step-by-step presentation slide generation and the agent that orchestrates it. Two generation modes; a frontend we'll hand you to build against.

Setup

We'll provide the OctoSlides frontend repository for you to work on. Build your generation & agent layer against it.

What you'll build

The step-by-step slide-generation pipeline and the agent behaviour that plans and produces a deck — supporting two generation modes.

Scope
  • Figure out the step-by-step slide-generation flow and the agent behaviour that drives it (outline → slides → content).
  • Implement Mode 1 — Generation from template: build a deck from a chosen presentation template.
  • Implement Mode 2 — HTML → PPTX: turn HTML content into a downloadable .pptx deck.
  • Integrate with the provided frontend — real generation, no mock decks.
Done when

OctoSlides generates a full deck step by step through the agent, in both modes — template generation and HTML → PPTX — wired to the provided frontend.

Module OctoSlides Scope slide generation + agent Timeline no deadline Branch your own · fork PR
02
AC
Amirjon + Chris
Collaboration · Study Studio Mobile
~1 week

Study Studio — Mobile Version

Make Study Studio feel native on a phone. Revise every page and draw an independent mobile layout — gated on isMobilePlatform. A shared collaboration.

Collaboration

Amirjon & Chris work as one team on a shared branch — divide the pages between you, agree on shared mobile patterns, and integrate into one consistent mobile experience.

Reference

The Study Studio source lives in the Cockpit repo github.com/boardwalk-ai/Cockpit (packages/study_studio). The existing desktop layouts are your reference.

What you'll build

A purpose-built mobile layout for every Study Studio page — not a squeezed desktop — switched on isMobilePlatform, with the desktop layout left intact for wide screens.

Scope
  • Go through every Study Studio page and design an independent mobile layout for each.
  • Gate the mobile layout on isMobilePlatform — the desktop layout stays for wide screens.
  • Keep behaviour identical; only the layout & UX adapt to the phone form factor.
  • Reusable mobile patterns · touch-friendly targets · no horizontal overflow.
  • Cooperate on a shared branch; submit via fork PR on the Cockpit repo.
Done when

Every Study Studio page has a purpose-built mobile layout under isMobilePlatform, the phone experience feels native, and the desktop layout is unchanged.

Stack Flutter · Dart Scope mobile layouts Team Amirjon + Chris Branch shared · fork PR
Past · Archived Assignment 05

05 September 2026

Full rewrites, whole product surfaces, in the Cockpit stack. Sean, Amirjon & Chris team up on the Writing Chamber; Anagha takes HumanizerHub — each rebuilt end to end in Flutter + Go + Python from the official OctopilotWeb code.

2 tasks 1 shared collab Flutter · Go · Python
SubmissionFork-based PR · Cockpit repo
FocusFull rewrite · Flutter + Go + Python
Check-insDaily · via WhatsApp
01
SAC
Sean + Amirjon + Chris
Collaboration · Writing Chamber
~1 week

Writing Chamber — Full Rewrite

The big one. Rebuild the entire Writing Chamber from the ground up in the Cockpit stack — Flutter + Go + Python. All three of you build it together on one branch.

Collaboration

Sean, Amirjon & Chris build this as one team on a shared branch. Agree on the architecture up front, split the surface (frontend / Go APIs / Python AI layer) between you, and integrate into a single working module — cooperate closely and keep each other unblocked.

Reference

The official Writing Chamber code lives in github.com/boardwalk-ai/OctopilotWeb. Study how it works, then rewrite it in the Cockpit stack — same behaviour, our architecture.

What you'll build

The full Writing Chamber module — the Flutter UI (editor, controls, panels), the Go APIs it depends on, and the Python AI layer — matching the official product's features and flow.

Scope
  • Study the Writing Chamber in OctopilotWeb; map its screens, features and data flow.
  • Rebuild the Flutter frontend — layout, editor, controls, and every UI state.
  • Build the Go backend — the APIs the chamber needs (save / load, sessions, credits).
  • Build the Python AI layer — generation + SSE streaming into the UI.
  • Agree a clean contract between the three layers; wire real loading / empty / error / result — no mock data.
  • Work on a shared branch; submit via fork-based pull request on the Cockpit repo.
Done when

The Writing Chamber runs end to end in the Cockpit stack — Flutter UI on live Go + Python — matching the official version, with no mock data left.

Stack Flutter · Go · Python Scope full rewrite Team Sean + Amirjon + Chris Branch shared · fork PR
02
A
Anagha
Full-Stack · HumanizerHub
~1 week

HumanizerHub — Full Rewrite

Rebuild HumanizerHub end to end in the Cockpit stack — Flutter + Go + Python. Your own module, front to back.

Reference

The official HumanizerHub code lives in github.com/boardwalk-ai/OctopilotWeb. Study it, then rewrite it in the Cockpit stack — same behaviour, our architecture.

What you'll build

The full HumanizerHub module — the Flutter UI (input, humanize controls, output), the Go APIs, and the Python humanize / AI layer — matching the official product.

Scope
  • Study HumanizerHub in OctopilotWeb; map its features and flow.
  • Rebuild the Flutter frontend — input, humanize options/controls, output, and every UI state.
  • Build the Go backend — the APIs it needs (sessions, save / load, credits).
  • Build the Python layer — the humanize / AI processing (streaming where it applies).
  • Wire real states end to end — no mock data; submit via fork-based PR on the Cockpit repo.
Done when

HumanizerHub runs end to end in the Cockpit stack on real backend data, matching the official version.

If unavailable

If Anagha can't take this on this week, Sean picks it up as an extra task — HumanizerHub still ships.

Stack Flutter · Go · Python Scope full rewrite Branch your own · fork PR
Past · Archived Assignment 04

01 September 2026

Time to make it real. Sean takes GhostWriter end to end; Amirjon & Chris build the full Guided-Generation editor. Then all three team up on the shared piece — one set of citation formatters (APA / MLA / Chicago / IEEE / Harvard) in Dart that must work 100% inside both editors. Anagha turns the streaming crawl live.

4 tasks 1 shared collab Flutter · Dart
SubmissionFork-based pull request
FocusIntegration · Editor · Streaming
Check-insDaily · via WhatsApp
01
S
Sean
Full-Stack · GhostWriter
~1 week

GhostWriter — End-to-End Integration

Connect the two halves you already own: your GhostWriter Flutter UI (Assignment 02) and your Go + Python agent backend (Assignment 03). Make the module real — live streaming, real saves, real credits, no mock data left.

Reference

Your own two builds: the GhostWriter UI from Assignment 02 and the GhostWriter agent backend from Assignment 03. This week they meet.

What you'll build

The full wiring — the Flutter UI talking to the Go APIs over HTTP and to the Python AI layer over SSE streaming. Every mock/stub state replaced by live data from your backend.

Scope
  • Wire the UI to the Go APIs — saving, folder loading, user-credits.
  • Stream AI output into the UI over SSE — token-by-token, live.
  • Replace every mock state with real loading / empty / error / result from the backend.
  • Show credits + session straight from the backend; carry the semantic chat memory across turns.
  • Wire the GhostWriter editor to the shared citation formatters (task 03) — insert citations, build the reference list, switch styles.
  • Fail gracefully — network errors, dropped streams, retries.
Done when

GhostWriter works end to end against the live backend — type a prompt, watch it stream in, save to a folder, credits update — with no mock data left.

Stack Flutter · Go · Python Scope full-stack integration Branch your own · fork PR
02
AC
Amirjon + Chris
Frontend · Guided Generation
~1 week

Guided Generation — Full Editor

Your Guided-Generation backend is done — now build the piece that makes the output usable: the full document editor where a user reads, edits and formats the generated document. Citations come from the shared formatters (task 03) — wire them in here.

Cooperation

Amirjon & Chris — one Mode, one editor. Divide the editor between you and integrate into a single Flutter build. You also co-own the shared formatters in task 03 with Sean.

What you'll build

The full Guided-Generation editor — edit the generated document with rich text, sections, a formatting toolbar, inline citations and an auto-built references section, all consuming the shared citation formatters from task 03.

Scope
  • Build the full editor — rich text, headings, lists, a formatting toolbar, editable sections.
  • Inline citation insertion + an auto-built references / bibliography section.
  • Consume the shared formatters (task 03) — a style switcher swaps the whole document's citations between styles live.
  • Edits persist through your Assignment 03 backend (save / load).
  • Responsive layout · reusable widgets · clean state handling.
Done when

The editor edits generated content with inline citations and a live references section, every citation style switches correctly via the shared formatters, and edits persist through the backend.

Stack Flutter · Dart Scope full editor Team Amirjon + Chris Branch fork PR
03
SAC
Sean + Amirjon + Chris
Collaboration · Citation Formatters
~1 week

Shared Citation Formatters — one build, both editors

The one piece GhostWriter and Guided Generation both depend on. All three of you write one set of citation formatters in Dart — and it must work 100% inside both editors.

Collaboration

Sean, Amirjon & Chris build this together as one shared module. It is the common dependency of both your editors — agree on a single contract, split the five styles, and integrate into one build both editors import.

Reference

The citation formatter implementations live in the now-public repo boardwalk-ai/OctopilotWeb. Study them and rewrite each formatter in Dart.

What you'll build

One shared Dart module exposing the five citation styles — APA, MLA, Chicago, IEEE, Harvard — behind a single interface both the GhostWriter editor and the Guided-Generation editor call, with identical results.

Scope
  • One shared module, one common interface — both editors import it and get identical output.
  • Rewrite all five in Dart: APA · MLA · Chicago · IEEE · Harvard — port from the OctopilotWeb reference.
  • Each formatter: structured source fields (author, title, year, publisher, URL…) → correct in-text citation + full reference entry.
  • Prove it works 100% in both editors — GhostWriter's editor and the Guided-Generation editor, live style switching in each.
  • Handle edge cases — missing fields, multiple authors, no date, web vs print sources.
  • Unit tests for every style against known-correct examples.
Done when

One shared Dart formatter module drives citations in both editors identically — all five styles correct, live-switchable, edge cases handled, unit tests passing.

Stack Flutter · Dart Scope shared module Team Sean + Amirjon + Chris Branch shared · fork PR
04
A
Anagha
Frontend · Streaming
~2–3 days

Streaming Crawl — Now Live

Last week the Star Wars crawl ran on a mock timer. This week it runs on real streamed tokens — plus a reusable streaming-text controller any generation screen can drop in.

What you'll build

Take your crawl animation and drive it from a live token stream (SSE) instead of a mock timer, wrapped in a reusable streaming-text controller that exposes incremental text and typing/done state.

Scope
  • Drive the crawl animation from real streamed tokens (SSE), not a mock timer.
  • Build a reusable streaming-text controller — subscribe to a token stream, expose incremental text + typing / done state.
  • Typing indicator / cursor while streaming; smooth append with no jank.
  • Keep it viewport-fit — long streamed output still fits, no scrolling.
  • A drop-in reusable widget any generation screen can use.
Done when

The crawl plays over real streamed output, the streaming-text controller is reusable across screens, and long output stays within the viewport.

Stack Flutter · Dart Scope frontend · streaming Branch your own · fork PR
Past · Archived Assignment 03

22 August 2026

Last week — a deep backend push. The services behind the modules in GoLang + Python — Go for the APIs (saving, folder loading, credits), Python for the AI calls — with agents rewritten from the now-public reference repo. Anagha took a frontend craft task. Kept on the board for reference.

3 tasks Go + Python backend Complex systems
SubmissionFork-based pull request
FocusBackend · Go + Python
Check-insDaily · via WhatsApp
01
S
Sean
Backend · GhostWriter
~1 week

GhostWriter — Agent Backend

Build the backend that powers the GhostWriter module — a GoLang + Python service with rewritten agent tools and semantic chat memory. A deep, systems-heavy build; your chance to showcase real expertise.

Reference

The tools reference for the main GhostWriter lives in the now-public repo boardwalk-ai/OctopilotWeb. Study it and rewrite the agent tools for this backend.

What you'll build

A two-language backend: GoLang for the APIs (saving, folder loading, user-credits loading, …) and Python for the AI/model calls — driven by rewritten agent tools and backed by a semantic memory for the chat session.

Scope
  • Rewrite the agent tools — reference the tools used in the main GhostWriter (OctopilotWeb repo).
  • Build GoLang APIs for the saving mechanism, folder loading, user-credits loading, etc.
  • Use Python for the AI calls.
  • Implement semantic memory for the chat session — persist and retrieve context across turns.
  • You may use a self-hosted VectorDB for the agent's memory context.
Done when

The GhostWriter backend runs end to end — Go APIs handle persistence & credits, Python handles the AI calls, the rewritten agent tools work, and the chat session carries semantic memory.

Stack Go · Python Scope backend Branch your own · fork PR
02
AC
Amirjon + Chris
Backend · Guided Generation
~1 week

Guided Generation — Agent Backend

Team up on the backend for Guided Generation — a GoLang + Python service with rewritten agents. Your frontend tasks share one Mode, so build this backend together. A chance to show real depth.

Cooperation

Amirjon & Chris — since your Guided Generation frontend tasks are under one Mode, cooperate on this backend as one team: split the work and integrate it.

Reference

The agents reference for the main Guided-Generation lives in the now-public repo boardwalk-ai/OctopilotWeb. Study it and rewrite the agents for this backend.

What you'll build

A two-language backend: GoLang for the APIs (saving, folder loading, user-credits loading, …) and Python for the AI/model calls — driven by rewritten Guided-Generation agents.

Scope
  • Cooperate — one Mode, one backend; divide and integrate the work between you.
  • Rewrite the agents — reference the agents used in the main Guided-Generation (OctopilotWeb repo).
  • Build GoLang APIs for the saving mechanism, folder loading, user-credits loading, etc.
  • Use Python for the AI calls.
Done when

The Guided Generation backend runs end to end — Go APIs handle persistence & credits, Python handles the AI calls, and the rewritten agents drive the flow.

Stack Go · Python Scope backend Team Amirjon + Chris Branch fork PR
03
A
Anagha
Frontend · Motion & Layout
~2–3 days

Streaming Animation + Viewport-Fit Layout

Two frontend crafts in one: design the iconic Star Wars-style AI-output streaming animation, then refit your past pages so every screen fits its viewport — no scrolling, anywhere.

What you'll build

A reusable streaming reveal animation for AI output — the classic Star Wars opening-crawl feel, text emerging in perspective as it streams in — plus a layout pass over the Guided Generation pages you built last week so they fit the screen exactly.

Scope
  • Design the Star Wars-style streaming animation for AI output — the perspective "crawl" reveal as tokens/content stream in.
  • Make it smooth, performant and reusable — a widget any generation screen can drop in.
  • Revisit your past pages (Generation → Humanizer) and adjust the layout to fit the viewport on every target screen size.
  • No scrolling needed, no scrolling allowed — everything lives within the visible viewport at desktop and mobile widths.
  • Responsive layout · reusable widgets · clean state handling.
Done when

The Star Wars streaming animation plays over AI output, and every one of your pages fits its viewport across screen sizes with zero scrolling.

Stack Flutter · Dart Scope frontend Branch your own · fork PR
Past · Archived Assignment 02

12 August 2026

Last week — all frontend. Each page drafted in Flutter from its live reference on octopilotai.app. Kept on the board for reference.

4 tasks 1 per person Flutter frontend
SubmissionFork-based pull request
FocusFrontend draft only
Check-insDaily · via WhatsApp
01
S
Sean
Frontend · GhostWriter
~2–3 days

GhostWriter — Flutter Frontend

Rebuild the GhostWriter experience as a native Flutter screen. A faithful frontend draft — recreate the page's layout, controls and states from the live reference.

Reference

Study and rebuild the page at octopilotai.app/ghostwriter. That live page is your single source of truth for layout, components and behaviour.

What you'll build

The full GhostWriter screen in Flutter — the prompt/input area, the writing controls & options, primary actions, and the generated-output area — matching the reference's structure and visual hierarchy.

Scope
  • Match the reference's layout & visual hierarchy — spacing, typography, sections.
  • Build every interactive control — inputs, toggles, dropdowns, primary/secondary buttons.
  • Wire the UI states — empty, typing, loading, and result — against mock/stub data (no backend).
  • Make it responsive across desktop and mobile widths.
  • Compose it from reusable widgets with clean, tidy state handling.
Done when

The GhostWriter screen renders in Flutter, matches the reference layout, and every control + state works against mock data — no backend required.

Stack Flutter · Dart Scope frontend draft only Branch your own · fork PR
02
A
Amirjon
Frontend · Guided Generation
~2–3 days

Guided Generation — Outline Page

Draft page 1 of the Guided Generation flow: the Outline Generation screen where a project begins. A Flutter frontend rebuilt from the live reference.

Reference

Rebuild the Outline Generation step (the first page) of octopilotai.app/guided-generation. Follow the live page for structure and behaviour.

What you'll build

The Outline Generation screen in Flutter — the topic/prompt entry, generation controls, and the generated outline view with its editable sections and the "continue" step forward.

Scope
  • Recreate the input & options that start an outline (topic, settings, generate action).
  • Build the outline result view — sections/headings the user can review and edit.
  • Wire UI states — empty, generating (loading), and generated — with mock/stub data.
  • Include the step's navigation affordance (proceed to the next guided step).
  • Responsive layout · reusable widgets · clean state handling.
Done when

The Outline page renders in Flutter, mirrors the reference, and its controls + states work on mock data — no backend wiring.

Stack Flutter · Dart Scope frontend draft only Branch your own · fork PR
03
C
Chris
Frontend · Guided Generation
~2–3 days

Guided Generation — Customization

Draft the Customization step — the source-gathering screen with manual source search and Octopilot search. The richest UI of the flow.

Reference

Rebuild the Customization page of octopilotai.app/guided-generation — the step that includes the manual source search and the Octopilot search features.

What you'll build

The Customization screen in Flutter — the manual source search (query field, results, add/select), the Octopilot search feature, the list of chosen sources, and the customization controls.

Scope
  • Build the manual source search — search field, result cards/list, add & remove sources.
  • Build the Octopilot search feature UI alongside it (tabs/modes as in the reference).
  • Show the selected-sources state and any customization options/controls.
  • Wire UI states — empty, searching (loading), results, selected — with mock/stub data.
  • Responsive layout · reusable widgets · clean state handling.
Done when

The Customization page renders in Flutter with both search experiences and source selection working on mock data — matching the reference, no backend.

Stack Flutter · Dart Scope frontend draft only Branch your own · fork PR
04
A
Anagha
Frontend · Guided Generation
~2–3 days

Guided Generation — Generation → Humanizer

Draft the tail end of the flow: the Generation screen through to the Humanizer umbrella page. A Flutter frontend from the live reference.

Reference

Rebuild the Generation page through the Humanizer umbrella page of octopilotai.app/guided-generation. The live pages define layout and behaviour.

What you'll build

Two connected Flutter screens — the Generation screen (content generation progress + the generated output), flowing into the Humanizer umbrella page (its humanize controls/options and output).

Scope
  • Build the Generation screen — progress/generating state and the generated content view.
  • Build the Humanizer umbrella page — its options/controls and the humanized output area.
  • Wire the flow + states between them (generating → generated → humanize) with mock/stub data.
  • Match the reference's layout and visual hierarchy on both screens.
  • Responsive layout · reusable widgets · clean state handling.
Done when

Both screens render in Flutter, the Generation → Humanizer flow works on mock data, and the layout matches the reference — no backend wiring.

Stack Flutter · Dart Scope frontend draft only Branch your own · fork PR
Past · Archived Assignment 01

01 August 2026

Last week's tasks — kept on the board for reference. Work at your own pace; there's no hard deadline.

5 tasks 1 per person
SubmissionFork-based pull request
Evaluation8 August 2026
Check-insDaily · via WhatsApp
01
S
Sean
Quality & Test Engineering
3 days

Flutter Test Suite

Build the safety net. As the team ships features fast, an automated test layer is what stops regressions from slipping into the app unnoticed.

Overview

The app has grown to many screens with almost no automated coverage. Your job is a fast, deterministic test suite that runs entirely against the in-memory repository and mock data — no backend, no network — so it's reliable in CI and quick to run locally.

What you'll build

Widget + golden tests for the six core screens, plus unit tests for the pure domain logic. Each screen test drives the UI through its real states and asserts what the user sees.

Scope
  • Set up the test harness: ProviderScope overrides + shared mock studios.
  • Widget tests for Home, Dashboard, Quiz Me, Flashcards, Teach Me, Mastery Report.
  • For each screen, assert all four states — loading, empty, error, data.
  • Golden (snapshot) tests for at least 3 visually rich screens.
  • Unit tests for mastery calculation, weak-topic selection, and the DTO mappers.
  • A README covering how to run the suite and add new tests.
Done when

flutter test passes locally, all six screens plus the three domain areas are covered, and the README documents the workflow.

Stack Flutter · flutter_test · golden Output additive — no app-code changes
02
A
Amirjon
Backend · Data Pipeline
2–2.5 days

Text-Extraction Module

Unlock real documents. Today the pipeline only reads plain text — your module lets it understand PDFs, Word docs and slide decks.

Overview

Real users upload PDFs, DOCX and PPTX, but the ingestion pipeline currently only accepts .txt / .md. You'll build the missing extractor as a clean, isolated module the lead can drop straight in.

What you'll build

A standalone Python module (your own folder) that takes file bytes + filename + mime and returns clean, chunking-ready text. Wrap it with a thin FastAPI demo endpoint so it can be tested on its own.

Scope
  • PDF via pypdf · DOCX via python-docx · PPTX via python-pptx.
  • Detect format from mime/extension and dispatch to the right extractor.
  • Clean output: collapse whitespace, drop repeated headers/footers/page numbers, keep paragraph breaks.
  • Fail gracefully on unsupported / corrupt files (clear error, no crash).
  • Match the contract exactly: extract_text(filename, mime, data) → str.
  • Unit tests with small sample files + a POST /extract demo endpoint.
Done when

Tests pass for PDF, DOCX and PPTX, the function signature matches exactly, and a README explains usage and integration.

Stack Python · pypdf · docx · pptx · FastAPI Output isolated module
03
C
Chris
Backend · ML Services
2.5–3 days

Semantic Grading Microservice

Grade by meaning, not spelling. "H₂O" and "water" should both be right — build the service that understands that.

Overview

Short-answer and fill-in-the-blank questions are graded today by exact string match, so correct-but-worded-differently answers are marked wrong. You'll replace that with semantic scoring.

What you'll build

A standalone FastAPI microservice that scores a student's free-text answer against the correct answer using local embedding similarity — no external API key required.

Scope
  • Endpoint: POST /grade { question, studentAnswer, correctAnswer } → { correct, score 0–1, feedback }.
  • Use sentence-transformers embeddings + cosine similarity.
  • Choose and justify a correctness threshold; handle empty / near-empty answers.
  • Return short human feedback (e.g. "Close — you missed the mechanism").
  • Tests over a labeled set — correct / partial / wrong — asserting expected verdicts.
  • Stretch: optional LLM-judge fallback behind a flag.
Done when

The service runs locally, returns sensible grades across the test set, and the request/response contract is documented.

Stack Python · FastAPI · sentence-transformers Output own microservice
04
S
Shahaiar
Backend · Reliability
1.5–2 days

API Smoke-Test Script

Catch breakage in seconds. A single command that tells us the live API is healthy after every deploy.

Overview

After each deploy we need a quick, automated confidence check across the API surface. You'll build the smoke test that gates it — green means safe, red means stop.

What you'll build

A Python + httpx script that hits a set of endpoints, validates their responses, prints a clean pass/fail report, and exits non-zero on any failure so it can run in CI.

Scope
  • Check public endpoints first (health / readiness), then a few authenticated ones.
  • Assert status codes and the presence/shape of key response fields.
  • Handle the streaming (SSE) response format where it applies.
  • Clear console report with a summary line — X passed / Y failed.
  • Read base URL + token from env vars (provided privately — never hard-coded).
Done when

The script reports pass/fail for every target endpoint and exits non-zero on failure, ready to drop into CI.

Stack Python · httpx Output own script
05
A
Anagha
Backend · Test Data
1.5 days

Sample Materials Generator

Feed the pipeline. Realistic study documents, on demand, so the whole team can test uploads end to end.

Overview

To test uploads and content generation properly, the team needs believable study material across subjects and lengths. You'll build a generator that produces it on demand — the fixtures everyone else tests against.

What you'll build

A Python CLI script that outputs varied sample study documents in .txt and .md, structured like real notes — titles, sections, key terms and examples.

Scope
  • Multiple subjects — Biology, History, Networking, Economics… (a template set each).
  • Multiple sizes — from a short one-page note to a long multi-section chapter.
  • Realistic structure: headings, lists, definitions, worked examples.
  • CLI flags: --count, --subject, --size, --out.
  • Short README with example commands.
Done when

Running the CLI outputs a folder of varied, realistic sample files across subjects and lengths, ready to upload.

Stack Python Output own script · no credentials needed
Assignment 06
New tasks drop next week — and this board keeps every past assignment too

Ground rules

Every task is a self-contained deliverable. You build the isolated piece — the lead integrates it into the main system.

  • / Build in your own folder / repo — never touch the main backend code.
  • / Ship a README with clear run steps.
  • / Match the given contract exactly (signatures / request shapes).
  • / Write tests where the task calls for them.
  • / Keep changes additive; don't break existing behaviour.
  • / Ask early if a contract is unclear.