Vue 3 + PrimeVue 기반의 이미지 퀴즈 플랫폼 프론트엔드 애플리케이션입니다.
- Vue 3 - 프론트엔드 프레임워크
- Vue Router - 라우팅
- PrimeVue - UI 컴포넌트 라이브러리
- Axios - HTTP 클라이언트
- Vite - 빌드 도구
frontend/
├── src/
│ ├── api/ # API 서비스 파일
│ │ ├── axios.js # Axios 인스턴스 설정
│ │ ├── auth.js # 인증 관련 API
│ │ ├── user.js # 사용자 관련 API
│ │ ├── quiz.js # 퀴즈 관련 API
│ │ ├── comment.js # 댓글 관련 API
│ │ └── submission.js # 풀이 제출 관련 API
│ ├── views/ # 페이지 컴포넌트
│ │ ├── Home.vue
│ │ ├── Feed.vue
│ │ ├── Quiz.vue
│ │ ├── Profile.vue
│ │ ├── Create.vue
│ │ └── auth/
│ │ ├── Login.vue
│ │ └── Signup.vue
│ ├── router/ # 라우터 설정
│ │ └── index.ts
│ ├── lib/ # 유틸리티
│ │ └── utils.ts
│ ├── App.vue
│ └── main.js
├── public/ # 정적 파일
└── package.json
npm install.env.example 파일을 참고하여 .env 파일을 생성하고 API Base URL을 설정하세요.
VITE_API_BASE_URL=http://localhost:8080/apinpm run devnpm run buildnpm run preview- ✅ 사용자 인증 (일반 로그인/회원가입, 카카오 OAuth)
- ✅ 퀴즈 목록 조회 및 검색
- ✅ 퀴즈 상세 조회 및 풀이
- ✅ 퀴즈 생성/수정/삭제
- ✅ 좋아요 및 댓글 기능
- ✅ 사용자 프로필 및 팔로우
- ✅ 마이페이지
모든 API 호출은 src/api/ 디렉토리의 서비스 파일을 통해 이루어집니다.
auth.js: 인증 관련 APIuser.js: 사용자 관련 APIquiz.js: 퀴즈 관련 APIcomment.js: 댓글 관련 APIsubmission.js: 풀이 제출 관련 API
Axios 인스턴스는 자동으로 JWT 토큰을 헤더에 추가하며, 401 에러 시 자동으로 로그인 페이지로 리다이렉트합니다.
이 프로젝트는 PrimeVue를 사용하여 UI를 구성합니다. 주요 사용 컴포넌트:
- Button
- Card
- InputText
- Textarea
- Dialog
- Toast
- ProgressBar
- Avatar
- Badge
- Divider
- FileUpload
MIT