Turning “language objectives are hard” into a guided, teacher-friendly workflow.
I’ve often been asked to write Language Objectives—and I’ve often struggled with them. This app is my solution. I won’t explain what a Language Objective is here (see WIDA or try the app), but below is how the idea took shape.
The idea grew out of a UX course. I’d made a PowerPoint on stress management—useful, but not very marketable. Then I read a blog where designers described building small, focused apps (like a bird-call trainer) from sketches to code. That unlocked it for me: start simple, iterate, and ship.
I mocked ideas in Figma: quick links to WIDA, a “view finished objectives” mode, and a “create your own” flow.
The first goal was a clean viewer: one objective per screen, with next/back and a “create” button. Learning Figma took time, but it helped me think like a builder—iterate fast, get feedback, refine.
From there, I sketched the create flow (storyboarding). The core idea became the Combiner: gather the teacher’s choices and combine them into a polished objective.
The first versions were barebones and click-heavy—basically dropdowns and “Next.” Feedback from my UX-designer brother-in-law confirmed it: useful, but tedious. Time to evolve the interaction.
I’d been using AI to problem-solve, so I embedded it into the builder. Instead of “just ask ChatGPT,” I combined AI with structured UI: dropdowns, cards, and selections. The result: an objective-building guide/avatar.
Integrating AI into Flask had a learning curve. Beyond basic imports, I tuned prompts and its temperature to steer behavior—like stage directions:
assistant_reply = clean_gpt_response(
ask_llm(
[
{"role": "system", "content":
"Explain WIDA language domains (Listening, Speaking, Reading, Writing) "
"in one short line each. End with one question: "
"'Which domain fits your lesson?' Use bullets; ≤8 words per bullet."
}
] + chat_history,
model="gpt-4",
max_tokens=120,
temperature=0.2
)
)
I’m continuing to improve the site. Recent additions include a progress tracker so teachers can see how many questions remain. I’m collecting feedback and iterating.
Here’s a quick how-to guide to help you navigate the app: