尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证계획형 인간의 약속 외출기
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
약속 시각만 넣으면 몇 시에 집을 나서 어떤 열차를 타야 하는지 알려주는 약속 출발 플래너. 기획은 PRD.md 참고.查看完整 README ↗
약속 시각만 넣으면 몇 시에 집을 나서 어떤 열차를 타야 하는지 알려주는 약속 출발 플래너. 기획은 PRD.md 참고.
npm install
npm run dev # http://localhost:3000 (모바일 390px 기준 화면)
app/
layout.tsx 390px 앱 셸 + 하단 탭
page.tsx 홈: 입력 → 출발 안내 타임라인 → 도착 기록
history/page.tsx 경로 내역 (이용 횟수)
roadmap/page.tsx 나의 로드맵
components/ Planner, Timeline, StationPicker, Stepper, RoadmapMap, TabBar, Header
lib/
planner.ts 도착 시각 역산 (경로 탐색 + 시간표 역산)
timetable.ts 열차 시간표 조회 (승차역→하차역 열차 매칭)
server/ 외부 API 호출 (서울 시간표, 도보 경로, 주소 검색)
stations.ts 데모용 노선·역 데이터
routes.ts 경로 묶기, 로드맵 집계
storage.ts localStorage 저장 (useSyncExternalStore)
npx shadcn@latest init으로 초기화했고(components.json, radix-nova), button · input · card · badge · dialog를 components/ui/에 추가했습니다.app/globals.css의 @theme에 옮겼습니다. 컴포넌트는 rounded-button(24px), rounded-card(4px), rounded-input(10px), rounded-tag(32px), rounded-nav(16px) 같은 이름으로 씁니다.rounded-*·간격 눈금은 건드리지 않았고, 앱의 강조 파랑은 shadcn의 accent와 겹쳐서 brand로 이름을 바꿨습니다./design-system 에서 컴포넌트를 variant·상태별로 한 화면에 볼 수 있습니다.app/api/*, lib/server/*):
KAKAO_REST_KEY, lib/server/kakaoPlan.ts)가 알려 주는 경로(어떤 수단을 어떤 순서로 타는지)를 앞에서부터 따라갑니다. 추천(1안)은 카카오맵 목록의 첫 번째, 2안은 그다음의 서로 다른 경로입니다. 구간 수에 제한이 없어 지하철+지하철, 지하철+버스, 버스+버스 환승이 모두 나옵니다. 시각은 우리가 도착 시각에서 거꾸로 계산합니다(지하철은 서울교통공사 시간표, 시간표가 없는 노선은 소요 시간 기준 예상, 버스는 배차 간격·현재 도착 정보). 카카오 호출이 실패하거나 경로가 없으면 아래의 기존 계산(자체 노선도·버스 데이터)으로 대신하고, KAKAO_ROUTING=off로 끌 수 있습니다. 카카오는 출발 시각을 받지 않아 항상 "지금" 기준 경로를 줍니다.KAKAO_REST_KEY 필요). 키가 없거나 호출이 실패하면 OpenStreetMap Nominatim으로 대신 찾습니다. 검색어에 "근처·주변"이 있으면 기준 좌표(출발지·도착지) 반경 5km 안에서 가까운 순으로 찾습니다.SEOUL_SUBWAY_KEY).lib/data/bus.json에 저장합니다. 정류장·노선·경유 순서·구간 소요 시간·배차 간격·첫차/막차가 들어 있습니다.
python3 scripts/bus/seoul.py — 서울 노선(경기 노선 포함)과 경유 정류소 (공공데이터포털 DATA_GO_KR_KEY)python3 scripts/bus/gg_stops.py — 경기 정류소·경유 정류소 (경기데이터드림 GG_DATA_KEY)python3 scripts/bus/gg_info.py — 경기 노선별 배차 간격·첫차/막차. 일일 호출 한도에 걸리면 멈추고, 다시 실행하면 이어받습니다.python3 scripts/bus/build.py — 위를 합쳐 lib/data/bus.json 생성getStationByUid, 경기 getBusArrivalItemv2)를 조회해 이후 버스를 간격으로 이어 붙여 예상하고, 3분 여유를 두고 안내합니다. 화면에는 실시간이라고 표시하지 않습니다. 그 밖(내일, 2시간 이상 뒤, 도착 정보 없음)은 배차 간격 기준 예상이며, 약속 1~2시간 전에 다시 검색해 달라는 안내를 함께 보여 줍니다.http://IP:3000으로 접속하면 위치 허용이 막히니 주소 검색으로 등록하세요.scripts/build-metro.py로 가공해 lib/data/metro.json에 담았습니다.
SearchSTNTimeTableByIDService)로 실제 열차를 찾아 계산합니다. 평일·토·일 시간표를 날짜에 맞춰 쓰고, 공휴일은 구분하지 않습니다.
.env.local에 SEOUL_SUBWAY_KEY=인증키가 필요합니다. 없으면 모든 노선을 예상으로 계산합니다..cache/seoul-timetable에 7일간 저장해 호출 수를 줄입니다.python3 scripts/build-station-codes.py로 lib/data/stationcodes.json을 다시 만듭니다.