Files
hanarang-dashboard/.plans/sprints/SPRINT-001.md

4.0 KiB

Sprint 001 — 세팅 + 인프라 + 자매 상태

목표

모노레포 구조 세팅, Nest.js/Next.js 초기화, SSH로 4자매 상태 조회 API, 메인 대시보드 페이지 (자매 상태 카드 4개).

태스크

TASK-001: 모노레포 구조 세팅

  • 담당: 나랑이
  • 상태: pending
  • 의존성: 없음
  • 설명: frontend/ + backend/ 디렉토리 구성 (단순 디렉토리 분리, npm workspaces 미사용)
  • 완료 기준:
    • frontend/ — Next.js 프로젝트 디렉토리
    • backend/ — Nest.js 프로젝트 디렉토리
    • 루트 .gitignore (node_modules, .env, dist, .next 등)
    • 루트 README.md (프로젝트 소개, 실행 방법)
    • 루트 .env.example (DB 접속 정보, SSH 키 경로, Gitea 토큰 템플릿)

TASK-002A: Backend 초기화 (Nest.js + Prisma + MariaDB)

  • 담당: 나랑이
  • 상태: pending
  • 의존성: TASK-001
  • 설명: Nest.js 프로젝트 생성, Prisma 설정, MariaDB 연결, 스키마 마이그레이션
  • DB 연결: 10.10.10.146:33006, DB명 hanarang_dashboard
  • 스키마: .plans/design/db-schema.md 참조. 5개 테이블 전체 정의하되, Sprint 001에서 API로 사용하는 건 SisterConfig만. 나머지(Project, Sprint, Task, ActivityLog)는 스키마만 생성.
  • 완료 기준:
    • Nest.js 프로젝트 생성 + ESLint + Prettier + tsconfig
    • Jest 테스트 프레임워크 세팅
    • Prisma 설치 + 전체 스키마 정의 + prisma migrate dev 성공
    • SisterConfig 시드 스크립트 (4자매 초기 데이터)
    • backend/.env.example (DB URL)
    • GET /health{ "status": "ok" } + health 엔드포인트 단위 테스트 1개
    • 마이그레이션 파일 커밋
    • npm run build 성공
    • 포트: 3005

TASK-002B: SSH 모듈 + 자매 상태 API

  • 담당: 나랑이
  • 상태: pending
  • 의존성: TASK-002A
  • 설명: node-ssh로 4자매 서버 접속, 상태 조회 API
  • SSH 설정: SisterConfig 테이블에서 IP/사용자 읽기 + .env에서 SSH 키 경로 주입
  • 상태 조회: systemctl --user is-active openclaw-gateway 실행 결과로 online/offline 판단
  • 완료 기준:
    • node-ssh 패키지 설치
    • SSH 서비스 모듈 (연결 + 명령 실행)
    • GET /api/sisters → 4자매 상태 반환 (이름, IP, 상태, 역할, 마지막 활동)
    • SSH 연결 실패 시 graceful fallback (해당 자매 status="offline" 반환, 에러 throw 하지 않음)
    • SSH 모듈 mock 테스트 1개
    • npm run build 성공

TASK-003: Frontend 초기화 (Next.js + styled-components + 대시보드)

  • 담당: 나랑이
  • 상태: pending
  • 의존성: TASK-001 (API 연동은 TASK-002B 완료 후, 초기에는 mock 데이터로 개발 가능)
  • 설명: Next.js 프로젝트 생성, styled-components 설정, 다크 테마, 메인 대시보드 페이지
  • 디자인: .plans/design/ui/dashboard-design.md 참조
  • 완료 기준:
    • Next.js App Router + styled-components SSR (StyledComponentsRegistry)
    • ESLint + Prettier + tsconfig
    • 다크 테마 글로벌 스타일 (색상표는 dashboard-design.md 참조)
    • Sidebar 컴포넌트 (네비게이션)
    • 메인 대시보드 페이지 (/):
      • 자매 상태 카드 4개 (초기 mock → 이후 GET /api/sisters 호출)
      • glassmorphism 카드 스타일
      • 상태별 색상 (온라인=#00E676, 오프라인=#FF1744, 작업중=#2979FF)
    • styled-components 규칙: return 아래에 적재
    • npm run build 성공
    • 포트: 3004

완료 기준 (Sprint 전체)

  • frontend/ + backend/ 모두 npm run dev + npm run build 성공
  • GET /health 응답 확인 + 단위 테스트 통과
  • GET /api/sisters → 4자매 상태 반환 (SSH 연결 성공 or graceful fallback)
  • SSH 모듈 mock 테스트 통과
  • 메인 대시보드 페이지에서 자매 상태 카드 4개 렌더링
  • Prisma 마이그레이션 성공 (5개 테이블) + 파일 커밋
  • SisterConfig 시드 데이터
  • ESLint/Prettier/tsconfig/Jest 설정 완료