Skip to content

kawatako/LocalKnot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

■サービス概要

旅行者(利用者)とその地元に住む人(事業者)とをマッチングさせて旅を充実してもらうサービスです。 旅行者は旅行先について掲示板で質問したり、旅行先の人に案内を依頼したりすることで充実した旅行を送ることができます。

■ このサービスへの思い・作りたい理由

町おこしをテーマに長野で民宿事業を友人と将来的にビジネスをしたいと話していた中で、その先駆けとして今回のサービスを検討しました。 私自身に特に長野に思い入れはないですが、せっかく作るのであればスケールできる可能性も考えて現在友人が行なっている民宿事業との親和性の高さを鑑みてこのサービスの方向にすることにしました。 また、過去に商材と事業者をマッチングさせる事業を私自身が立ち上げた経験も活かせると思いこのサービスを検討しました。

■ ユーザー層について

サービス初期は長野エリアでのローンチ予定です 事業者側: ・地元の大学生 ・大学院生 ・専門学校生(約60000人)を主要ターゲットとして、その他高校生、時間のある高齢者や主婦、サラリーマンの利用を想定しています。 ・地元還元をしたい人

利用者側: ・失敗したくない旅行者 ・英語圏の旅行者

■サービスの利用イメージ

利用の流れ

  1. 利用者は旅行先について、どういう場所がおすすめなのか、どういうプランで回るのがおすすめかを掲示板で調べることができます。 事業者側はその質問に対して回答をしたりそれに対してのレビューをもらう事ができ、それをプロフィールに反映させる事ができます。 また、事業者はブログのように旅行プランやスポットについてブログ記事のようなものを書く事ができそれをプロフィールに反映させる事もできます。
  2. 利用者は旅行にガイドが必要だと思った時に、「いつ、どこに、どれくらいの予算で、どういう事がしたい」などの要望をポストでき、それに対して事業者は応募してガイド案内依頼をもらう事ができます。 もしくは、事業者側で、旅行プランを作成して旅行者がそのプランに参加するという形も可能です。
  3. その際、旅行者は過去の掲示板の回答やリンク可能なSNSアカウントを見て人となりや知見を判断して誰に依頼を出す判断材料にする事ができます。

獲得価値

事業者側: ・自身の知見を活かせる満足
・金銭的な報酬
・言語障壁を取り除けることにより精神的な満足

利用者側:

・安心に旅行できる
・言語的障害を突破して旅行できる
・調べることなく旅行先の高品質なスポットを訪れられる

プラットフォーム側:

・掲示板への広告費 ・マッチング成立での仲介費用

■ ユーザーの獲得について

まず、友人の運営している民宿を運営する大学生と運営者に事業者(=ガイド)になってもらい、民宿に泊まるお客さんにサービスの宣伝と掲示板への質問をお願いする。 サービス初期は、サクラとして運営者で質問+回答を繰り返したり、こちらである程度旅行案内についてガイドへの報酬を払うなどして、サービスを使ってもらう機会を増やすなどしてコミュニティとして流行ってるいる感+利用実績を演出していく。 利用実績が増えたらインスタグラムのターゲティング広告を使い認知+ユーザー獲得を目指す。

■ サービスの差別化ポイント・推しポイント 競合サービス

マッチングガイド:プランに対して利用者が応募する、利用者がリクエストを出すといった基本的な機能はある  利用ユーザーがほぼいないため、サービススケールを諦めているかこれから進めていくか
Tour Master:ツアーガイドは審査制で事前面談を行い詳細な旅行プランや予算内容を決定→依頼するので事業者側の手軽感が弱い サイトがガチャガチャしていてどう調べればいいのかがわからないので使いずらい
foratravel:海外のサービスで、検索範囲は広い代わりにデザインに親しみが持てない  ランサーズのように、利用者の要望に対して事業者が入札していくような旅全般をオールインワンでサポートする立て付け

他社サービスとの差別化

機能的戦略:

・掲示板機能+SNSアカウントの連携で事業者側の人となりを知る事ができる。 ・動線がわかりやすい検索機能

営業戦略

・初期に実際に事業者として協力してくれる人がいること ・ローンチ時のターゲットエリアを絞ることで地元のサービス(特別)感を演出する ・実際に運営をしている利用者からのフィードバックを集めやすい環境(月の利用者200人、内海外旅行者: 40人(20%)英語圏の旅行者: 20人 (10%))

■ 機能候補

◇MVPリリース 

※MVPリリースでは、掲示板機能の完成までになります

ユーザー登録・認証機能

利用者登録: メールアドレス、パスワード、ニックネーム 事業者登録: 利用者登録と同じ

プロフィール機能

プロフィール編集: 自己紹介文、プロフィール画像、掲示板・ブログ一覧のリンク SNS連携: 使用しているSNSへのリンク

掲示板機能

質問投稿: 旅行先、日程、予算、興味のあることなどを指定して質問投稿 回答投稿: 質問に対する回答投稿 コメント機能: 質問や回答に対するコメント いいね機能: 質問や回答への共感 検索機能: キーワード、地域、カテゴリーなどでの検索(観光、グルメ、アクティビティなど)

◇本リリース 

※本リリースでは、ブログ機能、通知機能、利用者のマッチングと報酬システムまでを実装します

ブログ機能

ブログ機能: 事業者が旅行プランやスポットについてのブログ記事を作成し、公開 カテゴリ機能:カテゴリ(食事、アクティビティなど) スポット選択機能:エリア 画像投稿機能:複数の画像を掲載できる いいね機能:事業者、利用者からいいねがもらった数字が表示される コメント機能:ブログへのコメント キーワード検索機能:カテゴリ、スポット、ユーザーで絞り込み可能

通知機能

1.掲示板への回答、掲示板への投稿、ブログへのコメントがあった場合に通知が行くように設定
2.旅行プラン、旅行リクエストへの回答があった場合に通知が行くように設定

ユーザー登録・認証機能

利用者登録: 支払い情報 事業者登録: ガイド登録を行う場合に銀行口座情報の登録、電話番号認証

旅行プラン作成機能(事業者側)

プラン作成機能:時間、場所、目安予算、詳細、キーワード、カテゴリー(観光、グルメ、アクティビティなど) 検索機能: キーワード、地域、カテゴリーなどでの検索(観光、グルメ、アクティビティなど)

旅行リクエスト作成機能(利用者側)

プラン作成機能:時間、場所、詳細、目安予算、キーワード、カテゴリー(観光、グルメ、アクティビティなど) 検索機能: キーワード、地域、カテゴリーなどでの検索(観光、グルメ、アクティビティなど)

マッチング機能

ガイド依頼: 旅行者が、希望の地域、日程、予算、希望するアクティビティなどを指定してガイドを依頼 ガイド応募: 事業者が、ガイド依頼に対して応募 マッチング: 旅行者と事業者がお互いに合意してマッチング

メッセージ機能

マッチングしたユーザー同士でメッセージのやり取り 評価機能: サービス終了後に、お互いを評価

決済機能

ガイド料金の決済: 信用カード、PayPalなどによる決済 キャンセルポリシー: キャンセル時の返金ルール設定 手数料設定: サービス利用時の手数料設定

多言語対応

英語対応

■ 機能の実装方針予定

開発環境

*Docker: コンテナ型仮想環境
*Db:PostgreSQL(renderを使うため)、Redis
*tailwind:UI
*render:デプロイ環境
*Rails: フロントエンド & バックエンド (Ruby on Rails)
*RuboCop:コード品質管理
*Visual Studio Code:テキストエディタ

◇ MVPリリース関連

1. ユーザー登録・認証機能

必要な機能

  • 新規ユーザー登録 (メールアドレス、パスワード、ニックネーム)
  • ログイン / ログアウト
  • パスワードリセット
  • メールアドレス確認

作成モデル:

  • User (Devise で自動生成)

関連モデル:

  • Profile (1対1 で関連付け)

使用 gem や技術

  • devise: 認証機能全般
  • devise-i18n: Devise のメッセージを日本語化 (オプション)
  • Action Mailer: メール送信

2. プロフィール機能

必要な機能:

  • プロフィール表示
  • プロフィール編集 (自己紹介文、画像、SNS リンク)

作成モデル

  • Profile

関連モデル

  • User (1対1 で関連付け)

使用 gem や技術

  • carriawave: プロフィール画像のアップロード
  • ImageMagick (または MiniMagick): 画像のリサイズやフォーマット変換 (必要に応じて)

3. 掲示板機能

必要な機能:

  • 質問の投稿、編集、削除
  • 回答の投稿、編集、削除
  • 質問・回答へのコメント (今回は AnswerComment モデルで実装)
  • 回答へのいいね
  • 質問一覧、詳細表示
  • キーワード、地域、カテゴリーなどでの検索

作成モデル

  • Question
  • Answer
  • AnswerLike

関連モデル

  • User (Question, Answer は User に belongs_to で関連付け)
  • Spots (Question と Area は多対多、中間テーブル Localization を使用、ポリモーフィック関連)

使用 gem や技術

  • Ransack または pg_search: キーワード検索
  • Kaminari : ページネーション

◇ 本リリース関連(未着手)

1. ブログ機能

必要な機能:

  • ブログ記事の作成、編集、削除
  • ブログ記事の一覧表示、詳細表示
  • カテゴリ、エリアでの絞り込み
  • キーワード検索
  • 画像投稿 (複数枚、body 内に埋め込み)
  • いいね機能
  • コメント機能

作成モデル

  • Blog
  • BlogLike
  • BlogComment

関連モデル

  • User (Blog は User に belongs_to で関連付け)
  • Category (Blog と Category は多対多、中間テーブル Categorizable を使用、ポリモーフィック関連)
  • Area (Blog と Area は多対多、中間テーブル Localization を使用、ポリモーフィック関連)
  • ActiveStorage::Attachment (Blog は has_many_attached :images で関連付け)
  • ActionText::RichText (Blog は has_rich_text :body で関連付け)

使用 gem や技術

  • Active Storage: 画像のアップロード
  • Action Text: リッチテキストエディタ (Trix)
  • ImageMagick: 画像のリサイズや最適化
  • Ransack または pg_search: キーワード検索
  • Kaminari または will_paginate: ページネーション
  • lozad.js: 画像の遅延読み込み (オプション)

2. 通知機能

必要な機能

  • 以下のイベント発生時にメールで通知:
    自分の質問への回答
    自分の質問・回答へのいいね
    自分のブログへのいいね
    自分のブログへのコメント

作成モデル

  • Notification

関連モデル

  • User (Notification は User に belongs_to で関連付け、recipient_id と actor_id を使用)
  • Blog, Question, Answer (Notification は notifiable_id, notifiable_type でポリモーフィック関連)

使用 gem や技術

  • Action Mailer: メール送信
  • Sidekiq: メール送信の非同期化
  • SendGrid (または他のメール配信サービス): メール配信 (必要に応じて)

3.ユーザー登録・認証機能

必要な機能

  • 事業者登録 (銀行口座情報、身分証明書、電話番号認証)
  • 事業者アカウントと一般ユーザーアカウントの区別

作成モデル

関連モデル

使用 gem や技術

  • devise: 認証機能全般
  • devise-i18n: Devise のメッセージを日本語化
  • Action Mailer: メール送信
  • SendGrid (または他のメール配信サービス): メール配信
  • Sidekiq: メール送信の非同期化
  • stripe: 支払い情報処理
  • twilio-ruby: 電話番号認証 (SMS 送信)
  • Active Storage: 身分証明書などのファイルアップロード

4.プロフィール機能

必要な機能

  • 事業者用プロフィール編集 (銀行口座情報、身分証明書)

作成モデル

関連モデル

使用 gem や技術

5.旅行プラン作成機能

必要な機能

  • 旅行プランの作成、編集、削除
  • 旅行プランの一覧表示、詳細表示
  • エリア、カテゴリーでの絞り込み
  • キーワード検索

作成モデル

  • Plan

関連モデル

  • User (事業者に belongs_to で関連付け)
  • Category (Plan と Category は多対多、中間テーブル Categorizable を使用、ポリモーフィック関連)
  • Area (Plan と Area は多対多、中間テーブル Localization を使用、ポリモーフィック関連)

使用 gem や技術

  • Ransack キーワード検索
  • Kaminari ページネーション

5.旅行リクエスト作成機能

必要な機能

  • 旅行リクエストの作成、編集、削除
  • 旅行リクエストの一覧表示、詳細表示
  • エリア、カテゴリーでの絞り込み
  • キーワード検索

作成モデル

  • Request

関連モデル

  • User (利用者に belongs_to で関連付け)
  • Category (Request と Category は多対多、中間テーブル Categorizable を使用、ポリモーフィック関連)
  • Area (Request と Area は多対多、中間テーブル Localization を使用、ポリモーフィック関連)

使用 gem や技術

  • Ransack キーワード検索
  • Kaminari ページネーション

6.マッチング機能

必要な機能

  • ガイドへのリクエスト送信 (旅行者)
  • ガイドからのプランへの応募 (ガイド)
  • マッチング成立処理
  • マッチング一覧表示
  • マッチング後のメッセージ送受信
  • ガイドへの評価

作成モデル

  • Application
  • Matching
  • Message
  • Review

関連モデル

  • User (旅行者・ガイドと Application, Matching, Message, Review を関連付け)
  • Request (Application, Matching を関連付け)
  • Plan (Application, Matching を関連付け)

使用 gem や技術

検討

7.決済機能

必要な機能

  • 決済処理 (Stripe 使用)
  • 決済履歴表示
  • キャンセル時の返金処理 (Stripe 使用)

作成モデル

  • PaymentLog

関連モデル

  • User (旅行者と関連付け)
  • Matching (決済対象のマッチングと関連付け)

使用 gem や技術

  • stripe: 決済代行サービス
  • sidekiq: 非同期処理

8.多言語対応

必要な機能

  • ユーザーの言語設定に応じた表示言語の切り替え
  • 文言の日本語と英語の対訳

作成モデル

関連モデル

使用 gem や技術

  • i18n: Rails の国際化機能
  • i18n-js: JavaScript での国際化対応 (オプション)

■ ER図

MVP:https://drive.google.com/file/d/1axkZ_jMgdmXJNdX6wBIuBc-ObnVgsc7X/view?usp=drive_link

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors