여행 일정을 일자별·시간순으로 짜서 지도에 표시하고, 링크로 일행과 함께 보는 여행 일정표 웹서비스를 만들어줘. 총무가 로그인 없이 일정을 만들고, 일행은 공유 링크로 읽기 전용 일정표를 본다.
[페이지]
- / : 제주 예시 여행의 일정표(열람 화면과 같은 화면)를 바로 보여준다. 일정표 아래에 [새 여행 만들기]·[여행 리스트 보기] 버튼.
- /create : 새 여행 만들기
- /trips : 여행 리스트
- /view/:share_code : 공유용 읽기 전용 일정표
- /manage/:manage_token : 작성자용 편집 화면
[작성자 — 관리 링크, 로그인 없음]
- 여행 생성: 제목·시작일·종료일·도시. 만들면 관리 화면으로 이동하고, 기간에 맞춰 일자 탭(Day 1, 2, 3…)이 생긴다.
- 관리 화면 위쪽에 공유 링크와 관리 링크를 각각 [복사] 버튼과 함께 표시하고 "관리 링크를 잃으면 수정할 수 없어요 — 따로 저장해 두세요"라고 안내.
- 코스 항목 추가·수정·삭제: 장소명(주소 검색 → 좌표), 시간, 유형(관광/식사/이동/숙소), 메모, 사진(이미지 파일 업로드 → 서버 저장, 카드에 썸네일), 예상 비용.
- 같은 날 항목은 드래그로 순서 변경(휴대폰 터치 드래그 포함), 바꾸면 바로 저장.
- 지도: 선택한 날의 장소를 순서 번호 핀으로 찍고 순서대로 선을 이어 하루 동선을 보여준다. 타임라인 카드를 누르면 지도에서 그 핀을 강조.
[열람자 — 공유 링크]
- 읽기 전용 일정표: 일자 탭 + 타임라인 + 지도(동선).
- 장소마다 [길찾기]: 카카오맵·구글맵 길찾기로 연결(좌표로 만든 링크, API 키 불필요).
- 총예산 요약: 전체 합계 + 유형별 합계 + 일자별 합계.
[여행 리스트]
- 예시 여행들과 "이 기기에서 만든 여행"만 카드로 보여준다(제목·도시·기간·장소 수·총예산). 다른 사람이 만든 여행은 나오지 않는다 — 공유 링크를 아는 사람만 볼 수 있어야 한다.
- 이 기기에서 만든 여행은 브라우저 저장소에 관리 링크와 함께 기억해 두고, 리스트에서 바로 편집으로 들어갈 수 있게.
[데이터]
- trips(title, start_date, end_date, city, share_code, manage_token, is_sample, created_at)
- items(trip_id, day, position, name, address, lat, lng, time, type: 관광|식사|이동|숙소, memo, photo_url, cost)
- share_code·manage_token 은 추측할 수 없는 무작위 문자열. 쓰기 API 는 manage_token 이 맞을 때만 허용.
[지도] API 키가 필요 없는 Leaflet + OpenStreetMap, 주소→좌표는 Nominatim. 검색 버튼을 눌렀을 때만 조회하고(입력 중 자동완성 금지 — Nominatim 이용 정책), 결과가 여러 개면 목록에서 고르게.
[시드] 예시 여행 3개를 실제 장소·좌표·시간·유형·비용·메모로 채운다. 사진은 picsum.photos 플레이스홀더.
- 제주 2박3일(메인 화면의 여행, 장소 15개 안팎)
- 부산 1박2일
- 경주 당일치기
배포 직후 메인에서 타임라인·지도·예산이 바로 시연되게.
[제외] 회원가입·로그인, 실시간 공동 편집, 항공·숙소 예약 연동, 여행 커뮤니티·추천, 정산.
[화면] 모바일 우선 — 휴대폰에서 일자 탭·타임라인·지도가 자연스럽게 이어지게.