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 01
CadenceWeekly
Test CoverageText ExtractionSemantic GradingAPI ReliabilityTest Data Test CoverageText ExtractionSemantic GradingAPI ReliabilityTest Data
Assignment 01

01 August 2026

This week's tasks — pick yours up and build. 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 02
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.