65 Commits

Author SHA1 Message Date
4ec4f9a0a3 fix: UserAdmin의 useAuth import 경로 수정
All checks were successful
Client CI/CD / deploy (push) Successful in 10s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 22:41:31 +09:00
80c06e814e ci: set -e 추가로 빌드 실패 시 파이프라인 중단
Some checks failed
Client CI/CD / deploy (push) Failing after 10s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 22:40:54 +09:00
2163d0f311 fix: 관리자 다운로드 폼 에러 피드백 추가 및 nginx HTML 캐싱 방지
All checks were successful
Client CI/CD / deploy (push) Successful in 9s
- 저장 실패 시 에러 메시지 표시
- nginx index.html Cache-Control: no-store 설정

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 22:34:45 +09:00
4047014cea feat: 다운로드 관리 페이지에 fileHash 입력 필드 추가
All checks were successful
Client CI/CD / deploy (push) Successful in 10s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 22:22:49 +09:00
6998ffd6a3 feat: 게임 시작 버튼 추가 및 AuthContext 린트 에러 수정
All checks were successful
Client CI/CD / deploy (push) Successful in 10s
- DownloadSection에 a301:// 커스텀 URI로 게임 실행하는 버튼 추가
- AuthContext에서 createContext와 useAuth 훅을 별도 파일로 분리하여 react-refresh 린트 에러 해결

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:55:27 +09:00
e025fdfe87 feat: JWT 만료/로그아웃 시 자동 리다이렉트 처리
All checks were successful
Client CI/CD / deploy (push) Successful in 11s
- 401 응답 시 auth:unauthorized 이벤트 발생 (client.js)
- AuthContext에서 이벤트 수신 시 자동 로그아웃
- 관리자 페이지에서 인증 만료 시 메인으로, 그 외는 로그인 페이지로 이동

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 16:38:46 +09:00
2ac2823ecc feat: 회원가입 페이지 및 API 추가
All checks were successful
Client CI/CD / deploy (push) Successful in 11s
- RegisterPage 추가 (아이디/비밀번호/비밀번호 확인 폼, 클라이언트 유효성 검사)
- /register 라우트 추가 (로그인 상태 시 홈 리다이렉트)
- 로그인 페이지에 회원가입 링크 및 가입 완료 안내 메시지 추가
- api/auth.js에 register() 함수 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 15:11:32 +09:00
1359c38222 feat: 관리자 페이지 추가 (공지사항, 다운로드, 유저 관리)
- /admin 라우트 추가 (admin 권한 전용)
- 공지사항 CRUD, 다운로드 정보 수정, 유저 권한/삭제 관리
- AuthContext에 role 추가 및 localStorage 저장
- 홈 헤더에 admin 링크 표시 (admin만 노출)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 14:52:28 +09:00
9fa665c9c0 fix: 다운로드 정보 없을 때 준비중 메시지 표시
All checks were successful
Client CI/CD / deploy (push) Successful in 12s
404 응답 시 컴포넌트가 사라지는 대신 안내 문구 노출

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 14:39:26 +09:00
2f56dfb519 ci: 빌드 시 VITE_API_BASE_URL을 build arg로 주입
All checks were successful
Client CI/CD / deploy (push) Successful in 12s
Vite는 빌드 타임에 환경변수를 번들에 포함하므로
서버 secrets에서 VITE_API_BASE_URL을 받아 docker build 시 전달

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 14:35:09 +09:00
86c6720f30 feat: mock 데이터 제거 및 실제 API 연동
- 모든 API 파일에서 mock 제거, 실제 백엔드 호출로 전환
- 공지사항 날짜 ISO 포맷에서 날짜만 표시하도록 수정
- VITE_API_BASE_URL을 https://a301.api.tolelom.xyz로 변경 (.env, gitignore)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 14:32:02 +09:00
7e2f9419ab Add frontend pages with login, download, and announcements
All checks were successful
Client CI/CD / deploy (push) Successful in 12s
- React Router v7: public home page, /login page
- Auth context with JWT localStorage management
- Login: ID/PW form + SSAFY login button (UI only)
- Home: hero banner, download section (login required), announcement board
- API layer with mock data (ready for Go Fiber backend)
- Color scheme: #2E2C2F dark + #BACDB0 accent
- Add .env.example for environment variable reference

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 12:40:29 +09:00
1a472df39c Fix: npm ci에 --legacy-peer-deps 추가로 eslint peer dependency 충돌 해결
All checks were successful
Client CI/CD / deploy (push) Successful in 10s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 11:38:17 +09:00
ca08f7a2e6 CI/CD: Gitea Actions 배포 파이프라인 및 Docker 설정 추가
All checks were successful
Client CI/CD / deploy (push) Successful in 11s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 11:32:42 +09:00
fb0efa4b4b Chore: project init 2026-02-24 11:18:53 +09:00