Files
tier-maker/docs/map.md

4.2 KiB

파일-화면 매핑 가이드

/

  • 화면 파일: 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, POST /api/tierlists/:id/favorite, DELETE /api/tierlists/:id/favorite

/editor/:gameId/new, /editor/:gameId/:tierListId

  • 화면 파일: frontend/src/views/TierEditorView.vue
  • 역할: 티어 그룹 편집, 티어 행 추가/삭제, 관리자 아이템/커스텀 아이템 다중 드래그 앤 드롭 업로드, 티어표 썸네일 선택, 작성 권한 제어, 저장, 공개 여부 설정, 즐겨찾기 토글, PNG 다운로드
  • 연동 API: GET /api/games/:gameId, GET /api/tierlists/:id, POST /api/tierlists/:id/favorite, DELETE /api/tierlists/:id/favorite, 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

/favorites

  • 화면 파일: frontend/src/views/FavoriteTierListsView.vue
  • 역할: 즐겨찾기한 티어표 목록 조회, 검색/정렬, 편집 화면 이동, 즐겨찾기 해제
  • 연동 API: GET /api/tierlists/favorites/me, DELETE /api/tierlists/:id/favorite

/admin

  • 화면 파일: frontend/src/views/AdminView.vue
  • 역할: 게임 관리 / 아이템 관리 / 티어표 관리 / 회원 관리 탭 분리, 선택된 게임의 썸네일 관리, 기본 아이템 다중 드래그 앤 드롭 업로드, 기본 아이템 이름 수정, 사용자 커스텀 아이템 검색/페이지네이션/사용 횟수 확인/미사용 이미지 개별·일괄 삭제, 사용자 커스텀 아이템의 기본 템플릿 승격, 전체 티어표 검색/페이지네이션/공개 여부 확인/완성본 이동, 티어표의 추가 커스텀 아이템을 모달 기반으로 기존 템플릿 또는 새 템플릿에 가져오기, freeform 티어표의 게임 템플릿화, 회원 비밀번호 초기화 포함 회원 관리, 파일 입력 초기화, 아이템 삭제, 게임 삭제
  • 연동 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, POST /api/admin/custom-items/:itemId/promote, DELETE /api/admin/custom-items/:itemId, DELETE /api/admin/custom-items, GET /api/admin/tierlists, POST /api/admin/tierlists/:tierListId/promote-items, POST /api/admin/tierlists/:tierListId/create-game-template, 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