Files
sam-manage/docs/project-management
hskwon 76c8a94e4f docs: MNG 프로젝트 문서 정비
- 개발 단계별 문서 추가 (00_OVERVIEW ~ 06_PHASE)
- 기술 표준 문서 추가 (99_TECHNICAL_STANDARDS)
- 개발 프로세스 및 패턴 문서 추가
  - API_FLOW_TESTER_DESIGN, DEV_PROCESS
  - HTMX_API_PATTERN, LAYOUT_PATTERN
  - SETUP_GUIDE, MNG_PROJECT_PLAN
- 프로젝트 관리 문서 추가 (project-management/)
- INDEX.md, MNG_CRITICAL_RULES.md 업데이트
2025-11-30 21:04:19 +09:00
..
2025-11-30 21:04:19 +09:00

프로젝트 진행 관리 시스템 (PM)

MNG 관리자 패널용 프로젝트/작업/이슈 관리 시스템

개요

Notion 수동 관리를 대체하는 웹 기반 프로젝트 진행 관리 도구로, 클릭 한 번으로 상태 변경이 가능하고 대시보드에서 전체 진행률을 한눈에 파악할 수 있습니다.

데이터 구조

Project (프로젝트)
  └── Task (작업) - 1:N
        └── Issue (이슈) - 1:N

테이블

테이블명 설명
admin_pm_projects 프로젝트
admin_pm_tasks 작업
admin_pm_issues 이슈

Migration은 api/ 저장소에 위치

상태값

프로젝트 상태

라벨 색상
active 진행중 green
completed 완료 blue
on_hold 보류 yellow

작업 상태

라벨 색상
todo 예정 gray
in_progress 진행중 blue
done 완료 green

작업 우선순위

라벨 색상
low 낮음 gray
medium 보통 yellow
high 높음 red

이슈 타입

라벨
bug 버그
feature 기능
improvement 개선

이슈 상태

라벨
open 열림
in_progress 진행중
resolved 해결됨
closed 닫힘

파일 구조

app/
├── Http/
│   ├── Controllers/
│   │   ├── ProjectManagementController.php      # Web Controller (뷰 렌더링)
│   │   └── Api/Admin/ProjectManagement/
│   │       ├── ProjectController.php            # 프로젝트 API
│   │       ├── TaskController.php               # 작업 API
│   │       ├── IssueController.php              # 이슈 API
│   │       └── ImportController.php             # JSON Import API
│   └── Requests/ProjectManagement/
│       ├── StoreProjectRequest.php
│       ├── UpdateProjectRequest.php
│       ├── StoreTaskRequest.php
│       ├── UpdateTaskRequest.php
│       ├── StoreIssueRequest.php
│       ├── UpdateIssueRequest.php
│       ├── BulkActionRequest.php
│       └── ImportProjectRequest.php
├── Models/Admin/
│   ├── AdminPmProject.php
│   ├── AdminPmTask.php
│   └── AdminPmIssue.php
└── Services/ProjectManagement/
    ├── ProjectService.php
    ├── TaskService.php
    ├── IssueService.php
    └── ImportService.php

resources/views/project-management/
├── index.blade.php                    # 대시보드
├── import.blade.php                   # JSON Import
└── projects/
    ├── index.blade.php                # 프로젝트 목록
    ├── create.blade.php               # 프로젝트 생성
    ├── edit.blade.php                 # 프로젝트 수정
    ├── show.blade.php                 # 프로젝트 상세 (작업/이슈 포함)
    └── partials/
        └── table.blade.php            # HTMX 테이블 파셜

API 엔드포인트

프로젝트 API (/api/admin/pm/projects)

Method URI Name 설명
GET / index 목록 조회
POST / store 생성
GET /{id} show 상세 조회
PUT /{id} update 수정
DELETE /{id} destroy 삭제 (soft)
POST /{id}/restore restore 복원
DELETE /{id}/force forceDestroy 영구 삭제
POST /{id}/status changeStatus 상태 변경
POST /{id}/duplicate duplicate 복제
GET /stats stats 통계
GET /dashboard dashboard 대시보드 요약
GET /dropdown dropdown 드롭다운용 목록

작업 API (/api/admin/pm/tasks)

Method URI Name 설명
GET / index 목록 조회
POST / store 생성
GET /{id} show 상세 조회
PUT /{id} update 수정
DELETE /{id} destroy 삭제
POST /{id}/status changeStatus 상태 변경
GET /project/{projectId} byProject 프로젝트별 조회
POST /project/{projectId}/reorder reorder 순서 변경
GET /project/{projectId}/stats stats 프로젝트별 통계
GET /urgent urgent 긴급 작업 목록
POST /bulk bulk 일괄 작업

이슈 API (/api/admin/pm/issues)

Method URI Name 설명
GET / index 목록 조회
POST / store 생성
GET /{id} show 상세 조회
PUT /{id} update 수정
DELETE /{id} destroy 삭제
POST /{id}/status changeStatus 상태 변경
GET /project/{projectId} byProject 프로젝트별 조회
GET /task/{taskId} byTask 작업별 조회
GET /stats stats 통계
GET /open open 열린 이슈 목록
POST /bulk bulk 일괄 작업

Import API (/api/admin/pm/import)

Method URI Name 설명
GET /template template 샘플 JSON 템플릿
POST /validate validate JSON 구조 검증
POST / import 새 프로젝트 Import
POST /project/{id}/tasks importTasks 기존 프로젝트에 작업 추가

Web 라우트

URI Name 설명
/project-management pm.index 대시보드
/project-management/projects pm.projects.index 프로젝트 목록
/project-management/projects/create pm.projects.create 프로젝트 생성
/project-management/projects/{id} pm.projects.show 프로젝트 상세
/project-management/projects/{id}/edit pm.projects.edit 프로젝트 수정
/project-management/import pm.import JSON Import

JSON Import 기능

JSON 포맷 (새 프로젝트)

{
  "project": {
    "name": "프로젝트명 (필수)",
    "description": "프로젝트 설명",
    "status": "active",
    "start_date": "2025-01-01",
    "end_date": "2025-03-31"
  },
  "tasks": [
    {
      "title": "작업 제목 (필수)",
      "description": "작업 설명",
      "status": "todo",
      "priority": "high",
      "due_date": "2025-01-15",
      "issues": [
        {
          "title": "이슈 제목 (필수)",
          "description": "이슈 설명",
          "type": "bug",
          "status": "open"
        }
      ]
    }
  ]
}

JSON 포맷 (기존 프로젝트에 작업 추가)

{
  "tasks": [
    {
      "title": "추가할 작업",
      "priority": "medium",
      "issues": [...]
    }
  ]
}

사용 예시

프로젝트 생성

curl -X POST /api/admin/pm/projects \
  -H "Content-Type: application/json" \
  -d '{
    "name": "SAM MES 개발",
    "description": "MES 시스템 개발 프로젝트",
    "status": "active",
    "start_date": "2025-01-01"
  }'

작업 상태 변경

curl -X POST /api/admin/pm/tasks/1/status \
  -H "Content-Type: application/json" \
  -d '{"status": "in_progress"}'

작업 순서 변경

curl -X POST /api/admin/pm/tasks/project/1/reorder \
  -H "Content-Type: application/json" \
  -d '{"task_ids": [3, 1, 2]}'

JSON Import

curl -X POST /api/admin/pm/import \
  -H "Content-Type: application/json" \
  -d @project.json

대시보드 요약 API 응답

{
  "success": true,
  "data": {
    "projects": {
      "total": 5,
      "active": 3,
      "completed": 1,
      "on_hold": 1
    },
    "tasks": {
      "total": 25,
      "todo": 10,
      "in_progress": 8,
      "done": 7,
      "overdue": 2
    },
    "issues": {
      "total": 15,
      "open": 5,
      "in_progress": 3,
      "resolved": 4,
      "closed": 3
    },
    "recent_projects": [...],
    "urgent_tasks": [...]
  }
}

관련 커밋

  • 603062e - feat(pm): 프로젝트 진행 관리 시스템 구현