51 lines
3.2 KiB
Markdown
51 lines
3.2 KiB
Markdown
# 파일-화면 매핑 가이드
|
|
|
|
## `/`
|
|
- 화면 파일: `frontend/src/views/HomeView.vue`
|
|
- 역할: 게임 목록 표시, 게임 카드 클릭 이동, `직접 티어표 만들기` 진입
|
|
- 연동 API: `GET /api/games`
|
|
|
|
## `/games/:gameId`
|
|
- 화면 파일: `frontend/src/views/GameHubView.vue`
|
|
- 역할: 선택한 게임 정보 표시, 공개 티어표 목록 표시, 티어표별 상단 썸네일/작성자 표시, 새 티어표 작성 진입
|
|
- 연동 API: `GET /api/games/:gameId`, `GET /api/tierlists/public`
|
|
|
|
## `/editor/:gameId/new`, `/editor/:gameId/:tierListId`
|
|
- 화면 파일: `frontend/src/views/TierEditorView.vue`
|
|
- 역할: 티어 그룹 편집, 티어 행 추가/삭제, 관리자 아이템/커스텀 아이템 다중 드래그 앤 드롭 업로드, 티어표 썸네일 선택, 작성 권한 제어, 저장, 공개 여부 설정, PNG 다운로드
|
|
- 연동 API: `GET /api/games/:gameId`, `GET /api/tierlists/:id`, `POST /api/tierlists/thumbnail`, `POST /api/tierlists/custom-items`, `POST /api/tierlists`
|
|
|
|
## `/login`
|
|
- 화면 파일: `frontend/src/views/LoginView.vue`
|
|
- 역할: 로그인/회원가입 전환, 첫 가입 안내
|
|
- 연동 API: `GET /api/auth/meta`, `POST /api/auth/login`, `POST /api/auth/signup`
|
|
|
|
## `/me`
|
|
- 화면 파일: `frontend/src/views/MyTierListsView.vue`
|
|
- 역할: 내 티어표 목록 조회, 상단 썸네일 카드 표시, 편집 화면으로 이동, 작성자 본인 티어표 삭제
|
|
- 연동 API: `GET /api/tierlists/me`, `DELETE /api/tierlists/:id`
|
|
|
|
## `/admin`
|
|
- 화면 파일: `frontend/src/views/AdminView.vue`
|
|
- 역할: `게임 관리 / 아이템 관리 / 회원 관리` 탭 분리, 선택된 게임의 썸네일 관리, 기본 아이템 다중 드래그 앤 드롭 업로드, 기본 아이템 이름 수정, 사용자 커스텀 아이템 검색/페이지네이션/사용 횟수 확인/미사용 이미지 개별·일괄 삭제, 회원 비밀번호 초기화 포함 회원 관리, 파일 입력 초기화, 아이템 삭제, 게임 삭제
|
|
- 연동 API: `POST /api/admin/games`, `POST /api/admin/games/:gameId/thumbnail`, `POST /api/admin/games/:gameId/images`, `PATCH /api/admin/games/:gameId/items/:itemId`, `GET /api/admin/custom-items`, `DELETE /api/admin/custom-items/:itemId`, `DELETE /api/admin/custom-items`, `GET /api/admin/users`, `PATCH /api/admin/users/:userId`, `PATCH /api/admin/users/:userId/password`, `DELETE /api/admin/users/:userId`, `DELETE /api/admin/games/:gameId/items/:itemId`, `DELETE /api/admin/games/:gameId`
|
|
|
|
## `/profile`
|
|
- 화면 파일: `frontend/src/views/ProfileView.vue`
|
|
- 역할: 프로필 표시, 작성자 닉네임 수정, 아바타 미리보기 후 저장
|
|
- 연동 API: `GET /api/auth/me`, `POST /api/auth/profile`
|
|
|
|
## 공통 레이아웃
|
|
- 앱 셸 파일: `frontend/src/App.vue`
|
|
- 역할: 상단 내비게이션, 로그인 상태 반영, 아바타 메뉴, 관리자 메뉴 노출 제어
|
|
|
|
## 백엔드 진입점
|
|
- 서버 엔트리: `backend/index.js`
|
|
- 데이터 초기화: `backend/src/db.js`
|
|
- 로컬 DB 실행 설정: `docker-compose.yml`
|
|
- 로컬 MariaDB 가이드: `docs/local-mariadb.md`
|
|
- 인증 라우트: `backend/src/routes/auth.js`
|
|
- 게임 라우트: `backend/src/routes/games.js`
|
|
- 티어표 라우트: `backend/src/routes/tierlists.js`
|
|
- 관리자 라우트: `backend/src/routes/admin.js`
|