尚未偵測到更新。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을 다시 만듭니다.