All work

Master’s thesis · 2026

Design Mentor

An AI mentor for design students that asks questions instead of giving answers.

Role
Design, architecture, the UI states and the prompt rules. Claude Code wrote the code, and I reviewed it.
Period
March to June 2026
Status
Prototype, tested with five people. No accounts or database.
Stack
  • Next.js
  • React
  • TypeScript
  • Vercel AI SDK
  • Gemini
  • Zod
  • Zustand
  • dnd-kit
  • Tailwind
Live demo, no model needed UI in Czech, desktop
On this page
  1. 01Problem
  2. 02What I built
  3. 03Two decisions
  4. 04Result
Recorded in the running app. The replies come from demo data, not a live model. UI in Czech.

Problem

Design students already use chatbots. The chatbot answers, the student pastes it in, and next time they still can’t do it alone. Before designing anything, I interviewed five students and designers who use AI. They struggled to structure a problem, judged designs without criteria and stopped feeling the decisions were theirs. I wanted the student to do the thinking.

What I built

My master’s thesis: a web app that guides a student through one design project, 12 steps in four phases.

  • Each step is a conversation. The mentor writes first. Each question names the teaching technique behind it and has a “Why am I asking?” link.
  • When a step needs a tool, like a journey map, it appears inside the conversation.
  • The student rates their own work before the consistency check, then sees both ratings side by side.
  • At the end of a phase, the student writes what they learned, and a gate lets them through or names the step to go back to.
  • Change an earlier step and the steps that depend on it are flagged.
One step as a conversation.
One step as a conversation. Earlier parts collapse. At the bottom, the student picks how to answer.
An earlier step changed.
An earlier step changed. The steps that depend on it turn orange.

Two decisions

The model fills in fields. The UI stays fixed. Every reply is a JSON object checked against a schema: the message, the technique, the reasoning, what input comes next. A reply that doesn’t match is rejected. The other option was a model that generates its own UI, but students can’t learn a UI that changes shape every turn.

The student judges first. The check doesn’t run on every answer. The student asks for it and rates their own work first. A check that runs every time teaches people to stop checking. Behind it are four small agents, Mentor, Validator, Vision for sketches and Summarizer, and the interface decides which one to call.

Four states: a failed phase gate, the mentor switching technique, a hint, an offer of more help.
Four states: a failed phase gate, the mentor switching technique, a hint, an offer of more help.

Result

The whole flow ran on a live model, from the first question to the last gate. Five people learning UX design, three students, a graduate and a junior designer, used it for about 45 minutes each.

The questions did their job: one tester noticed that what she had written as the problem was really a solution. The phase gate caused the most friction. Testers couldn’t tell what it wanted, and one had ChatGPT write an answer it would accept. I changed the gate to ask what the student learned and made it easier for beginners, but haven’t tested that change yet. The evaluation doesn’t show that students learned more, so I don’t claim it.

What I’d change: the tools come as a code block inside the message, and broken blocks need extra code to fix. Next time I’d make the tool its own typed field.

A passed phase gate: what the Validator said and what the student made.
A passed phase gate: what the Validator said and what the student made.