よいちかぞく Night Market — six scattered polaroid photographs of Taiwanese hot food with handwritten Japanese captions, on a warm cream paper background.
User Research · Product Management · 2024

よいちかぞく 夜市家族

A scanner app for Japanese tourists in Taiwan’s night markets, built to read the signs that translation apps can’t. Four months, six people across design and engineering schools at NCKU.

Year
2024 · 4 months
(handoff at week 7)
Type
Night-market scanner app
for Japanese travellers
Methods
Survey · Persona · Field photo
Competitive matrix
Project
Team project
Ku et al. (Survey Runner)
01 · Research

Two surveys, one clear pull

We started by asking Japanese travelers who had visited Taiwan what they actually came to night markets for. Twenty-two respondents, two short surveys: one on familiarity, one on stall preference. Two numbers came back clean.

20 of 22
Japanese travelers had visited a Taiwan night market at least once
100%
picked food when asked which stall type drew them in
The pull factors pulled from open-ended answers: the sights, the tastes, the things to take home, the feel of being inside the crowd, the people. Food sat at the centre of every group. Even respondents who started with souvenirs or games kept coming back to flavours and smells.
02 · Persona

Yamada Kenichi, 27, Osaka

From the survey groups we drew one persona. Not because one person stands for twenty-two, but because the team needed a shared face to design against. Yamada is who we sketched on the wall.

Yamada Kenichi — illustrated head-and-shoulders portrait of the persona, light blue button-down shirt, glasses, small backpack strap.
Name
山田健一 Yamada Kenichi
Age
27
Job
Office worker, mid-tier salary
Lives in
Osaka, single, with parents and a younger sister
Travel style
Solo, deep dive, follows social-media food trails
Goal in Taiwan
Eat the local way — recognise it, pronounce it, order it

“I can roughly tell what the food is. I just don’t know its name, what’s inside it, or how to ask for it.”

  • Name recognition Chinese characters look familiar but mean different things in Japanese — close enough to mislead, not close enough to help.
  • Visual unfamiliarity Some dishes look nothing like what he expects, and some of those dishes might contain things he can’t eat.
  • Ingredients & method Not sure what’s in the sauce, whether it’s fried or stewed, how spicy “a little” will be.
  • Ordering language Pointing works; specifying anything beyond “this one” doesn’t.

Below, the four challenges acted out as a single evening. Six beats, one traveler. The journey map in comic form.

Yamada from behind, standing under the arched gateway of a Taiwan night market at dusk, lanterns and food stalls ahead.
01 · Arrival He steps under the gateway. Curious, a little overwhelmed.
Yamada looking up at a hand-painted vendor sign, slight frown of concentration.
02 · Signs The characters look familiar but the meaning won’t resolve.
Yamada gesturing at displayed food across the counter, vendor reaching back.
03 · Pointing He points. The vendor answers warmly, in words he can’t parse.
Yamada seated at a low plastic table, a vendor's hand placing an unfamiliar dish in front of him.
04 · Served The dish arrives. It looks nothing like what he had in mind.
Yamada holding his phone close, frowning, trying to translate the ingredients.
05 · Ingredients He opens a translation app. It tells him almost nothing useful.
Wide shot of Yamada walking out of the alley, looking up, a faint app icon appearing as a thought.
06 · The wish He walks out carrying a question. We built the app that answers it.
03 · Solution

Snap it, name it, learn it, or search it.

Brand state. The frame before any functional UI loads.

Home tab. Tonight’s nearby night markets at a glance.

Second tab: 美食名冊, the dish directory. Salty, sweet, drinks, favorites. Browse before you go.

Fourth tab: profile. Language, theme, dietary-flag toggles.

Camera tab. The reason we built the app.

Edge detection + OCR against a closed-domain food-sign corpus.

Vector lettering yields only one clean character: . The app surfaces every dish containing . No false certainty.

Selected entry: image, Japanese reading, ingredients, dietary chips.

User profile flagged sesame. The app cross-references it against the ingredient list.

Allergen alert. The same flag travels with the order to the vendor.

04 · The translation wall

When OCR works and still fails

For most signs, generic OCR holds up fine. Point the camera, extract the characters, hand them to a translator. The characters arrive. The food doesn’t.

A wooden hanging banner at a Taiwan night market reading 東山鴨頭.
東山鴨頭 Translation hands you the name. It can’t hand you the dish.

OCR reads these four characters cleanly. Google Translate gives back “Donshan Duck Head.” A Japanese tourist still has no idea what this stall is: a self-serve braised-stew counter from Tainan’s Donshan district, where you point at items in a warming tray and they’re tossed in spiced soy broth to order.

That gap is what the case is about. Yamada doesn’t need a better OCR pipeline. He needs the cultural context the name is shorthand for: what form of dish it is, how it’s served, what commonly goes in it, whether anything in it might break his dietary rules.

So we built that context. We walked through three night markets, collected forty-eight photos across thirty-two food categories, and annotated each one by hand: name, region of origin, cooking method, common ingredients, dietary flags. The model doesn’t just recognise the characters. It pulls the cultural entry behind them.

05 · Strategy

Translation apps and travel apps each miss half

Before we built, we scanned the field. Two categories existed already: generic translation apps and Taiwan night-market travel apps. Each had what the other lacked.

Translation apps · what they offer Yamada
Feature App A App B App C
中/日 translation yesyesyes
OCR text recognition yesyesyes
Domain-tuned for street food
Voice synthesis yesyesyes
Food intro / image / ingredients
Taiwan night-market travel apps · what they offer Yamada
Feature App D App E
Nearby-market discovery yesyes
Map & landmark queries yes
Stall recommendations yes
Translation
Food intro / dietary alerts
05b · Positioning

Where the value lives

We mapped each feature on two axes: how directly it solves Yamada’s pain point (horizontal), and how much emotional surprise it brings (vertical). Two patterns came out clean.

The lower-right quadrant (Essential Foundations) is crowded. Every translation app and every night-market travel app already covers it. We had to build the baseline, but it wouldn’t set us apart.

The upper-right quadrant was empty. That’s the wedge: features that meet the same pain point but bring emotional surprise. Domain-specific image recognition tuned for night- market signage. Cultural context attached to every dish, not just a literal translation. That’s where 夜市家族 placed itself. The dashed arrow below traces the iteration path: build the baseline, then push the wedge.

Feature Value & Innovation Matrix Strategic feature positioning. Horizontal axis: degree of solving Yamada's pain points, from nice-to-have on the left to must-have / core need on the right. Vertical axis: degree of emotional delight and innovation, from standard/expected at the bottom to innovative/delighting at the top. Four feature bubbles cluster in the lower-right Essential Foundations quadrant and the upper-right Core Delighters quadrant. One bubble sits in the upper-left Exploratory zone. Low-priority items sit as plain text in and around the centre. Two dashed arrows trace the team's product iteration path. A teal arrow marks the Innovation pathway — experimental novelty into strategic value. A burnt-orange arrow marks the Commoditization drift — today's novelty into tomorrow's expectation. 迭代策略矩陣 Feature Value & Innovation Matrix · night-market app 具備驚喜感的感性體驗 Innovative / Delighting 市場常見的基礎技術 Standard / Expected 非迫切需求 Nice to have 痛點解藥 Must have 感性探索功能 Exploratory / Niche 產品核心亮點 Core Delighters 低優先級 Low Priority 基礎建設 Essential Foundations Specific-domain image optimization (night market) Translation product intro Chinese ↔ Japanese + image recognition + speech synthesis Nearby attractions recommendation Collection elements Vendor recommendations Attraction search Transportation suggestions Route planning Community interaction Innovation pathway experimental novelty into strategic value.
The iteration path. The dashed arrow traces how the team planned to push from Essential Foundations (everyone has these) toward Core Delighters: domain-specific recognition plus cultural context per dish. The wedge no existing app had built.
06 · Database

One studio aesthetic, thirty-eight dishes

We wanted the food-intro screen to feel like a single confident voice, not a scrapbook of borrowed images. A shared visual language across every dish mattered more to us than photo realism. So we built the image library ourselves.

Thirty-eight studio-style AI photos across savoury, sweet, drinks, and a fourth category for the ingredients we flag as common dietary triggers. One lighting style, one camera angle, one plating style. The image Yamada sees in the app holds together dish to dish, even when the stall version varies.

Popcorn chicken — golden fried bite-sized pieces with basil.
鹹酥雞 (Taiwanese popcorn chicken)
Brown sugar pearl milk — milk in a glass with dark sago pearls and brown sugar streaks at the bottom.
青蛙撞奶 (Brown sugar pearl milk)
Braised pork over white rice.
滷肉飯 (Lu rou fan)
Shaved ice with fresh fruit on top.
水果冰 (Fruit shaved ice)
Grilled meat skewers with char marks.
烤肉串 (Grilled skewers)
Beef noodle soup in a deep brown broth.
牛肉麵 (Beef noodle soup)
Bubble milk tea with tapioca pearls visible at the bottom.
珍珠奶茶 (Bubble tea)
Grilled corn brushed with savoury glaze.
烤玉米 (Grilled corn)
Round golden sweet potato balls.
地瓜球 (Sweet potato balls)
Duck blood and stinky tofu in deep red broth.
鴨血臭豆腐 (Duck blood & stinky tofu)
Dark amber winter melon tea in a glass.
冬瓜茶 (Winter melon tea)
Cilantro leaves close-up — flagged as a polarising ingredient.
香菜 (Cilantro) · dietary flag
Database schema. Each food entry carries six fields: name · intro · keywords · dietary_flags · image · popularity. Three top-level categories (savoury, sweet, drinks) plus a separate ingredients table for the dietary-flag lookups (peanut, shellfish, cilantro, chilli, alcohol).
07 · Visual system

Wordmark and palette

One wordmark, one palette. Both running through every screen of the app.

よいちかぞく Night Market snack wordmark — hiragana split across two lines with a fork drawn through the middle and four small food-illustration accents below, flame-orange on transparent ground.
The team’s wordmark, flame orange #EA5413.
Midnight blue Login surface, main background #275B88
Flame orange Logo, buttons, primary action #EA5413
Pearl white Detail text, screen background #FFFFFF
Deep black Menu labels, dietary alerts #000000
08 · Reflection

What we learned, three ways

Three lessons came back from the four-month cycle. One about method, one about scale, one about how a designer and engineer team actually ships something together.

Method

Closed-domain beats generic when the domain is tight

The training set was forty-eight photos. In a generic setting that’s nothing. Inside a closed domain (Taiwan night-market food signs), it was enough to beat off-the-shelf OCR. The trade-off is direct: we gave up coverage for accuracy on the exact thing the user needed.

Scale

Manual annotation doesn’t scale. Government registry might.

The pipeline we used can’t cover a city, let alone an island. At commercial scale, the clean path is an upload platform run by night-market associations. Vendors share their own sign-design files, and the model trains on those original files rather than photos of them. Until that platform exists, asking vendors to upload their sign photos in the app is the bridge.

Collaboration

The handoff line is the project

The bottleneck on multi-discipline student projects is rarely talent. It is whether the design clock and the engineering clock are set to the same time. Ours were, because week 7 was a hard handoff line both sides agreed on before the semester started.

Team

Six people, two disciplines, four months

A class collaboration between NCKU’s Industrial Design and Computer Science master’s programmes. Three members on each side of the handoff.

Design school · weeks 1–7 main effort, weeks 7+ asset support

Survey, persona, paper prototypes, wireframes. After handoff, design supported the engineering team and hosted midterm and final presentations.

  • 許庭瑜 Hsu Ting-Yu Team Spokesperson & Linguistic QA Hosted the midterm and final presentations. N2 Japanese — translated and wrote the introduction copy for every dish.
  • 顧文宇 Ku Wen-Yu Survey Runner & Field Photographer Ran the Japanese only-traveler survey and field-photographed the sign training corpus.
  • 陳禹任 Chen Yu-Jen UX / UI Designer Took the team’s wireframes through lo-fi to final Figma interface design.

Engineering school · weeks 7+ build

From wireframe to working Flutter app: integration, model training, mobile features.

  • 李宗翰 Lee Tsung-Han Software Engineer · Integration Owned engineering integration and second-half scheduling.
  • 洪靖睿 Hong Jing-Rui Computer Vision Engineer Trained the closed-domain sign-recognition model on the field corpus.
  • 鄭勝謙 Cheng Sheng-Chien Mobile Front-End Engineer Flutter front-end plus device-API integration: camera capture, haptic feedback, native hooks.