← back to work

abbado

An AI coordinator for university student teams. It helps with the part of group work nobody sees: everything between getting the brief and handing it in.

  • RoleSolo. Research, UX design, product decisions, AI, build.
  • Year2026
  • ContextMaster's thesis, UVic-UCC / Elisava
  • StackFlask · SQLite · Mistral AI · vanilla JS
abbado

The short version. Abbado is an AI coordinator for university group work, built end to end as my master's thesis. A 4 question onboarding maps each student to a Belbin role, the brief becomes a task plan with owners, and an AI facilitator nudges the team while the professor sees health, never individuals. The matching engine is validated in a 1,000 team simulation and the app ships with 656 automated tests. Next step: a real classroom pilot.

The problem

Group projects tend to fail the same way. One person ends up carrying the team, quiet people get talked over, and small conflicts grow in silence until the deliverable breaks.

Most of it happens in the stretch between the brief and the hand-in, when no one is really looking.

A student group chat in chaos the night before a deadline
The night before, in every group chat: nobody knows who owns section 3. This is the gap abbado was built for.

Research

I interviewed 11 students and professors. A few patterns kept coming up:

  • Silence. People keep quiet to avoid friction.
  • Stolen credit. Loud voices win; quiet work disappears.
  • Invisible work. Organisers do more, for the same grade.
  • A timing gap. Conflicts start early, but professors notice late.

Conflicts started in weeks 2 to 4, but professors didn't notice until weeks 7 to 8. That gap is the reason abbado exists.

Three people summed up what I found, and they steered every decision that follows:

  • Montse, the organiser. Ends up carrying the team and doing the invisible work, and burns out for the same grade as everyone else.
  • Agatha, the quiet one. Her work is solid, but louder voices talk over it. By the middle of the project she has stopped proposing.
  • Felix, the professor. He wants teams to learn, not to be policed. He finds out in week 8 what broke in week 3.

Design decisions

The one that mattered most

Visibility without surveillance. A professor needs to see how a team is doing, but the moment students feel watched they stop being honest. So the professor sees team health and never the person behind it. No roles, nobody named.

  • 4 questions, not 30. A short, adaptive quiz maps you to a team role, instead of a long personality test.
  • Health by deadlines. It tracks what's due, so a team behind on what matters can't hide behind a pile of small wins.
  • Role logic is deterministic. The matching runs on fixed rules, not the model. Same answers, same role, every time, and you can check why.
  • A chat that knows your context. Running on Mistral, it already knows your role and tasks. It facilitates and stays out of the actual work, and it never picks your team for you.
Abbado's onboarding: a single Belbin question with three plain-language options
The onboarding in practice: four short questions like this one map each student to a Belbin role. No 30-item personality test, and the same answers always return the same role.

The matching, under the hood. The four answers score each student across the nine Belbin team roles, and fixed rules pick a balanced spread. The engine also avoids the pairings my research flagged as friction-prone, two high risk (a Shaper with a Completer Finisher, a Plant with an Implementer) and five medium. And one boundary it never crosses: it does not pick your team. You choose your people; Abbado helps the team you chose work.

What I built

A real, deployed app, not a Figma mockup, with 656 automated tests behind it.

  • 11 interviews behind the design.
  • 4 onboarding questions, nine Belbin roles.
  • 1,000 teams in the validation simulation.
  • 656 automated tests behind the app.
  • 4-question onboarding and a Belbin role for each student.
  • The brief broken into tasks, shared out by profile.
  • A live dashboard with team health, alerts and the chat.
  • A shared process report at the end.
The live dashboard: the Bloom brief as tasks with owners, team overview with Belbin roles, progress bar, and Abbado's proactive check-in asking about a task
The dashboard, live: the brief turned into tasks with owners, the team with their roles, progress at a glance, and Abbado's check-in nudging a task before it slips.
The Abbado facilitator chat answering a stuck student: the reply names Lluis, Sara and Marta with their real roles and cites the brief
The facilitator, live: it knows the brief and the team, so the answer names Lluis, Sara and Marta with their actual roles. And before helping, it asks whether you have talked to your team first.
Abbado's shared process report: per-member activity with a privacy disclaimer at the top
The shared process report, identical for the professor and the students. It shows observable activity (tasks, blockers, messages) and says outright that it is "a starting point for conversation, not a verdict." The privacy stance, shipped in the product.

Honest about testing: I validated the matching logic with a 1,000-team simulation, which showed around 60 to 70% less friction. That’s simulation, not real users yet. Next is a real classroom pilot, plus Canvas and Moodle.

Chart: the same 1,000 simulated classes teamed up three ways. Median friction score drops from 12 with random teams to 5 with Belbin roles only, and to minus 14 with roles plus preferences
The result in plain terms: with roles and preferences together, the median team goes below zero, meaning the good pairings outweigh the friction. Numbers straight from the thesis study.

What I’d test next

The matching is validated in simulation, but abbado hasn’t run with a real student team yet. That’s the honest edge of the evidence, so here is the classroom pilot I’d run to close it.

  • 5 teams, one project each. Does abbado kill the "who owns section 3?" moment? I'd measure how fast each member commits to a role and whether task ownership is explicit by day three, not a vanity number.
  • The week 2 to 4 hypothesis. Friction starts early but surfaces late. I'd track whether abbado's nudges make a problem visible closer to when it actually starts.
  • The privacy promise, head on. Did students feel seen without feeling watched, and did professors get enough signal without monitoring? If students feel surveilled, the core bet failed.
  • What would change my mind. If teams ignore the assigned role, or reject the one the four questions give them, the matching needs rework before anything else.

What I learned

The decision I’m proudest of was what I left out. Most of the design work went into deciding what the professor would never get to see. In the end, privacy wasn’t a feature I bolted on. It was the answer to the problem itself.

Doing this solo, the research, the design, the AI and the build, meant there was no one to hand a decision to: every trade-off had to survive me arguing with myself. Exhausting, and probably the best training I could have asked for.

What I would change: I would take abbado into a real classroom sooner, instead of refining the simulation further. The evidence I still need lives with real students, not in my data.