{"id":24576772,"url":"https://github.com/aoiorio/travel-knock","last_synced_at":"2025-12-16T04:07:45.854Z","repository":{"id":198831416,"uuid":"701158594","full_name":"aoiorio/Travel-Knock","owner":"aoiorio","description":"Let's go to the infinity journey. Travel Knock is a SNS application of traveling around the world that you've never been.","archived":false,"fork":false,"pushed_at":"2024-04-22T13:28:19.000Z","size":24757,"stargazers_count":6,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T01:51:47.406Z","etag":null,"topics":["dart","flutter","knock","sns","supabase","travel"],"latest_commit_sha":null,"homepage":"https://apps.apple.com/jp/app/travel-knock/id6474373726","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aoiorio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-10-06T03:50:26.000Z","updated_at":"2024-09-10T08:02:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"924bd367-af01-4fc3-9394-e00eb40b7090","html_url":"https://github.com/aoiorio/Travel-Knock","commit_stats":null,"previous_names":["aoiorio/travel-knock"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoiorio%2FTravel-Knock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoiorio%2FTravel-Knock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoiorio%2FTravel-Knock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoiorio%2FTravel-Knock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aoiorio","download_url":"https://codeload.github.com/aoiorio/Travel-Knock/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250479855,"owners_count":21437444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dart","flutter","knock","sns","supabase","travel"],"created_at":"2025-01-23T22:50:52.952Z","updated_at":"2025-12-16T04:07:45.767Z","avatar_url":"https://github.com/aoiorio.png","language":"Dart","funding_links":["https://www.buymeacoffee.com/aoiorio"],"categories":[],"sub_categories":[],"readme":"![Travel Knock Screen](docs/images/main-view.png)\n\n\u003cdiv align=\"center\"\u003e\n\u003cbr\u003e\n\u003c!-- Logo --\u003e\n\u003cimg src=\"docs/images/Travel-Knock-Logo-grey.png\" width=550\u003e\n\u003cbr\u003e\u003c/br\u003e\n\u003c!-- Download buttons --\u003e\n\u003ca href=\"https://apps.apple.com/jp/app/travel-knock/id6474373726\"\u003e\n    \u003cimg src=\"docs/images/Download-on-the-app-store.png\" width=160\u003e\n\u003c/a\u003e\n\u003cimg src=\"docs/images/Google-Play-Badge-Logo.png\" width=180\u003e\n\n\u003c!-- Badges --\u003e\n\n\u003cbr\u003e\u003c/br\u003e\n[![ios](https://custom-icon-badges.herokuapp.com/badge/iOS-606061.svg?logo=apple\u0026logoColor=white)](https://apps.apple.com/jp/app/travel-knock/id6474373726)\n![flutter](https://img.shields.io/badge/Framework-Flutter-blue?logo=flutter)\n![dart](https://img.shields.io/badge/Language-Dart-d9d9d9?logo=dart)\n![supabase](https://img.shields.io/badge/Database-Supabase-d9d9d9?logo=supabase)\n\n![last commit](https://img.shields.io/github/last-commit/aoiorio/Travel-Knock)\n[![google-slide](https://img.shields.io/badge/Google_Slide-Travel_Knock-d9d9d9?logo=google)](https://docs.google.com/presentation/d/1YYfqCNl7ALHgNOgeP_mIqig88LjKXmcXP1rr94V81ZY/edit?usp=sharing)\n[![web site](https://img.shields.io/badge/Web_Site-Travel_Knock-d9d9d9?)](https://travel-knock.onrender.com)\n\u003cbr\u003e\u003c/br\u003e\n\n\u003c/div\u003e\n\n## 🚪 What's Travel Knock?\n\nLet's go to the infinity journey.\u003cbr\u003e\nTravel Knock is a SNS application of traveling around the world that you've never been.\u003cbr\u003e\nIt has post features but also you can request plans to other users.\n\n\u003c!-- Folding Japanese of What's --\u003e\n\u003cdetails\u003e\u003csummary\u003eJapanese\u003c/summary\u003e\u003cdiv\u003e\n\n\u003cbr\u003e\n出かけよう、無限大の旅へ。\u003cbr\u003e\nTravel Knock は今までにない自分だけの旅行ができる SNS です。\u003cbr\u003e\n旅行のプランの投稿機能はもちろんのこと他のユーザーにプランの作成をリクエストすることもできます。\n\n\u003c/div\u003e\u003c/details\u003e\n\u003cbr\u003e\u003c/br\u003e\n\n## 🥑 Why?\n\nI'm from Okinawa. \u003cbr\u003e\nRecently I see a lot of tourists in Okinawa. \u003cbr\u003e\nI thought they always go to the same place.\u003cbr\u003e\nWhy they won't travel other places, even Okinawa has more beautiful place, nature and sea.\u003cbr\u003e\nSo I made up my mind to develop this app to introduce my recommended spots and restaurants in Okinawa.\n\n\u003c!-- Folding Japanese of Why --\u003e\n\u003cdetails\u003e\u003csummary\u003eJapanese\u003c/summary\u003e\u003cdiv\u003e\n\n\u003cbr\u003e\n私は沖縄出身です。\u003cbr\u003e\nそして沖縄に来る観光客の方達をよく見かけるのですが、その人たちはほぼ同じ場所にしか行かないということに気がつきました。\u003cbr\u003e\n沖縄にはまだたくさんの綺麗な場所と海と自然があるのになぜ一箇所に集中して他のところへ行かないのだろうと思いました。\u003cbr\u003e\nそこで、沖縄での私のお気に入りのスポットやレストランを紹介したいと思い、このアプリを開発しました。\n\n\u003c/div\u003e\u003c/details\u003e\n\u003cbr\u003e\n\n## 📜 Details\n\n![flutter](https://img.shields.io/badge/Flutter-3.16.3-blue?logo=flutter)\n![dart](https://img.shields.io/badge/Dart-3.2.3-d9d9d9?logo=dart)\n\n- 🗓️ Production Period: 2023 2nd of October - 2023 28th of December **(87 days)**\n- 🥞 Who Made it: [aoiorio](https://github.com/aoiorio)\n- 👀 Persona: [See Google Slide](https://docs.google.com/presentation/d/1YYfqCNl7ALHgNOgeP_mIqig88LjKXmcXP1rr94V81ZY/edit#slide=id.g2ad363fd857_0_9)\n- 🎨 Design On: [Figma](https://www.figma.com/file/4WWWgaAZlPMIckCC6kyll7/Travel-Knock?type=design\u0026node-id=0%3A1\u0026mode=design\u0026t=0H9AugB3PNMOdZ8q-1)\n- 🪼 Flow: [See Google Slide](https://docs.google.com/presentation/d/1YYfqCNl7ALHgNOgeP_mIqig88LjKXmcXP1rr94V81ZY/edit#slide=id.g2ad363fd857_0_278)\n  \u003cbr\u003e\u003c/br\u003e\n\n## 🪿 Features\n\n- 📮 Post\n\n  - Post your traveling plans to other users.\n  - Create title, period and place that you went. And archive travel experiences using images and texts in different days.\n  - Plan the places you want to go.\n  - This is useful to journal your travel plans.\n  - Introduce your recommendations and your secret spots.\n  - Select awesome thumbnail images of plans.\n\n- 🌵 Plan\n\n  - Always get the latest information of traveling.\n  - Maximize your experience when on sightseeing and discover new spots.\n  - Search place name, and you'll get what you wanted.\n  - See your favorite users' posts.\n  - Broaden your journey with easy to understand images and title.\n\n- 🤓 Knock\n\n  - Request a plan to other users who are locals with one tap.\n  - If it's your first time traveling in one place, you can knock first.\n  - Users can choose places and period set in advance.\n  - Knock users can accept and create plans to requested users.\n  - See \"knocked to you\" at Profile Page for requested plans of users.\n  - See \"your knock\" at Profile Page for my requests.\n  - Confirm requests anytime and anywhere.\n  - Plans are private for both users.\n  - Share spots, restaurants, etc...\n\n- 🔥 Fire\n\n  - \"Fire\" to other users' posts.\n  - Change the color of fire.\n  - Posts with the greatest number of \"Fire\" are displayed first on screen.\n\n- ⛄️ Profile\n\n  - Create your original avatar, header, username and places.\n  - If you tap the users' icon, you'll see number of \"knocked\", number of \"your knock\".\n  - View posts that only specific user.\n  - Report users.\n\n- ☄️ Hot Places\n\n  - Display places that have a lot of fires and posts now.\n  - View the posts of the place with tap the image.\n\n- 🫔 Sign in\n  - Sign in so easily.\n  - Without sign in you can see and search plans.\n\n\u003c!-- Folding Japanese of Features --\u003e\n\u003cdetails\u003e\u003csummary\u003eJapanese\u003c/summary\u003e\u003cdiv\u003e\n\n\u003cbr\u003e\n\n- 📮 Post\n\n  - あなたの旅行したプランを他のユーザーに投稿\n\n  - タイトル、期間、行った場所を決めることができ、日にち別に旅の詳細を画像と文字で記録\n\n  - 自分がやりたい旅行などのプランニングにも活用\n\n  - 自分の行きたい場所のプランのメモとしても有効\n\n  - 自分の住む地域のおすすめの場所や穴場のスポットを紹介\n\n  - 素敵なサムネイルを選択してアピール\n\n- 🌵 Plan\n\n  - 常に新しい旅行の情報を入手\n\n  - 観光をするだけでは出会えなかったスポットを発見\n\n  - 場所の名前を検索してあなたの行きたかった場所へ一直線\n\n  - お気に入りのユーザーが投稿したプランを閲覧\n\n  - 画像とわかりやすいタイトルであなたの旅がもっと広がる\n\n- 🤓 Knock\n\n  - ワンタップであなたが気に入ったユーザーにプランの作成をリクエスト\n\n  - 旅行が初めての人でも”Knock”をしたらもう大丈夫\n\n  - ユーザーがあらかじめ設定した地域と行きたい旅行の期間を選択\n\n  - あとは待つだけで旅行のプランが完成\n\n  - プロフィールページからあなたに届いた”Knock”を表示\n\n  - あなたが”Knock”した内容を閲覧\n\n  - リクエストしたユーザーの詳細を簡単に確認\n\n  - 他のユーザーにプランを作成\n\n  - 出来上がったプランは 2 人だけのシークレット\n\n  - 思う存分あなたの伝えたいスポットやレストランなどを共有\n\n- 🔥 Fire\n\n  - 他のユーザーの投稿に fire をつける\n\n  - fire をすると炎の色が変化\n\n  - fire が多い投稿は一番上に表示\n\n- ⛄️ Profile\n\n  - あなたオリジナルのヘッダーやアイコン、ユーザーネーム、地域を設定\n\n  - ユーザーのアイコンをタップすると Knock された回数や Knock した回数などが表示\n\n  - そのユーザーが投稿したプランだけを閲覧\n\n  - 通報機能も搭載\n\n- ☄️ Hot Places\n\n  - 今最も投稿されていて、fire が多い地域を表示\n\n  - 画像をタップでその地域で投稿されているプランを確認\n\n- 🫔 Sign in\n\n      - GoogleとAppleで手軽にサインイン\n      - サインインなしでも、投稿を閲覧・検索\n\n  \u003cbr\u003e\u003c/br\u003e\n  \u003c/div\u003e\u003c/details\u003e\n\n\u003cbr\u003e\n\n## 🦭 Ranking Of Passion\n\n- **🥉 [Animation Fire](https://docs.google.com/presentation/d/1YYfqCNl7ALHgNOgeP_mIqig88LjKXmcXP1rr94V81ZY/edit#slide=id.g2aec5ccfca7_0_4)** - I used [rive](https://pub.dev/packages/rive) that is creating and sharing animation site package of Flutter. - Like buttons are black when the user don't tap the button, and if the user pressed it, the color of fire will change to red.\n  \u003cbr\u003e\u003c/br\u003e\n\n- **🥈 [UX \u0026 UI](https://docs.google.com/presentation/d/1YYfqCNl7ALHgNOgeP_mIqig88LjKXmcXP1rr94V81ZY/edit#slide=id.g2aec5ccfca7_0_18)** - The app's main language is English. Because I wanted to get the users around the world. - For not feeling loneliness, I added some illustrations that I drew. - As a result, this app was downloaded from Germany. - I carried out the simple UI that users can know how to use this app easily. Also the shape of bottom navigation bar is one of my recommended point.\n  \u003cbr\u003e\u003c/br\u003e\n\n- **🥇 [Features that you've never experienced](https://docs.google.com/presentation/d/1YYfqCNl7ALHgNOgeP_mIqig88LjKXmcXP1rr94V81ZY/edit#slide=id.g2aec5ccfca7_0_36)**\n  - I did research of other similar apps. And I could know what features they don't have yet.\n  - I thought there're apps that can make plans, but there aren't features of requesting plans.\n  - I implemented \"Knock\" features and it contains the meaning of knocking new doors to travel around the global.\n\n\u003c!-- Folding Japanese of Ranking Of Passion --\u003e\n\u003cdetails\u003e\u003csummary\u003eJapanese\u003c/summary\u003e\u003cdiv\u003e\n\n\u003cbr\u003e\n\n- **🥉 [いいねがアニメーションする炎](https://docs.google.com/presentation/d/1YYfqCNl7ALHgNOgeP_mIqig88LjKXmcXP1rr94V81ZY/edit#slide=id.g2aec5ccfca7_0_36)** - [rive](https://pub.dev/packages/rive)というアニメーション作成＆共有サイトの Flutter パッケージを利用し、いいねをしていない投稿には黒い炎が、いいねをしている投稿には赤い炎がつくようにしました。 - SNS では動くいいねはあまり見かけないなと思ったのでユーザーが思わず押したくなるいいねを実装しました。\n  \u003cbr\u003e\u003c/br\u003e\n\n- **[🥈 ユーザーにとってのアプリの使いやすさ](https://docs.google.com/presentation/d/1YYfqCNl7ALHgNOgeP_mIqig88LjKXmcXP1rr94V81ZY/edit#slide=id.g2aec5ccfca7_0_18)** - 全世界の方にこのアプリを体感してもらいたくアプリのメイン言語を英語にしました。ユーザーが寂しくならないように描いたイラストをアプリ内で散りばめました。 - 結果として、ドイツから１ダウンロードされていました。 - ボタンの位置など何も言わなくても直感的に操作できる UI を実現しました。 - ボトムナビゲーションバーの形もこだわりのポイントです。\n  \u003cbr\u003e\u003c/br\u003e\n\n- **🥇 [今までにない機能](https://docs.google.com/presentation/d/1YYfqCNl7ALHgNOgeP_mIqig88LjKXmcXP1rr94V81ZY/edit#slide=id.g2aec5ccfca7_0_36)**\n  - 旅行アプリの競合を開発する前に調べ、どんな機能があって何の機能がないのかを把握しました。\n  - そこで、旅行のプランを作るアプリはあってもプランの作成を依頼するアプリはないのではないかと思いました。\n  - Travel Knock ならではのプランリクエスト機能を Knock という名前にし、新たな扉を Knock して世界へ飛び立つという意味を込めました。\n\n\u003c/div\u003e\u003c/details\u003e\n\u003cbr\u003e\n\n## 🌭 Screens\n\n\u003c!-- Mockups --\u003e\n\n![Main View](docs/images/Travel-knock-mockup.png)\n\u003cbr\u003e\u003c/br\u003e\n\n\u003c!-- List of Mockups --\u003e\n\n| Login Screen                                                                 | Plans Screen                                                                 | Plan Details Screen                                                                 | Knock Screen                                                                  |\n| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |\n| \u003cimg src=\"docs/images/LoginScreen.PNG\" width=200 style=\"border-radius:15px\"\u003e | \u003cimg src=\"docs/images/PlansScreen.PNG\" width=200 style=\"border-radius:15px\"\u003e | \u003cimg src=\"docs/images/PlanDetailsScreen.PNG\" width=200  style=\"border-radius:15px\"\u003e | \u003cimg src=\"docs/images/KnockScreen.PNG\" width=200  style=\"border-radius:15px\"\u003e |\n\n\u003cbr\u003e\u003c/br\u003e\n\n## 🧳 Dependencies\n\n- 🍏 UI\n\n  - [shimmer](https://pub.dev/packages/shimmer) - For adding shimmer effect while users waiting\n  - [carousel_slider](https://pub.dev/packages/carousel_slider) - For using carousel slider\n  - [cached_network_image](https://pub.dev/packages/cached_network_image) - For keeping images in the cache directory\n  - [smooth_page_indicator](https://pub.dev/packages/smooth_page_indicator) - For using customizable animated page indicator\n\n- 🍬 Animation\n\n  - [rive](https://pub.dev/packages/rive) - For implementing moving fire\n  - [animations](https://pub.dev/packages/animations) - For using animation transitions\n\n- 💎 Backend\n\n  - [supabase_flutter](https://pub.dev/packages/supabase_flutter) - For connecting to Supabase\n  - [supabase](https://pub.dev/packages/supabase) - For connecting to Supabase\n  - [sign_in_with_apple](https://pub.dev/packages/sign_in_with_apple) - For using Apple auth\n  - [flutter_appauth](https://pub.dev/packages/flutter_appauth) - For using Google auth\n  - [shared_preferences](https://pub.dev/packages/shared_preferences) - For implementing anonymous sign in\n  - [flutter_dotenv](https://pub.dev/packages/flutter_dotenv) - For hiding API key\n\n- 🍉 Others\n\n    - [image_picker](https://pub.dev/packages/image_picker) - For selecting images from iPhone\n    - [url_launcher](https://pub.dev/packages/url_launcher) - For launching a URL\n    - [flutter_launcher_icons](https://pub.dev/packages/flutter_launcher_icons) - For adding icon\n    - [flutter_native_splash](https://pub.dev/packages/flutter_native_splash) - For using splash screen\n\n  \u003cbr\u003e\u003c/br\u003e\n\n## 🍦 Screen Transition Diagram\n\n\u003cimg src=\"docs/images/Travel-Knock-Transition.png\" style=\"border-radius:15px\"\u003e\n\u003cbr\u003e\n\n## ⛏️ ER Diagram\n\n\u003cimg src=\"docs/images/Travel Knock ERD.jpg\" style=\"border-radius:15px\"\u003e\n\u003cbr\u003e\u003c/br\u003e\n\n\u003ca href=\"https://www.buymeacoffee.com/aoiorio\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\"\u003e\u003c/a\u003e\n\u003cbr\u003e\u003c/br\u003e\n\n# 🍕 Thank you so much!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoiorio%2Ftravel-knock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faoiorio%2Ftravel-knock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoiorio%2Ftravel-knock/lists"}