Skip to main content
友田 陽大

A restaurant-matching site for foreign travelers

Tinder-style UI | multilingual | team development | clean architecture

Client

Tourism industry (services for hotels and travelers at Tokyo sightseeing spots) | Setup: team development (using GitHub) | Service area: Tokyo

My role

Frontend, backend, and infrastructure developer (a full-stack developer in team development)

Challenge (Situation & Task)

Foreign travelers can't find the best restaurants because of the language barrier. Existing gourmet sites are Japanese-centric and hard to use, and hotel staff are too busy to give every traveler careful recommendations.

At Tokyo's sightseeing spots, foreign travelers are surging, yet the language barrier makes it hard to find "a restaurant that fits my taste." Existing gourmet sites are Japanese-centric and hard for foreigners to use. Contacting restaurants to book (phone or email) is also hard due to the language barrier. Three problems overlapped: "I don't know which restaurant fits me," "I can't read the menu," and "I don't know how to book."

Why these technologies (Rationale)

  • Tinder-style swipe UI: language-agnostic, intuitive operation to choose "like"/"dislike" visually, minimizing the language barrier

  • Multilingual (manual implementation): without an i18n library, all languages entered manually. Supports 4 languages: Japanese, English, Chinese, Korean

  • Image-centric UI: minimizing text and choosing intuitively by food photos — a language-independent UX

  • Go + google/wire (DI): introduced the DI library google/wire to realize clean architecture — a testable, maintainable design

  • Next.js + Vercel: fast rendering and global CDN delivery

What I did (Action)

  • Implementing the Tinder-style UI: implemented swipe animations with React + Framer Motion, choosing restaurants with intuitive operation

  • Multilingual (manual implementation): without using an i18n library, entered the whole service's translations by hand. Supports 4 languages: Japanese, English, Chinese, Korean

  • Implementing clean architecture: leveraged google/wire (DI) in the Go backend for a design based on the dependency-inversion principle. Thoroughly separated layers (Controller/UseCase/Repository)

  • Quality improvement via test code: implemented unit and integration tests for thorough quality assurance, emphasizing test coverage

  • Team development via GitHub: built an efficient team workflow leveraging pull requests, code review, and a CI/CD pipeline

  • Building a CI/CD pipeline: ran automated tests (Go test/Jest), linters (golangci-lint/ESLint/Prettier), and vulnerability scans (npm audit) on GitHub Actions, verifying per pull request to ensure code quality and security

Adopting a Tinder-style swipe UI, implemented smooth swipe animations with React + Framer Motion. For multilingual support, without using libraries like next-i18next, the entire service's text was entered manually in Japanese, English, Chinese, and Korean. On the backend, introduced google/wire (a DI library) in Go to realize clean architecture; based on the dependency-inversion principle, clearly separated the Controller/UseCase/Repository layers to build a testable, maintainable codebase. Implemented unit and integration tests to improve quality. In team development with GitHub, thoroughly applied pull requests and code review, and realized automated testing/deployment with a CI/CD pipeline.

Key technical decisions

  • Tinder-style UI: maximizing UX with language-agnostic, intuitive swiping

  • Multilingual (manual implementation): without an i18n library, all text manually supported in 4 languages

  • Go + google/wire: a DI library to realize clean architecture

  • TypeScript + zod: strict type safety and validation on both frontend and backend

  • Next.js + Vercel: fast rendering and global CDN delivery

Responsibilities

  • Frontend development (Next.js/React)
  • Backend development (Go/Echo + google/wire)
  • Infrastructure build (AWS/GCP/Terraform)
  • Multilingual implementation (manual)
  • UX design (swipe UI)
  • Test-code authoring (unit & integration tests)

Technologies

Golang
Echo
google/wire
Next.js
React
TypeScript
zod
Vercel
AWS
GCP
Terraform
PostgreSQL
Docker
Framer Motion
GitHub
GitHub Actions
Go test
Jest
golangci-lint
ESLint
Prettier
npm audit

Results in numbers

Languages supported
4languagesJA, EN, ZH, KO (library-independent, manual implementation).

Results

  • Realized a language-agnostic, intuitive UI (deployed in Tokyo)
  • Manually implemented 4-language support (Japanese, English, Chinese, Korean)
  • Built a maintainable codebase via clean architecture (google/wire)
  • Achieved quality improvement via test code (unit & integration tests)
  • A team workflow leveraging GitHub (pull requests, code review, CI/CD)
  • Automated quality assurance and security scanning via CI/CD: ran automated tests, linters, and vulnerability scans on GitHub Actions, verifying code quality per pull request
  • Optimized the hotel-front-desk funnel with QR-code access

同様の課題、抱えていませんか?

あなたのビジネス課題も、最新の技術で解決できます。 まずは30分の無料技術相談から、状況をお聞かせください。

自社の課題もSaaS化できるか相談する

プロジェクト単位(請負)・技術顧問、どちらにも対応可能です

View all case studies