表無し

https://github.com/RITZ101411/omotenashi

TypeScript

React

Python

Docker

PostgreSQL

「表無し」〜地元民だけが知る裏スポット案内アプリ〜

まを

RITZ RITZ

たくと

gyt-18h

推しアイデア

実際にその地域を歩き回った証明がある人だけが「マスターガイド」になれる制度。Googleマップや食べログと違い、投稿者が本当に地元民かどうかの信頼性が担保される。

作った背景

旅行先でガイドブックに載ってない地元民だけが知るスポットに行きたくても、どこで調べればいいかわからない。投稿者が本当に地元民かもわからない。その課題を解決したくて作った。

推し技術

Leafletの地図上にスポットをピン表示し、スタンプ機能で訪問記録を蓄積。全スポットに対する訪問率を「探索度」としてリアルタイム算出し、地図を歩き回るほどゲーム的に進捗が可視化される仕組みを実装。

プロジェクト詳細

実装前の計画

開発背景 「おもてなし」を「表無し」と読み替えた、裏スポットを巡る街歩きアプリ。

作るもの 全員が「歩いて発見し、共有する人」裏スポットを投稿し、観光客がマップ上で発見できる。実際にその地域を歩き回ることで探索度が上がり、一定以上になるとマスターガイドの称号が得られる仕組みで、投稿の信頼性を担保する。

挑戦すること Supabaseなど未経験の技術にも積極的に挑戦し、チームの開発を支えるAPIを作り切る。チーム内で自分が圧倒的に一番勉強不足なので足を引っ張らないように迷惑にならないようによく考えて行動する。(まを) 初ハッカソンですが、チームでしっかりイメージを共有しながらスムーズに開発を進めたい!外部認証基盤を扱うのも初めてなので挑戦。(RITZ) 初ハッカソンで、わからないことだらけだが、最終日までにデモができるレベルまで完成させたい。Maps APIを使用するのが初めてなので頑張って実装したい。(たくと) ハッカソンの参加、Gitを使ったチーム開発、React,TailwindCSSを使ったUI開発全て初めての挑戦となるのでチームの足を引っ張らないように開発を成功させたい。(yt)

プロジェクト詳細

みなさんは、いつもの街を歩いていて
「ここ、意外といい場所なのに全然知られてないな」と思ったことはありませんか?

ありますよねーーー

そんな“地元の人だけが知っている裏スポット”を、歩いて見つけて、写真で残して、誰かにそっと共有できるアプリ。
それが「表無し(おもてなし)」です。

概要

おもてなし→おもて、ない→表、無い→表無し→裏しかない、といった連想で今回のアプリを思いつきました。

「表無し」は、観光地として有名な場所ではなく、地元の人が知っている小さな魅力を共有するためのマップアプリです。

ユーザは地図上で近くのスポットを探し、実際にその場所へ行くことで「足あと」を残すことができます。
スポットの近くまで歩くと地図上のサムネイルが反応し、写真を撮ってリアクションを選ぶことで訪問記録が残ります。

また、自分だけが知っているおすすめスポットを投稿することもできます。
投稿されたスポットには、他のユーザが訪問したときの足あとやリアクションが届くため、ただ投稿して終わりではなく、「誰かが行ってくれた」ことがわかる仕組みになっています。

コンセプト

このアプリのテーマは、「表に出ていない地元の魅力を見つけること」です。

有名な観光地やレビューサイトに載っている場所ではなく、
「この道の先にある小さな景色」
「近所の人だけが知っている落ち着く場所」
「誰かに教えたくなるけど、まだ知られていない場所」
を、歩きながら発見していきます。

投稿する人と見る人を分けるのではなく、全員が「歩いて発見し、共有する人」になることを目指しています。

推しポイント

実際に近づかないと足あとを残せない

スポットから一定距離以内に入ったときだけ、足あとを残せるようになっています。
ただ地図で眺めるだけではなく、実際にその場所へ行くことが体験の中心になります。

写真とリアクションで訪問を記録

スポットに到着したら写真を撮り、
「静かでよかった」「景色がよかった」「また来たい」などのリアクションを選んで足あとを残します。

数字の評価ではなく、その場所に行った人の感想が投稿者に届くようにしています。

投稿者にも反応が返ってくる

自分が投稿したスポットに誰かが訪れると、足あととして反応が残ります。
「投稿しても何も起きない」ではなく、誰かが実際に行ってくれたことがわかるのが特徴です。

マイページで探索の進み具合が見える

マイページでは、投稿数、足あと数、訪問したスポット数、探索率などを確認できます。
街を歩くこと自体が少しゲームのような体験になります。

主な機能

  • 地図上でスポットを表示
  • スポット詳細の表示
  • 現在地周辺のスポット探索
  • スポットへの足あと機能
  • 足あと時の写真撮影
  • リアクション選択
  • スポット投稿
  • マイページ表示
  • 投稿数、足あと数、探索率の集計
  • Supabase Auth によるログイン認証
  • 認証ユーザーに紐づいた投稿・足あと管理

画面構成

ログイン画面

メールアドレスとパスワードでログインします。
ログイン後は、地図画面へ移動します。

メイン画面

地図上にスポットが表示されます。
スポットをタップすると詳細画面が開き、近くにいる場合は足あとを残す流れに進めます。

スポット詳細画面

スポットの写真、名前、説明、投稿者情報、リアクション状況などを表示します。
スポットの近くにいる場合は、写真撮影画面へ進めます。

カメラ画面

訪問した証として、その場で写真を撮影します。
撮影後はリアクション選択画面へ移動します。

リアクション選択画面

撮影した写真を確認しながら、スポットに対する感想を選択します。
確定すると足あとが記録されます。

足あと完了画面

撮影した写真に足あとスタンプが押され、訪問完了を演出します。
その後、地図画面に戻ります。

スポット投稿画面

地図上でピンの位置を決め、写真・名前・説明を入力して新しいスポットを投稿します。

マイページ

ユーザーのプロフィール、探索率、投稿数、足あと数、訪問数を表示します。
自分がどれだけ街を探索したかを確認できます。

技術スタック

モバイル

  • Expo
  • React Native
  • Expo Router
  • NativeWind
  • MapLibre React Native

バックエンド

  • FastAPI
  • Supabase Auth
  • Supabase Database / Storage 想定
  • OpenAPI / Swagger UI

インフラ

  • Railway
  • Supabase

技術的な工夫

認証ユーザーに投稿と足あとを紐づける

バックエンドでは Supabase Auth の JWT を検証し、リクエストから送られた user_id を信用しない設計にしています。
投稿者や足あとを残したユーザーは、サーバー側で認証トークンから判定します。

これにより、他人になりすまして足あとを残すことを防ぎ、ユーザーごとのマイページ集計も正しく行えます。

位置情報を使った足あと判定

スポットの緯度経度とユーザーの現在地を比較し、一定距離以内にいる場合だけ足あとを残せるようにしています。
これにより、実際にその場所へ行ったことを体験として残せます。

投稿と訪問の循環

ユーザーはスポットを見るだけでなく、自分でも投稿できます。
さらに、他の人が自分の投稿したスポットを訪れると反応が返ってくるため、投稿するモチベーションが生まれます。

こだわった点

このアプリでは、スポットを単なる情報として扱うのではなく、「誰かが実際に歩いて見つけた場所」として扱うことを大事にしました。

レビューの点数やランキングではなく、写真、足あと、リアクションによって、その場所に行った人の感覚が伝わるようにしています。

「有名だから行く」のではなく、
「誰かがそっと残した場所に、自分も行ってみる」
という体験を作ることを目指しました。

今後追加したい機能

  • 投稿者へのリアクション通知
  • 足あと履歴の一覧表示
  • スポットごとの訪問者数表示
  • 写真アップロードの本格対応
  • Google / Apple ログイン
  • おすすめスポットのレコメンド
  • 地域ごとの探索バッジ
  • 友達とスポットを共有する機能

まとめ

「表無し」は、地元の人だけが知っている小さな魅力を、歩いて発見し、写真と足あとで共有するアプリです。

観光地ではないけれど、誰かにとっては大切な場所。
まだ表に出ていない、街の“裏スポット”。

そんな場所を見つけに行くきっかけを作るアプリです。

まを

@81dcdf24d4d8cafa