Work 作品 About 關於 Creative 創作 Contact 聯絡 Resume 履歷
All Work全部作品
本案例研究以英文呈現
Hackathon UX Research Design System React 🏆 1st Place · Apify Prize

MoodBoard

Upload a photo of your room, set a budget, tap a few style tiles — and get your actual space transformed, with a real, shoppable product list sourced live from the web. Built in 17 hours, as a team of four.

Role
Sole Designer — UX Research, Design System, Frontend
Team
4 people
Timeline
17 hours · May 29–30, 2026
Event
Cascadia AI Hackathon · thinkspace, Seattle
Live Demo
MoodBoard landing screen — Warm Studio design system
17hrs
Idea to working product
6
Screens designed & shipped
12/54
Overall placing
$500
1st place · Apify Prize
The Problem
Finding furniture that actually fits — your space, your style, your budget — means hours lost in an ocean of online options. And the tools that promise to help either ignore the budget, or leave you with a pretty picture and no way to actually buy.

We’re all renters — so this was a pain we’d each lived, not one we imagined. Whether you’re filling an empty room from scratch or working around furniture you already own, it breaks at three distinct points. MoodBoard was built to close all three at once.

01
Starting from nothing

IKEA alone carries thousands of products; Wayfair, millions. Without a visual direction, every choice feels like it could be wrong — so people impulse-buy or stall.

02
Budget

Existing tools render a redesigned room. None search for actual purchasable products that fit a real budget. The gap between inspiration and action stays exactly where it was.

03
Coherence

People who furnished piece by piece end up with rooms that feel random — not bad taste, just each purchase made in isolation. The room has no thread.

MoodBoard searches the web in real time for products that match the user’s style and budget, composites them into a photo of their actual room, and delivers a prioritised shopping list they can act on immediately.

Fri · 8:00 PMhour 0
01 Two Hours of Research, Three User Types

The idea was locked at 8pm. The venue closed at 10pm. Those two hours went to research — first a fast scan of existing tools to pin down the gap (they render a pretty room, but none shop it to a real budget), then the real depth into the people. Three personas, built around the users who actually redecorate on a real budget.

Different situations, different stakes — but one shared problem: not a lack of taste, but too much noise. All three needed the field narrowed, fast, to things that would actually work together in their specific space.

Persona 1 · Existing renter
Alex · 28
Remote worker · 1-bed · furnished piecemeal over 2 years
Budget$350
“Give me suggestions. Don’t tell me to prompt it — I usually don’t know what I want.”
Goals
  • Make the room feel cohesive — pieces that belong together
  • A saved plan to shop from gradually, not all at once
  • Discover taste by seeing it, not describing it
Pain points
  • Bought pieces separately — the room feels random
  • Can’t translate Pinterest into a real decision
  • Loses track of spend across shopping sessions
Persona 2 · New mover
Jordan · 26
First solo apartment · moved from shared housing · mostly empty
Budget$600
“I don’t even know where to start. The room is just… blank.”
Goals
  • A starting kit — the essential 6–10 pieces
  • Commit to a style they won’t regret in 6 months
  • A clear spend order — what to buy first
Pain points
  • Blank-canvas paralysis — nothing to anchor from
  • Fear of style regret — can’t commit unseen
  • Urgency + overwhelm — buying fast = random room
Persona 3 · Student / new grad
Maya · 21
First real apartment · shops IKEA, Marketplace, thrift
Budget$120
“I want it to look curated, not cheap. But I literally have $120.”
Goals
  • Look intentional and curated — not budget
  • Pieces under $30 — IKEA, thrift, or dupes
  • A shareable “room makeover” moment
Pain points
  • Tools always recommend things out of budget
  • Style exists, execution doesn’t — can’t afford it
  • Feels excluded — “this tool isn’t for me”

That finding anchored every subsequent decision: no open text inputs. Every choice had to be visual, bounded, and immediately actionable.

User Journey Map

As a team, we first talked through the flow and pulled out the screens we’d need and what each one had to do. From there, I used the personas and this map to pin down the emotion at every step in detail — and made it my guide for the design that followed. Every later decision — budget-first, the named loading screen, the composited “your actual room” reveal — traces back to a stage on this map.

😩
Trigger
Frustrated
No starting point — “it just feels wrong.”
🤔
Discover
Curious
Trust barrier — prove it’s not a gimmick, fast.
😅
Upload
Anxious
Photo anxiety — signal “messy is fine.”
😌
Budget + Style
Engaged
Decision fatigue — budget filter before style.
😯
Generating
Anticipating
Dead time — name each step so the wait feels earned.
🤩
Results
Delighted
Reality gap — composite into their real room.
★ Emotional peak
😊
Save & Share
Confident
Action gap — save-for-later is the real CTA.
Fri · ~Midnighthour 4
02 The Design Direction, Decided at Midnight

Most AI design tools cluster around two visual modes: clean SaaS grey, or professional-grade dark-mode tools dense with controls. Both say the same thing implicitly — this tool is for people who already know what they’re doing.

The persona research had made the target user clear: someone overwhelmed by too many choices, not someone who needed more professional controls. So the direction landed deliberately opposite — warm, encouraging, a little playful. I named the system Warm Studio.

The interface should feel like a knowledgeable friend, not an interior design tool.
Sat · Morninghour 12
03 System Before Screens — “Warm Studio”

The next morning, before a single screen was designed, I built the design system. In a team of four under time pressure, a design system isn’t optional — it’s the communication layer. With it, the rules are already made and engineers can move in parallel without waiting on design.

Cream backgrounds instead of white. Heavy DM Sans — bold enough to feel confident, rounded enough to stay approachable. Organic colour blobs used sparingly: personality, not decoration.

Coral#F4724A
Pink#F2A0BC
Green#4CAF72
Blue#5BA4CF
Yellow#F5D030
Lavender#C5AEED
Canvas#F4F1EC
Ink#1C1C1C
11
Design tokens — 6 accents, 5 neutrals
DM Sans
One typeface, weights 400–900
Copy-paste
Tokens written to drop straight into global CSS
The Most Deliberate Decision

The sharpest call in the system wasn’t a colour or a typeface — it was the sequence of inputs on the Budget + Style screen.

The decision
Budget slider first. Style tiles second. Always in that order.
Why
For all three personas, budget is the real constraint — not style. Seeing style before anchoring to a number is window shopping: it builds desire before checking reality.
For Maya especially
Budget-first is a respect signal — this tool knows you have limits, and it’s working within them from the start.
Sat · Middayhour 16
04 Wireframe to Handoff — The Finished Product

Six screens, each with a single primary action, each mapped to a moment in the journey: Landing → Upload → Budget + Style → Generating → Results → Save.

Here the process leaned on AI as an accelerator. Once the design system was set, I had Claude regenerate the wireframes in the Warm Studio direction — turning a low-fi layout into a hi-fi screen I could actually react to. I used that hi-fi version to lock direction with the team, then fed it back to Claude to generate the React code. That working frontend went straight to the shared repo, where my teammates wired up the backend. No redlines, no spec document — the running code was the handoff.

Below are all six screens, captured live from the shipped product.

The Demo — Your Actual Room, Transformed

The moment the product either delivers its promise or doesn’t: the user’s real room, with new pieces placed in it — every item sourced live and priced to a $350 budget.

Before
The user’s actual room, before transformation
After
The same room, transformed with shoppable products within budget
Sat · 1:00 PMsubmitted · hour 17
05 What Shipped, What Didn’t

At 1pm on May 30th, the team submitted a working product. The Apify-powered product search worked. The room photo composite worked. All six screens ran end-to-end. What got cut: the mobile version and the landing page — both planned, both dropped when it became clear there was only time for the core flow. A product that does one thing well beats a polished one you can’t demo.

Two skills sharpened under pressure. First, design-direction speed — reading a space of reference images quickly and locking the right visual language without circling back. Second, collaborating with engineers through code — not handing off specs, but pushing working React to a shared repo and fixing issues in real time alongside people building the backend. That kind of collaboration only happens under a deadline.

06 Under the Hood

The hackathon required every team to use sponsor tools — and in our case, the sponsors became the product. Four services, four jobs.

AWS Bedrock

Reads the uploaded room photo — detecting existing furniture, colours, and layout.

Apify

Scrapes the live web in real time for purchasable products that match style and budget. No fixed database — real results.

Claude API

Curates the scraped candidates, writes the “why this fits” reason on each card, and generates the moodboard PDF.

Box

Stores session photos and returns the finished PDF as a shareable download link.

React

The frontend — my piece of the stack.

One thing the architecture made clear for the design: the Generating screen couldn’t be a generic spinner. The pipeline is genuinely multi-step — room analysis, web scraping, AI curation, PDF render. The loading screen shows each step by name (“Reading your room… Searching the web… Finding products…”) because the wait needed to feel purposeful, not broken. The wait is the feature.

From the Hackathon

17 hours, four people, thinkspace Seattle — from idea-lock at 8pm to a working product on stage.

The hackathon venue — thinkspace, on the Seattle waterfront
01 The venue — thinkspace, on the Seattle waterfront.
The team building the core flow on laptops
02 Heads-down — building the core flow.
The team after submitting, MoodBoard running on a laptop
03 Submitted — the product running on the laptop.
The team demoing on stage, the Budget + Style screen projected behind them
04 Demo on stage — the Budget + Style screen, live.
What’s Next
Mobile-first redesign

The users it’s designed for live on mobile. Upload becomes tap-to-photograph; Results becomes a swipeable card stack rather than a side-by-side layout. The interaction model changes enough to design from scratch, not adapt down.

Style inference from saved content

Most users have been curating their taste for years — in Pinterest boards, saved Instagram posts, TikTok lists. Connecting those lets the AI build a far more accurate picture than a handful of tile taps ever could.

The Team — Four People, 17 Hours

Four people, four clear ownerships — design, room generation, AI curation, and the data layer. Each owned their slice end-to-end.

DT
Dianne Ting
Designer · Frontend

Owned design and frontend — ran the UX research, built the Warm Studio design system (tokens, type, components), and shipped the React upload → style → budget → result flow.

SP
Sai Kiran Peddola
Backend

Owned the room-generation backend — a Spring Boot service on AWS Bedrock (Stability inpaint) that paints furniture into the photo, with a gradient mask so the original walls and ceiling blend into the result.

VY
Varsha Yarragunta
AI / Integration

Owned the AI product curator — wired Apify’s Amazon & IKEA scrapers into Claude to recommend budget-aware products that match the user’s style and work together as a room.

MP
Mansa Vijay Patidar
Backend / Data

Owned the Box data layer — handled photo uploads and per-session folders, persisting each room photo and its generated result to Box storage.

Outcome

Top 12 of 54 teams, and 1st place in the Apify Prize category — $500 — at Cascadia AI Hackathon 2026. For most of us, it was our first hackathon.

The four-person team on stage after winning 1st place in the Apify Prize
🏆 On stage — 1st place, Apify Prize The full four-person team at the Cascadia AI Hackathon closing.