Commit Graph

37 Commits

Author SHA1 Message Date
e37066ce31 feat: 기기 관리 페이지 API 연동 (#37)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/38
2026-03-02 01:52:13 +00:00
SEAN
589a0d67ce feat: 기기 관리 페이지 API 연동 (#37)
- types.ts: DeviceSummary/MOCK_DEVICES/SERVICE_FILTER_OPTIONS 삭제, swagger 기준 snake_case 타입 추가 (DeviceListItem, DeviceListRequest 등)
- device.api.ts: 신규 생성 (fetchDevices, deleteDevice, exportDevices)
- DeviceListPage.tsx: Mock → loadData/useCallback 서버 필터링, fetchServices로 서비스 목록 로드, 엑셀 내보내기 구현
- DeviceSlidePanel.tsx: DeviceListItem 타입 적용, deleteDevice API 호출 연동

Closes #37
2026-03-02 10:47:04 +09:00
22c6be0002 feat: 메시지 관리 페이지 API 연동 (#35)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/36
2026-03-02 00:59:18 +00:00
SEAN
2549930a5a feat: 메시지 관리 페이지 API 연동 (#35)
- types.ts: Mock 데이터 및 camelCase 타입 삭제, swagger 기준 snake_case 타입 추가
- message.api.ts: 신규 생성 (목록/상세/저장/삭제/검증 API 함수)
- MessageListPage: MOCK_MESSAGES → fetchMessages API, 서비스 필터 fetchServices로 실제 로드
- MessageSlidePanel: MOCK_MESSAGE_DETAILS → fetchMessageInfo API, deleteMessage API 연동
- MessageRegisterPage: SERVICE_OPTIONS → fetchServices API, validateMessage → saveMessage 흐름
- MessageRegisterPage: 서비스 선택을 FilterDropdown 스타일 커스텀 드롭다운으로 변경
- MessagePreview: 빈 내용 시 플레이스홀더 텍스트 제거

Closes #35
2026-03-02 09:51:02 +09:00
ad6010320a feat: 대시보드 API 타입 swagger 기준 전면 수정 (#33)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/34
2026-03-01 12:02:06 +00:00
SEAN
aef2890474 feat: 대시보드 API 타입 swagger 기준 전면 수정 (#33)
- types.ts: swagger 기준 타입 전면 교체 (DashboardKpi, DailyStat, HourlyStat, PlatformStat, TopMessage, DashboardData)
- DashboardPage.tsx: map 함수 4개 수정 (mapCards, mapChart, mapMessages, mapPlatform) + hasData 조건 개선
- ServiceDetailPage.tsx: KPI 필드명 변경 (total_sent→total_send, success_rate→계산식)
- DashboardFilter.tsx: 서비스 드롭다운 제거 (전체 서비스 통합 현황만 표시)
- dashboard.api.ts: 미사용 fetchServiceList/ServiceOption 제거

Closes #33
2026-03-01 20:56:17 +09:00
8f753a668b feat: 서비스 관리 API 연동 및 UI 개선 (#31)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/32
2026-03-01 01:38:39 +00:00
SEAN
bb4d531d8c feat: 서비스 관리 API 연동 및 UI 개선 (#31)
- 플랫폼 관리 API 연동 (FCM/APNs 인증서 등록/삭제)
- 서비스 상세 통계 카드 대시보드 KPI API 연결
- 통계 서브텍스트 전일 대비 변동 데이터 연결 (변동 없음 표시 포함)
- ServiceHeaderCard/ServiceEditPage optional chaining 버그 수정
- 날짜 표기 YYYY-MM-DD 형식 통일
- 페이지네이션 totalCount 필드명 수정 및 패딩 정렬
- 서비스 등록 완료 모달 UI 통일 및 문구 수정

Closes #31
2026-03-01 10:35:54 +09:00
cff57b5fad feat: 대시보드 API 연동 (#29)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/30
2026-02-28 08:12:15 +00:00
SEAN
cf7076f525 feat: 대시보드 API 연동 (#29)
- 대시보드 API 타입 정의 (DashboardRequest, DashboardData 등)
- API 함수 생성 (fetchDashboard, fetchServiceList)
- DashboardFilter 서비스 드롭다운 API 연동 (하드코딩 제거)
- DashboardPage 랜덤 더미 데이터 → API 호출로 전환
- 에러/빈 데이터 오버레이 분리 (API 에러 vs 조회 결과 없음)

Closes #29
2026-02-28 17:07:42 +09:00
SEAN
ca88d5ba08 feat: 설정 페이지 기능 개선 및 알림 상세 패널 구현
All checks were successful
SPMS_BO/pipeline/head This commit looks good
- 알림 상세 슬라이드 패널 (NotificationSlidePanel) 신규 생성
- 헤더 알림 드롭다운에서 클릭 시 알림 페이지 이동 + 패널 자동 오픈
- 프로필 수정 필수값 검증: useShake + 인라인 에러 메시지 패턴 적용
- 사이드바 프로필 아이콘 클릭 시 마이페이지 이동
- 사이드바 메뉴 그룹 경로 변경 시 자동 접힘 처리
- 대시보드, 마이페이지 UI 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 16:30:22 +09:00
c3073f0e87 feat: 태그 관리 페이지 구현 (#25)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/26
2026-02-28 06:19:05 +00:00
SEAN
8b199803d6 feat: 태그 관리 페이지 구현 (#25)
- TagCard 컴포넌트 구현 (태그 정보 표시, 수정/삭제 기능)
- TagAddModal 컴포넌트 구현 (태그 등록 폼)
- TagDeleteModal 컴포넌트 구현 (삭제 확인 다이얼로그)
- TagManagePage 구현 (서비스별 탭 필터링 + 9건 단위 페이지네이션)
- 서비스 탭 오버플로우 시 가로 스크롤 처리 (scrollbar-hide 유틸 추가)
- 목 데이터 10건 구성

Closes #25
2026-02-28 15:15:49 +09:00
bd71547cc2 feat: 발송 관리 페이지 구현 (#23)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/24
2026-02-27 14:46:06 +00:00
SEAN
530e92240a feat: 발송 관리 페이지 구현 (#23)
- 발송 통계 페이지 (StatisticsPage): 4개 통계 카드, 월간 추이 라인 차트, 플랫폼별 도넛 차트, 시간대별 바 차트, 최근 이력 테이블, 오픈율 Top5
- 발송 이력 페이지 (StatisticsHistoryPage): 검색/서비스/상태/날짜 필터, 발송 이력 테이블, 행 클릭 슬라이드 패널 (발송 상세), 페이지네이션
- 타입 정의 + 목 데이터 15건 (types.ts)
- 브레드크럼 그룹 라벨 처리 (발송 관리 > 발송 통계/발송 이력)
- 날짜 필터 기본값: 오늘 기준 1달 전 ~ 오늘
- 대시보드와 카드/차트 스타일 통일
- 메시지 목록 연동: 슬라이드 패널에서 messageId 쿼리 파라미터로 이동

Closes #23
2026-02-27 23:31:13 +09:00
6501676a35 feat: 기기 관리 페이지 구현 (#21)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/22
2026-02-27 07:59:45 +00:00
SEAN
31d967ffbf feat: 기기 관리 페이지 구현 (#21)
- 타입 + 상수 + 목 데이터 정의 (DeviceSummary, 10건)
- Device ID / Push Token 토글 팝오버 셀 구현 (SecretToggleCell)
- 슬라이드 패널 상세 + 삭제 확인 모달 구현 (DeviceSlidePanel)
- 목록 페이지 구현 (필터 4개 + 8컬럼 테이블 + 스켈레톤 + 페이지네이션)
- PlatformBadge 아이콘 전용으로 수정
- FilterDropdown 드롭다운 옵션 중앙 정렬

Closes #21

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 16:57:08 +09:00
f23e6cb4b2 feat: 메시지 관리 페이지 구현 (#19)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/20
2026-02-27 06:36:17 +00:00
SEAN
6653e5da2a feat: 메시지 관리 페이지 구현 (#19)
- 메시지 타입 정의 + 목 데이터 10건 (types.ts)
- iOS/Android 푸시 알림 프리뷰 컴포넌트 (MessagePreview)
- 슬라이드 패널 상세 보기 + 삭제 기능 (MessageSlidePanel)
- 메시지 목록 페이지: 필터(ID/제목 검색, 서비스), 테이블, 페이지네이션
- 메시지 작성 페이지: 12-col 그리드 폼 + 실시간 프리뷰, 필수 검증, 저장 모달

Closes #19

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 15:33:42 +09:00
b1957b1bfc fix: TypeScript 빌드 에러 수정 (#17)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/18
2026-02-27 05:22:25 +00:00
SEAN
4f8c282572 fix: TypeScript 빌드 에러 수정 (#17)
- DashboardPage: 미사용 변수 i 제거 (TS6133)
- PlatformStatusIndicator: CredentialStatus 타입 내로잉 적용 (TS7053)

Closes #17
2026-02-27 14:15:36 +09:00
1b4fc79b2d feat: 서비스 관리 페이지 구현 (#14)
Some checks failed
SPMS_BO/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/16
2026-02-27 05:01:16 +00:00
SEAN
9db9d87dea feat: 서비스 관리 페이지 구현 (#14)
- 서비스 목록 페이지 (검색/필터/페이지네이션, 행 클릭 → 상세)
- 서비스 상세 페이지 (헤더카드/통계/플랫폼 관리 모달)
- 서비스 등록 페이지 (서비스명/플랫폼 선택/설명/관련링크)
- 서비스 수정 페이지 (상태 토글/메타정보/저장 확인 모달)
- 공통 훅 추출 (useShake, useBreadcrumbBack)
- 브레드크럼 동적 경로 지원 (/services/:id, /services/:id/edit)
- 인증 페이지 useShake 공통 훅 리팩터링

Closes #14
2026-02-27 13:53:56 +09:00
c89cfeaa56 feat: 대시보드 페이지 구현 및 공통 컴포넌트 추가 (#9)
Some checks failed
SPMS_BO/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/11
2026-02-27 01:29:17 +00:00
SEAN
59c206e0c2 feat: 대시보드 조회 로딩 상태 및 필터 disabled 처리
- 조회 클릭 시 전체 필터 비활성화 (날짜/드롭다운/초기화/조회)
- 각 위젯 로딩 오버레이 및 스켈레톤 추가
- 조회 완료 시 랜덤 Mock 데이터로 갱신
- 공통 컴포넌트(FilterDropdown, DateRangeInput, FilterResetButton)에 disabled prop 추가
- StatsCards 뱃지 아이콘 크기 및 중앙 정렬 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 09:59:59 +09:00
SEAN
61508e25f7 feat: 대시보드 페이지 구현 (통계카드/차트/필터/최근발송/플랫폼도넛)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 09:29:22 +09:00
SEAN
af6ecab428 feat: 가이드라인 기반 공통 컴포넌트 및 레이아웃 개선
- 공통 컴포넌트 11개 생성 (PageHeader, StatusBadge, CategoryBadge, FilterDropdown, DateRangeInput, SearchInput, FilterResetButton, Pagination, EmptyState, CopyButton, PlatformBadge)
- AppHeader: 다단계 breadcrumb, 알림 드롭다운 구현
- AppLayout: 푸터 개인정보처리방침/이용약관 모달 추가
- AppSidebar: 이메일 폰트 자동 축소 (clamp)
- SignupPage: 모달 닫기 버튼 x 아이콘으로 통일
- Suspense fallback SVG 스피너로 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 09:27:21 +09:00
1e8d33102e feat: 인증 페이지 API 연동 (회원가입/로그인/이메일 인증)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/8
2026-02-26 23:01:29 +00:00
SEAN
37ac854bc8 feat: 인증 페이지 API 연동 (회원가입/로그인/이메일 인증) (#7)
- 회원가입 API 연동 (POST /v1/in/auth/signup)
- 로그인 API 연동 (POST /v1/in/auth/login, next_action 분기)
- 이메일 인증 API 연동 (POST /v1/in/auth/email/verify, /resend)
- API 타입 swagger 스펙에 맞게 수정 (ApiResponse, auth types)
- User 타입 백엔드 AdminInfo 기반으로 변경
- authStore localStorage 영속화 (새로고침 시 인증 유지)
- Vite dev 프록시 설정 (/v1 → devspms)

Closes #7

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 08:00:04 +09:00
SEAN
2c4701939d fix: zod v4 z.literal() API 호환 (SignupPage)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
errorMap은 zod v4에서 지원하지 않으므로 message로 교체.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 16:45:42 +09:00
SEAN
bb82846d59 fix: Jenkinsfile 프론트 빌드 소스 복사 방식 수정
Some checks failed
SPMS_BO/pipeline/head There was a failure building this commit
정지된 컨테이너에 docker cp하면 바인드 마운트에 반영되지 않아
호스트 볼륨의 옛날 소스로 빌드되는 문제 해결.
임시 alpine 컨테이너를 통해 호스트 볼륨에 직접 복사하도록 변경.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 16:22:48 +09:00
e8edbb528c feat: 인증 페이지 구현 (로그인/회원가입/이메일 인증) (#4)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/6
2026-02-26 05:51:13 +00:00
SEAN
ccfda47b96 feat: 인증 페이지 구현 (로그인/회원가입/이메일 인증) (#4)
- LoginPage: react-hook-form + zod 유효성검사, 비밀번호 토글, shake 애니메이션,
  로그인 성공/실패 처리, 성공 오버레이
- SignupPage: 이메일/비밀번호/이름/전화번호 실시간 검증, 전화번호 자동 하이픈,
  약관 동의 체크박스, 인증 메일 전송 모달, 이용약관/개인정보 모달
- VerifyEmailPage: 6자리 코드 입력(자동 포커스/붙여넣기), 인증 성공/실패,
  재전송 60초 쿨다운, 인증 완료 모달 + 홈 이동 오버레이
- ResetPasswordModal: 비밀번호 재설정 이메일 발송, sonner 토스트
- AuthLayout: flex 기반 풋터 위치 수정 (콘텐츠 중앙 + 풋터 하단)
- 라우터: verify-email 가드 추가 (인증 완료 시 홈 리다이렉트)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 14:37:42 +09:00
db3a22bb57 feat: 프론트엔드 아키텍처 셋업 (#2)
All checks were successful
SPMS_BO/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_WEB/pulls/3
2026-02-26 04:03:53 +00:00
SEAN
fc9b0c0f75 feat: 프론트엔드 아키텍처 셋업 (#2)
- Vite 기본 템플릿 정리 및 index.html 수정
- guideline.html 기반 디자인 토큰 적용 (index.css)
- Feature-based 폴더 구조 (8개 feature 모듈)
- 18개 placeholder 페이지 + lazy loading 라우터
- 레이아웃 컴포넌트 (AppLayout, AppHeader, AppSidebar, AuthLayout)
- Zustand 스토어 (authStore, uiStore)
- API 계층 (Axios client, auth.api)
- 타입 정의, 유틸리티, 환경변수 설정
- ErrorBoundary, ProtectedRoute, PublicRoute

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 13:02:22 +09:00
SEAN
75d4a25a24 [] 새 프로젝트 생성
All checks were successful
SPMS_BO/pipeline/head This commit looks good
2025-12-03 14:24:49 +09:00
SEAN
aa99a5e6e7 [📝] GIT init 2025-12-03 14:24:07 +09:00