Commit graph

126 commits

Author SHA1 Message Date
8eaf27d143 해방 주간 보스 설정 + 완료일 계산 로직
- 주간 보스 설정 카드: 보스별 난이도/파티/완료 토글, '격파 불가' 옵션
- 주간/월간 획득 포인트 분리 표시
- 완료일 계산: 시작일 주를 1주차로 포함, 매주 목요일 리셋 기준
- 공식: ceil((남은 흔적 + 완료 보스 포인트) / 주간 획득) + 월간 보스 달력 월(1일) 리셋 반영
- 전체 초기화 버튼
- 보스 이름 파일 경로 수정 (진 힐라, 검은 마법사 띄어쓰기)
- 보스 순서 수정 (더스크 → 진 힐라 → 듄켈)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 09:54:06 +09:00
f0c0ea3c1c 해방 계산기 현재 상태 입력 섹션 추가
- 시작 날짜 / 진행 중 퀘스트 / 현재 흔적 입력 카드
- 퀘스트 선택 드롭다운을 일반 보스 초상화 + 텍스트로 단순화
- 각 퀘스트별 최대 3000 흔적 누적 (다음 퀘스트로 자동 이월 안 함)
- 날짜 유틸을 dayjs(KST) 기반으로 통일

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 08:55:39 +09:00
f27c46f68d 캐릭터 카드 드래그 핸들 영역 제한
카드 전체가 드래그 리스너를 잡고 있어 태블릿에서 세로 스크롤이
불가능했던 문제 해결. useDragControls로 왼쪽 핸들 영역에서만
드래그가 시작되도록 변경.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 08:06:58 +09:00
0c6ccecc90 해방 진행도 UI 세부 조정
- 라벨/밑줄과 세그먼트 바 간격 조정
- 1차/2차 밑줄 사이 간격을 세그먼트 바와 동일하게 맞춤
- 세그먼트 진행도 색상을 인라인 스타일로 변경 (Tailwind 컴파일 이슈 회피)
- 예상 해방 날짜 표시 위치/스타일 다듬기

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 00:26:44 +09:00
f7b1c629f9 해방 계산기 진행도 UI 초안 추가
- 제네시스 8챕터 세그먼트 바 + 보스 초상화
- 1차/2차 해방 구분, 예상 해방 날짜 표시
- 다크 테마 커스텀 DatePicker 컴포넌트 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 00:22:46 +09:00
9dbc77ac14 PLAN.md 제거
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:48:26 +09:00
479835805e 푸터 문구를 NEXON 권장 영문 표기로 변경
- 'This site is not associated with NEXON Korea.'
- 'Data based on NEXON Open API.'

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:46:08 +09:00
6e1df46852 관리자 페이지 헤더/뒤로가기/메뉴편집 단축 제거
- AdminLayout 상단 ADMIN/관리자/로그아웃 헤더 제거
- 뒤로가기 버튼 제거 (홈 헤더 로고로 이동 가능)
- AdminFeaturePage의 메뉴 정보 편집 단축 링크 제거
- 로그아웃은 관리자 홈 하단에 작게 배치

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:42:28 +09:00
0fb325b815 헤더/탭 제목, 커스텀 툴팁, 캐릭터 입력 UI 개선
- 커스텀 Tooltip 컴포넌트 (portal, fadeIn, 자동 위치 보정)
- 헤더에 현재 메뉴 제목 표시 (브레드크럼 스타일)
- 브라우저 탭 제목 자동 동기화
- 캐릭터 닉네임 검색 입력 강조 (아이콘, 두꺼운 테두리, 그림자)
- 결정 개수 강조 (큰 폰트, amber 색상)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:38:01 +09:00
b980e7d78a 넥슨 Open API 사용 통계 스크립트 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:21:40 +09:00
7b6a821f36 보스 결정 사용자 페이지 + UI/UX 개선
레이아웃:
- 풀스크린 모드 컨텍스트 (BossCrystal 페이지에서 푸터 숨김 + viewport 고정)
- 캐릭터 패널: 자연 높이 + viewport 한도 + 내부 목록 스크롤
- 보스 패널: 헤더 고정 + 목록 내부 스크롤
- 커스텀 스크롤바 (전역)

캐릭터 패널:
- framer-motion Reorder로 드래그앤드롭 정렬
- 가로 캐릭터 행 + 6x2 보스 그리드 + 난이도 영문 첫글자 뱃지
- 총 수익에 ResizeObserver 기반 자동 폰트 fit
- 캐릭터 삭제 시 첫번째 자동 선택, 입력 재개 시 에러 메시지 자동 제거

기능:
- 공개 보스/캐릭터 API 추가
- API 키 라이브 키로 변경

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:17:49 +09:00
793903668c 홈 페이지 공지 위젯 + 푸터 추가
- 넥슨 공지 위젯 (이벤트/캐시샵/업데이트/공지 탭)
- 이벤트/캐시샵은 진행중인 항목 모두, 그 외는 최근 6개
- 더보기/접기 grid-template-rows 애니메이션
- 캐시샵 ongoing_flag 대신 종료일 비교 (누락 항목 수정)
- 제목/부제목 분리, 달력 이모지로 기간 표시
- 공통 푸터 (저작권, 데이터 출처)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:48:05 +09:00
3df639c815 보스 폼 사용성 개선
- 가격 입력 시 Tab으로 다음 활성 가격 칸으로 이동 (체크박스 건너뜀)
- 최대 인원 기본값 6 → 3 (요즘 보스 기본)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:23:45 +09:00
89b0f1066d 하드 난이도 색상을 fuchsia(자홍)로 변경
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:13:06 +09:00
3fdd9fd981 난이도 배지 색상을 게임 내 이미지와 매치
이지(slate), 노말(sky), 하드(pink), 카오스(amber), 익스트림(red)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:09:23 +09:00
88c6d5d5f3 보스 목록 드래그 앤 드롭 정렬 추가
- @dnd-kit으로 드래그앤드롭 정렬 구현
- DragOverlay 패턴으로 부드러운 드래그 애니메이션
- 드롭 시 즉시 UI 반영 + reorder API 호출
- React 19 peer dep 충돌 해결을 위해 npm install --legacy-peer-deps 사용

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:06:08 +09:00
b885f464c3 보스 결정 관리 개선
- 최대 인원수를 보스 단위로 통합 (난이도별 → 보스 공통)
- 가격 입력 시 쉼표 자동 표시 (text + inputMode=numeric)
- registry 캐싱으로 sub-route 변경 시 화면 갱신 안되던 버그 수정

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:01:04 +09:00
39cda0d958 보스 결정 관리 페이지(프론트) 추가
- 보스 추가/편집/삭제 폼 (이름, 이미지, 난이도별 가격/인원)
- BossList: 등록된 보스 카드 목록 + 추가 버튼
- 동적 라우트가 sub-path 지원하도록 변경 (:slug/*)
- 커스텀 Checkbox/Select 컴포넌트
- number input 화살표 전역 제거
- 가격 입력 시 메소 단위 미리보기 표시
- 결정석 → 결정으로 용어 통일

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:41:47 +09:00
1de5dcb7b9 URL slug 기반 동적 기능 페이지 라우팅 추가
- features/registry.js: import.meta.glob으로 자동 컴포넌트 등록
- /:slug → features/{slug}/{PascalCase}.jsx 매핑
- /admin/:slug → features/{slug}/{PascalCase}Admin.jsx 매핑
- AdminHome 카드 분리 액션 (본체→기능 관리, ⚙→메뉴 정보 편집)
- AdminFeaturePage에 메뉴 정보 편집 단축 링크 추가
- 예시: features/boss-crystal/ stub 컴포넌트

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:27:04 +09:00
a0fd5a2dbb 메뉴 CRUD 백엔드 + 폼 개선
백엔드:
- Menu 모델 + admin/menus CRUD API + 공개 /api/menus 엔드포인트
- 정렬 변경(reorder) API 추가 (드래그앤드롭 대비)

프론트엔드:
- 메뉴 삭제 기능 (편집 모드 폼 좌측 빨간 버튼)
- ConfirmDialog를 공용 컴포넌트로 추출
- URL 입력을 prefix(/) 형태로 분리, 실제 URL 미리보기 표시
- 캐시 hit 시 폼 동기화 안되던 버그 수정 (useEffect로 데이터 sync)
- 전역 button/a 태그에 cursor-pointer 적용

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:20:46 +09:00
35df389141 이미지 페이징, React Query 도입, 메뉴 항목 추가/편집 폼 구현
- 이미지 목록 서버 사이드 페이징 + 검색 디바운싱
- 전역 React Query 도입 (useEffect → useQuery/useMutation)
- 메뉴 추가/편집 폼 (제목, 설명, URL, 이미지)
- 업로드된 이미지에서 선택하는 ImagePicker 모달
- 미선택 시 default.png를 fallback으로 사용
- AdminHome 카드 클릭 시 편집 페이지로 이동

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:11:48 +09:00
921ce9676b 이미지 다중 업로드/삭제 및 중복 방지 추가
- 한 번에 여러 이미지 업로드 (드래그/선택, 개별 이름 수정/제거)
- 다중 선택 삭제 모드 (선택 모드 토글, 전체 선택)
- 커스텀 확인 다이얼로그 (네이티브 confirm 대체)
- 이미지 이름 unique 제약 + 입력 시 실시간 중복/빈 값 검증
- 백엔드 다중 업로드 시 사전 중복 체크
- 카드에서 URL 표시 제거

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 14:42:51 +09:00
65fdc70ff2 이미지 관리 페이지 UI 구현
- 그리드 뷰로 업로드된 이미지 표시 (호버 시 URL 복사/삭제)
- 드래그 앤 드롭 + 클릭 업로드 모달
- 이름 검색 기능
- API 클라이언트가 /api/admin 호출 시 인증 헤더 자동 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 14:27:00 +09:00
72ff284f20 관리자 대시보드 리디자인 및 메뉴/이미지 관리 페이지 추가
- 관리자 페이지 카드형 메뉴 구조로 개편 (DB 연동 준비)
- 메이플스토리 폰트, 단풍잎 favicon 적용
- 헤더 디자인 개선 (백드롭 블러, 단풍잎 로고)
- 홈 페이지를 메뉴 동적 로드 형태로 변경
- 보스 계산기 페이지 제거 (DB 기반으로 재구축 예정)
- 이미지/메뉴 관리 페이지 라우트 추가 (placeholder)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 14:20:32 +09:00
6c51e7d94d OAuth 제거, 닉네임 입력 방식으로 변경 및 관리자 페이지 추가
- 넥슨 OAuth 로그인 제거 (Redis, 세션, User 모델 등)
- 캐릭터 닉네임 입력 → API 키로 조회하는 방식으로 변경
- 관리자 페이지 추가 (/admin?key=<NEXON_API_KEY>)
- 보스 선택 UI를 3단 레이아웃(캐릭터/보스/결과)으로 리디자인
- 캐릭터 및 보스 선택 데이터 localStorage 저장

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 18:02:32 +09:00
4bbb496724 초기 프로젝트 설정
- React + Vite + Tailwind 프론트엔드
- Express + Sequelize + MariaDB 백엔드
- 넥슨 OAuth 2.0 인증 (캐릭터 목록 조회)
- 주간 보스 결정석 수익 계산기 UI (리스트형)
- Docker Compose + Caddy 리버스 프록시 설정
- 보스/난이도 이미지 에셋 포함

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:55:06 +09:00