d3ro-voice/CONTRIBUTING.md
Yun Chan 023714442d v1.0.0 배포 준비: CHANGELOG, LICENSE, 프로젝트 메타 파일 추가
- CHANGELOG.md: Phase 1~13 + 랜딩 페이지 전체 변경 이력
- LICENSE: MIT
- CONTRIBUTING.md: 개발 환경, 코드 표준, PR 프로세스
- SECURITY.md: 보안 정책, 취약점 보고 절차
- .editorconfig: 에디터 설정 통일 (indent, charset, eol)
- .nvmrc: Node.js 20
- .gitattributes: line ending 정규화, 바이너리 선언, linguist 설정
- .gitignore: site/dist, Python, Whisper 모델 등 누락 항목 추가
2026-04-06 09:29:27 +09:00

2 KiB

Contributing to D3RO Voice

Thank you for your interest in contributing to D3RO Voice!

Development Setup

Prerequisites

  • Node.js 20+
  • Python 3.10+ (for faster-whisper sidecar)
  • Ollama (for LLM features)
  • Windows 10/11 (primary platform)

Getting Started

# Clone the repository
git clone https://gitlab.twentyoz.kr:8443/d3r0/voice.git
cd voice

# Install dependencies
npm install

# Download SoX binary (Windows)
npm run setup:sox

# Start development
npm run dev

Project Structure

src/
  main/           # Electron main process (services, IPC, DB)
  renderer/       # React app (MUI, components, pages)
  preload/        # contextBridge IPC bridge
  shared/         # Shared types, IPC channels, errors
site/             # Landing page (Vite + React + Tailwind)
docs/             # Design documents and phase specs
tests/            # Unit tests (vitest)

Code Standards

  • TypeScript strict mode (noImplicitAny, strictNullChecks)
  • No any types
  • No console.log (use electron-log via LoggerService)
  • Colors via d3roPalette CSS variables (no hardcoded hex in components)
  • UI strings via t() i18n function (no hardcoded Korean/English)
  • Services: singleton + EventEmitter pattern
  • IPC channels defined in src/shared/ipc-channels.ts

Running Tests

npm run typecheck    # Type checking
npm run lint         # ESLint
npm run test         # Unit tests

Building

npm run build        # Production build
npm run dist         # Build + NSIS installer

Design Documents

Before implementing, always reference:

  • docs/design/00-master-architecture.md
  • docs/design/01-service-specifications.md
  • docs/design/02-ipc-and-types.md
  • docs/design/03-db-and-ui.md

Pull Request Process

  1. Create a feature branch from main
  2. Follow the coding standards above
  3. Ensure npm run typecheck passes
  4. Ensure npm run test passes
  5. Update CHANGELOG.md if applicable
  6. Submit a merge request with a clear description