{"id":46786137,"url":"https://github.com/rowicy/charimachi","last_synced_at":"2026-03-10T01:36:34.337Z","repository":{"id":311389016,"uuid":"1039503004","full_name":"rowicy/charimachi","owner":"rowicy","description":"A mobile app that suggests safe and comfortable routes for cyclists.","archived":false,"fork":false,"pushed_at":"2025-12-16T09:37:43.000Z","size":75737,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-12-19T22:36:40.843Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/rowicy.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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-17T11:32:54.000Z","updated_at":"2025-12-16T09:37:20.000Z","dependencies_parsed_at":"2025-08-24T13:31:59.930Z","dependency_job_id":null,"html_url":"https://github.com/rowicy/charimachi","commit_stats":null,"previous_names":["rowicy/charimachi"],"tags_count":0,"template":false,"template_full_name":"rowicy/template-mobile-app","purl":"pkg:github/rowicy/charimachi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rowicy%2Fcharimachi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rowicy%2Fcharimachi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rowicy%2Fcharimachi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rowicy%2Fcharimachi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rowicy","download_url":"https://codeload.github.com/rowicy/charimachi/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rowicy%2Fcharimachi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30320927,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T20:05:46.299Z","status":"ssl_error","status_checked_at":"2026-03-09T19:57:04.425Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-03-10T01:36:32.808Z","updated_at":"2026-03-10T01:36:34.006Z","avatar_url":"https://github.com/rowicy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CHARIMACHI\n\n![CHARIMACHI](./screenshot/thumbnail.png)\n\n\u003cp style=\"text-align: center;\"\u003e\n  \u003cimg src=\"./screenshot/warning-point.png\" alt=\"注位置点表示\" width=\"200\" /\u003e\n  \u003cimg src=\"./screenshot/violation.png\" alt=\"違反率注意\" width=\"200\" /\u003e\n  \u003cimg src=\"./screenshot/score.png\" alt=\"快適度\" width=\"200\" /\u003e\n\u003c/p\u003e\n\n## デモ\n\n\u003cimg src=\"./screenshot/demo.gif\" alt=\"デモ\" width=\"200\" /\u003e\n\n[動画](https://drive.google.com/file/d/1YiH47TsoH7ZssMZgoyyxL8HFdFj577jk/view?usp=sharing)\n\n## 概要\n\n安全、快適な車道通行ルートを提案する 自転車専用ナビアプリ CHARIMACHI\n\n自転車利用者が安心して車道を走行できるよう支援するナビゲーションアプリを開発しました。自転車での移動を安全かつ快適に走行できるルートを検索・提示し、通行に適した道を優先的に案内します。さらに、交通安全に関する注意喚起として、事故が多発している場所や違反率が高い場所へのピン止めなどをすることで、事故や違反が身近にあるという認識を高め、車道通行の重要性理解を促進します。\n注意喚起をするだけのサービスでは、重要性を理解されていない方々への普及は難しいと考え、日常的につかうナビゲーションアプリとすることで、安全な走行環境を提供しつつ、自転車の車道通行を社会に定着させることを目指します。\n\n## なぜこのサービスを作るのか\n\n車道通行が根付かない要因として、事故や違反が身近にあるという認識が薄く、注意喚起を目にする機会も少ないため、その重要性を十分に理解していないこと、さらに安全に通行できない車道が存在し、安全・快適に自転車を走行できるルートが確認できないことにあると考えました。本サービスではこの二点の課題解決を目指します。\n\n### 安全かつ快適とはどのような道か\n\n- 自転車専用帯が確保されている\n- 歩道内に自転車帯が確保されている\n- 車道の幅が広い\n- 信号待ちの回数が少ない\n- 路駐・路停車が少ない\n- 大型車両の通行量が多くない\n\n(最後2項目は今回実装できないかもしれない要件)\n\n## 機能\n\n- マップ表示\n- 現在地表示\n- 出発地・到着地の候補検索\n- ルート描画\n  - 自転車専用帯優先\n  - 駐輪所経由モード(オープンデータ)\n  - バス停回避モード(オープンデータ)\n  - 注意喚起\n    - 取締強化交差点注意(オープンデータ)\n    - 違反率別交差点注意(オープンデータ)\n- 経由地点表示\n- 所要時間表示\n- about画面・制作元・出典\n\n## 使用オープンデータ・API\n\n### 自転車専用帯優先\n\n- [OpenRouteService](https://openrouteservice.org)\n\n### 取締強化交差点注意（オープンデータ）\n\n- [東京都オープンデータカタログ - 交通規制情報](https://catalog.data.metro.tokyo.lg.jp/dataset/t000022d1700000024/resource/fb207998-df4c-434c-9280-1d7c2fbfdf1d)\n\n### 違反率別注意交差点(オープンデータ)\n\n- [交通量統計表](https://catalog.data.metro.tokyo.lg.jp/dataset/t000022d0000000035)\n\n- [Overpass API](https://overpass-api.de/api/interpreter)\n\n### 駐輪所経由モード\n\n- [東京都オープンデータカタログ - 駐輪場情報](https://catalog.data.metro.tokyo.lg.jp/dataset?q=title%3A+%E9%A7%90%E8%BC%AA%E5%A0%B4\u0026sort=score+desc%2C+metadata_modified+desc)\n\n### バス停回避モード\n\n- [公共交通オープンデータ - 都営バス停留所データ](https://ckan.odpt.org/dataset/b_busstop-toei/resource/f340278d-aefe-47ea-bc8f-15ebe48c286d)\n\n\n### 表\n\n| データ/API名 | API提供 | 更新可能性 | 用途 | リンク |\n|--------------|--------|----------------|------|-------|\n| 自転車専用帯優先 (OpenRouteService) | yes | yes | ルート検索時呼び出し | [OpenRouteService](https://openrouteservice.org) |\n| 取締強化交差点注意 (東京都オープンデータカタログ - 交通規制情報) | yes | yes | 内部で加工データを保持 | [リンク](https://catalog.data.metro.tokyo.lg.jp/dataset/t000022d1700000024/resource/fb207998-df4c-434c-9280-1d7c2fbfdf1d) |\n| 違反率別注意交差点 (交通量統計表) | no | yes | 内部で加工データを保持,更新batch処理あり | [リンク](https://catalog.data.metro.tokyo.lg.jp/dataset/t000022d0000000035) |\n| Overpass API | yes | - | 内部データ加工用 | [Overpass API](https://overpass-api.de/api/interpreter) |\n| 駐輪所経由モード (東京都オープンデータカタログ - 駐輪場情報) | yes | yes | ルート検索時呼び出し | [リンク](https://catalog.data.metro.tokyo.lg.jp/dataset?q=title%3A+%E9%A7%90%E8%BC%AA%E5%A0%B4\u0026sort=score+desc%2C+metadata_modified+desc) |\n| バス停回避モード (公共交通オープンデータ - 都営バス停留所データ) | yes | yes | 内部で加工データを保持 | [リンク](https://ckan.odpt.org/dataset/b_busstop-toei/resource/f340278d-aefe-47ea-bc8f-15ebe48c286d) |\n\n## 構成図\n\n### アーキテクチャ\n\n```mermaid\nflowchart LR\n    ClientApp[クライアントアプリ（Expo）]　--ルート検索--\u003e GoServer\n\n\n    GoServer \u003c--元ルートデータ--\u003e OpenRouteService\n\n    GoServer \u003c--オープンデータ加工--\u003e OpenData\n    \n\n    ClientApp[クライアントアプリ（Expo）]　--描画--\u003e OSM[OpenStreetMap]\n    \n```\n\n### 処理の流れ\n\n```mermaid\nsequenceDiagram\n    participant OSM as OpenStreetMap\n    participant Client as クライアントアプリ (Expo)\n    participant Go as Goサーバー\n    participant ORS as OpenRouteService\n    participant OD as OpenData\n\n    Client-\u003e\u003eGo: 経路リクエスト\n    Go-\u003e\u003eORS: 経路探索リクエスト\n    Client-\u003e\u003eOSM: 地図データ取得\n    OSM-\u003e\u003eClient: \n    ORS-\u003e\u003eGo: 経路データ返却\n    Go -\u003e\u003e OD: データ取得\n    OD -\u003e\u003eGo: \n    Go --\u003e\u003e Go: ルート変更・レスポンス情報追加\n    Go-\u003e\u003eClient: 経路・メタデータ返却\n    Client--\u003e\u003eClient: 経路・ポイント描画\n```\n\n---\n\n### [mobile-app](./mobile-app)\n\nThis is a template for mobile app development using:\n\n- [Expo](https://expo.dev/)\n- [React Native](https://reactnative.dev/)\n- [Node.js](https://nodejs.org/) v22.14.0\n\n### [api](./api)\n\nThis is a template for building APIs using:\n\n- [Go](https://go.dev/) with [Gin](https://gin-gonic.com/) framework\n- [gin-swagger](https://github.com/swaggo/gin-swagger) for OpenAPI/Swagger generation\n\n### [openapi-specifications](./openapi-specifications)\n\nThis directory contains OpenAPI specifications swagger files.\nOpenAPI version 3.0 is used for the specifications, and the files are in JSON format.\n\nTo generate the OpenAPI definitions, run the following command from the repository root:\n\n```bash\n./generate-openapi.sh\n```\n\nThis script will:\n\n1. Generate Swagger 2.0 documentation using `swag init` in the API directory\n2. Convert the Swagger 2.0 specification to OpenAPI 3.0.0 format\n3. Place the result in `openapi-specifications/api.swagger.json`\n4. Verify that React Native type generation and mock server commands work correctly\n\n- [OpenAPI](https://www.openapis.org/)\n- [Swagger](https://swagger.io/)\n\n### [ls-lint](./.ls-lint.yml)\n\nThis is a configuration file for [ls-lint](https://ls-lint.org/), a linter for directory structures.  \nGitHub Actions are set up to run ls-lint on pull requests to ensure that the directory structure adheres to the defined rules.  \nFor [api](./api) and [mobile-app](./mobile-app) directories, add settings for each directory, as they are ignored except for markdown files.\n\n## Clone\n\n```bash\ngit clone --recurse-submodules https://github.com/rowicy/charimachi.git\n```\n\n## Run on debug mode\n```bash\nmake run_api_dev\n```\n\n```bash\nmake run_mobile_app\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frowicy%2Fcharimachi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frowicy%2Fcharimachi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frowicy%2Fcharimachi/lists"}