Commit graph

239 commits

Author SHA1 Message Date
c94849d42a feat(frontend): PC 일정 상세 페이지 추가
- 유튜브 카테고리 상세 페이지 구현 (영상 임베드 + 정보)
- 숏츠/일반 영상 레이아웃 분리
- 브레드크럼 네비게이션 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 14:42:34 +09:00
94fc7b4c7f feat(frontend): PC/모바일 404 페이지 추가
- PC/모바일 각각 사이트 스타일에 맞는 404 페이지 생성
- framer-motion 애니메이션 적용
- PC Layout 수정으로 푸터 하단 고정
- 모바일은 100dvh로 스크롤 없이 전체 화면 사용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 09:57:28 +09:00
2de5cb8f93 feat(mobile/schedule): 검색 UX 개선 및 데이트픽커 스타일 수정
- 데이트픽커 년/월 선택에서 오늘 날짜 초록색 강조
- 검색어 변경 시 스크롤 초기화 개선 (requestAnimationFrame)
- 유튜브 스타일 검색 UX 구현
  - X 버튼 클릭 시 추천 검색어 화면으로 전환
  - 뒤로가기 시 검색 결과 복원 및 검색어 유지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 23:06:08 +09:00
7a1e04b6ae 모바일 웹: 멤버 페이지 UI 개선 (앱 디자인 적용)
- 그리드 레이아웃에서 카드 스와이프 스타일로 변경
- 상단 썸네일 인디케이터 추가 (자동 스크롤, 클릭 이동)
- 멤버 페이지 헤더 그림자 제거 (noShadow prop)
- Swiper 라이브러리로 좌우 스와이프 구현
- 카드 그림자 및 레이아웃 최적화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 14:38:59 +09:00
300fe18a8d Flutter 앱: 컨셉포토 갤러리, UI 개선, 앱 이름 변경
- 컨셉포토 전체보기 화면 추가 (2열 Masonry 레이아웃)
- ConceptPhoto 모델에 width, height, members, concept 필드 추가
- 앨범 상세/갤러리 화면 스크롤 시 툴바 색상 고정
- 멤버 인디케이터 중앙 정렬 수정
- 티저 포토 → 티저 이미지로 명칭 변경
- 뒤로가기 두 번 종료 기능 제거
- 앱 이름 fromis9 → fromis_9로 변경

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 13:02:40 +09:00
255839a598 비디오 티저 썸네일 추출 기능 추가
- DB: album_teasers 테이블에 video_url 컬럼 추가
- 백엔드: 비디오 업로드 시 ffmpeg로 썸네일 추출 후 WebP 저장
- 백엔드: video_url에 MP4 URL 저장, 썸네일은 기존 URL 필드 사용
- 프론트엔드: 썸네일 이미지 표시, 클릭 시 video_url로 재생
- Flutter 앱: Teaser 모델에 videoUrl 필드 추가 및 비디오 재생 수정
- Docker: ffmpeg 설치 추가 (Dockerfile, docker-compose.dev.yml)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 11:59:58 +09:00
7e570d3408 모바일 곡 상세: 뒤로가기 헤더 제거 2026-01-12 19:01:22 +09:00
db6949d53e 모바일 곡 상세: YouTube 전체화면 시 자동 가로 회전 시도 2026-01-12 18:58:06 +09:00
b5f668a8f9 모바일 곡 상세: YouTube iframe fullscreen 권한 추가 2026-01-12 18:54:31 +09:00
5f2c86b783 모바일 곡 상세: 가사 더보기/접기 기능 추가, 하단 여백 조정 2026-01-12 18:51:38 +09:00
5d4c2f32fc 모바일 곡 상세: 수록곡 섹션 제거 2026-01-12 18:49:45 +09:00
e5d403655e 모바일: 곡 상세 화면 구현 (TrackDetail 페이지) 2026-01-12 18:48:00 +09:00
67cd6813a2 PC 곡 상세: TITLE 배지를 노래 제목 옆으로 이동 2026-01-12 18:39:23 +09:00
0232edc10a PC 곡 상세: 수록곡 섹션 디자인 개선 (현재 곡 강조, 재생시간, 음악 아이콘) 2026-01-12 18:35:06 +09:00
6fbad62cdc PC 곡 상세: 수록곡 타이틀 표시 T → TITLE로 변경 2026-01-12 18:31:36 +09:00
ae4bdfaae3 PC 곡 상세: 너비를 앨범 상세와 동일하게 변경 (max-w-7xl) 2026-01-12 18:27:37 +09:00
5bd8d50022 PC 곡 상세: 중복 앨범아트 제거, 클릭 이벤트 제거 2026-01-12 18:10:26 +09:00
a73658854b PC 곡 상세: 디자인 정리 (뮤비 embed, 크레딧 줄바꿈, 가사 스크롤) 2026-01-12 18:05:29 +09:00
61b8bf4815 PC 곡 상세: 프리미엄 디자인 적용 2026-01-12 18:00:41 +09:00
b18183a9f9 웹: PC 곡 상세 화면 구현 (TrackDetail 페이지) 2026-01-12 17:50:48 +09:00
dc65858d6b 웹: AlbumDetail, AlbumGallery 페이지 useQuery로 리팩토링 2026-01-12 17:44:28 +09:00
443bd203ca 모바일 갤러리: 높이 기반 균등 분배 알고리즘 적용 2026-01-12 16:08:00 +09:00
b06e9c0ad9 모바일 갤러리: 홀수개 사진일 때 레이아웃 균형 보정 2026-01-12 16:06:00 +09:00
381196820d PC 홈: 멤버보기 버튼 제거, 앨범 섹션 추가 2026-01-12 15:57:36 +09:00
3adefdb38a 모바일: 홈 앨범 카드 그림자 강화 2026-01-12 15:54:00 +09:00
0664c7b594 모바일: 홈 앨범 섹션 배경색 통일, 바텀바 페이지 전환 시 스크롤 맨 위로 2026-01-12 15:53:01 +09:00
d999872517 웹: Schedule 페이지 일정/카테고리 로딩 useQuery로 리팩토링 2026-01-12 15:51:27 +09:00
990d360520 웹: useEffect를 useQuery로 리팩토링 (PC/모바일 공개 페이지) 2026-01-12 15:46:34 +09:00
a89139f056 앱: 애니메이션 및 네비게이션 개선, 문서 업데이트 2026-01-12 15:44:05 +09:00
64e12e47ae 앨범 상세: 바텀시트 웹 동일 애니메이션, 동영상 썸네일 지원 2026-01-12 14:51:15 +09:00
58411f3dca feat(app): 멤버 화면 블러 효과 및 dayjs 날짜 처리 적용
- expo-blur로 모달 배경 블러 효과 구현 (experimentalBlurMethod)
- dayjs로 생일 날짜 형식 처리 (YYYY.MM.DD)
- dayjs로 나이 계산 로직 개선
- 헤더 타이틀 '멤버'로 변경 (웹과 동일)
- .easignore 추가 (상위 폴더 데이터 제외)
- redis_data 폴더 gitignore 추가
2026-01-12 12:47:59 +09:00
d6bc8d79ba 모바일 앨범 갤러리 UI 대폭 개선
- Swiper 라이브러리로 ViewPager 스타일 라이트박스 구현
- LightboxIndicator 컴포넌트에 width prop 추가 (모바일 120px)
- 2열 지그재그 Masonry 그리드 레이아웃
- 바텀시트 정보 표시 (드래그 핸들 지원)
- 뒤로가기 처리 (라이트박스/다이얼로그 닫기)
- 앨범 조회 API: folder_name 또는 title로 검색 (PC/모바일 호환)
2026-01-11 23:15:56 +09:00
de2e02fcd9 feat(Mobile Album): 앨범 상세 UI 개선
- 히어로 섹션 (커버 중앙 + 블러 배경)
- 앨범 소개 바텀시트 다이얼로그 (드래그 닫기)
- 수록곡 더보기/접기 기능
- 컨셉 포토 전체보기 버튼 모바일화
- 뮤직비디오 버튼 제거
- 라이트박스 showNav 조건 추가
- 앨범 API folder_name 검색으로 수정
2026-01-11 22:17:28 +09:00
79a3501ef1 feat(Album): PC 타이틀곡 텍스트 제거 + 모바일 상세 UI 개선
- PC: 앨범 상세에서 '타이틀곡: OOO' 텍스트 제거
- 모바일: 앨범 상세 UI 전면 개선
  - 티저 포토 섹션 추가
  - 수록곡 리스트 스타일 개선 (트랙번호, TITLE 뱃지)
  - 컨셉 포토 6장 프리뷰 + 전체보기 링크
  - 라이트박스 (다운로드, 이전/다음 네비게이션)
- 앨범 API에서 folder_name 반환 추가
2026-01-11 22:04:08 +09:00
8e3cab9b10 feat(Category): 기본 카테고리 보호 및 ID 재정렬
- is_default 컬럼 추가 (기존 6개 카테고리 = 기본)
- 카테고리 ID 재정렬: 기타(1), 유튜브(2), X(3), 앨범(4), 팬사인회(5), 콘서트(6)
- 일정 테이블 category_id 동기화
- 기본 카테고리 삭제 불가 (백엔드 + 프론트엔드)
- 일정 사용 중인 카테고리 삭제 불가
2026-01-11 21:56:35 +09:00
2ad5341f9c feat(Search): Mobile Schedule 추천 검색어 API 연동 2026-01-11 21:44:55 +09:00
9c2ff7458d feat(Search): Admin Schedule 추천 검색어 연동 + 빈 상태 드롭다운 숨김 2026-01-11 21:39:23 +09:00
727b05f0f5 feat(Search): Redis 기반 bi-gram 추천 검색어 시스템 구현
- MariaDB 테이블 추가 (search_queries, word_pairs)
- Redis 컨테이너 추가 (Sorted Set 캐싱)
- 백엔드 suggestions 서비스 및 API 구현
- 검색 실행 시 검색어 저장 (bi-gram 학습)
- PC Schedule 프론트엔드 연동 완료
2026-01-11 21:33:55 +09:00
3d2a6555f8 fix(Schedule): 무한 스크롤 중복 요청 방지
- inView가 false→true로 변경될 때만 fetchNextPage 실행
- prevInViewRef를 사용하여 이전 상태 추적
- PC 일정, Admin 일정 페이지 모두 적용
2026-01-11 19:06:52 +09:00
043925dcb2 feat(Mobile Schedule): 유튜브 스타일 추천 검색어 리스트 추가
- 드롭다운 대신 컨텐츠 영역 전체에 추천 검색어 표시
- 입력값에 따른 실시간 필터링
- 키패드 검색 버튼(Enter) 클릭 시 키패드 닫기
- 검색 결과 모드에서는 autoFocus 비활성화
2026-01-11 18:59:38 +09:00
09706e42e3 feat(AdminSchedule): 검색어 추천 드롭다운 추가
- 검색 버튼을 초록색 돋보기 아이콘으로 변경
- 애니메이션 scale+opacity로 개선
- 검색 모드에서 빈 일정 메시지 숨김
- 추천 검색어 드롭다운 (유튜브 스타일)
- 방향키 선택, 외부 클릭 닫기 지원
- 검색 모드 진입 시 기존 카테고리 유지
2026-01-11 16:08:22 +09:00
90f5a9a90a feat(Schedule): 검색어 추천 UI 프로토타입 구현
- PC/Admin 스케줄 페이지에 검색어 추천 드롭다운 추가
- 3영역 검색창 레이아웃 (뒤로가기 / 입력 / 검색 버튼)
- 방향키로 추천 검색어 선택 시 입력창 반영 (유튜브 스타일)
- 외부 클릭 시 드롭다운 닫기
- 검색 모드 진입 시 기존 카테고리 유지
- 검색 모드 종료 시 스크롤 위치 초기화
- 전환 애니메이션 개선 (scale + opacity)
2026-01-11 15:58:20 +09:00
2e46d1cf71 AdminSchedule에도 AdminLayout 적용
- AdminHeader를 AdminLayout으로 교체
- 내부 레이아웃을 h-full flex flex-col overflow-hidden으로 조정
- 모든 Admin 페이지가 통일된 레이아웃 구조 사용
2026-01-11 12:13:59 +09:00
1d86c6b841 Admin 페이지에 AdminLayout 적용하여 헤더 고정 + 본문 스크롤 구조 구현
- AdminLayout.jsx 컴포넌트 생성 (헤더 고정 + overflow-y-auto)
- AdminDashboard, AdminMembers, AdminMemberEdit에 적용
- AdminAlbums, AdminAlbumForm, AdminAlbumPhotos에 적용
- AdminScheduleCategory, AdminScheduleBots, AdminScheduleForm에 적용
- AdminSchedule은 내부 스크롤 처리로 자동 감지하여 제외
2026-01-11 12:12:46 +09:00
233b76355e refactor: 일정 페이지 레이아웃을 일정 관리 페이지와 동일하게 수정
- 화면 고정 레이아웃으로 변경 (h-[calc(100vh-64px)] overflow-hidden)
- grid grid-cols-3 레이아웃으로 변경
- 왼쪽 달력/카테고리 영역 고정, 오른쪽 일정 목록만 스크롤
- Layout.jsx에서 일정 페이지 Footer 숨김 처리
2026-01-11 11:26:17 +09:00
622839b0e8 feat: Meilisearch 동기화 봇 추가 및 시간대 관련 수정
봇 시스템:
- Meilisearch 동기화 봇 추가 (meilisearch-bot.js)
- bots 테이블 type enum에 meilisearch 추가
- youtube-scheduler.js에 meilisearch 봇 분기 추가
- admin.js API에서 meilisearch 봇 지원

봇 관리 페이지 개선 (AdminScheduleBots.jsx):
- Meilisearch 공식 로고 아이콘 추가
- Meilisearch 봇 통계: 동기화 수/소요 시간 표시
- 봇 타입별 배경색 (X: 검정, Meilisearch: #ddf1fd, YouTube: 빨강)

시간대 정리:
- MariaDB KST 설정으로 DATE_ADD(NOW(), INTERVAL 9 HOUR) → NOW() 변경
- youtube-bot.js, x-bot.js에서 10곳 수정
2026-01-10 18:59:39 +09:00
59e5a1d47b feat: X 봇 구현 및 봇 관리 기능 개선
- X 봇 서비스 추가 (x-bot.js)
  - Nitter를 통한 @realfromis_9 트윗 수집
  - 트윗을 일정으로 자동 저장 (카테고리 12)
  - 관리 채널 외 유튜브 링크 감지 시 별도 일정 추가
  - 1분 간격 동기화 지원

- DB 스키마 변경
  - bots.type enum 수정 (vlive, weverse 제거, x 추가)
  - bot_x_config 테이블 추가

- 봇 스케줄러 수정 (youtube-scheduler.js)
  - 봇 타입별 동기화 함수 분기 (syncBot)
  - X 봇 지원 추가

- 관리자 페이지 개선 (AdminScheduleBots.jsx)
  - 봇 타입별 아이콘 표시 (YouTube/X)
  - X 아이콘 SVG 컴포넌트 추가

- last_added_count 로직 수정
  - 추가 항목 없으면 이전 값 유지 (0으로 초기화 방지)

- 기존 X 일정에서 유튜브 영상 추출 스크립트 추가
2026-01-10 17:06:23 +09:00
0376c0ac73 feat: 검색 카드 제목 2줄 ellipsis 적용
- line-clamp-2 추가하여 긴 제목 잘림 처리
2026-01-10 10:37:11 +09:00
3b79aa13c2 feat: 검색 카드 날짜 레이아웃 개선
- 왼쪽에 날짜 세로 배치 (년도/월.일/요일)
- 일요일 빨간색, 토요일 파란색 요일 색상 적용
- 오른쪽 콘텐츠 영역으로 분리
2026-01-10 10:35:00 +09:00
54fe3074dc feat: 검색 결과 카드 디자인 개선
- TimelineScheduleCard 스타일로 리디자인
- 날짜 뱃지 추가 (M.D (요일) 형식)
- 시간/카테고리 뱃지 스타일 통일
- 멤버 태그 그라데이션 적용
- 스프링 애니메이션 추가
2026-01-10 10:31:22 +09:00