4.0 KiB
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
- Next.js App Router + styled-components SSR (
완료 기준 (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 설정 완료