사요자 대시보드 추가

This commit is contained in:
2026-07-08 18:12:34 +09:00
parent 5da0260be3
commit 3485eeb096
24 changed files with 3461 additions and 229 deletions
+60 -8
View File
@@ -13,7 +13,7 @@
프로젝트의 코드를 작성, 테스트 또는 검증할 환경 명확화 및 호환 기준 제시.
### A. 백엔드 프레임워크 (Python)
* **Runtime:** Python v3.12 or v3.13.7
* **Runtime:** Python v3.12.7
* **Framework:** FastAPI / Pydantic
* **Geometry/GIS Engine:** Trimesh, Whitebox, Geopandas, Shapely, Rasterio, Laspy
@@ -55,6 +55,7 @@
* *Python 포맷팅 명령어:* `ruff format [파일명]``ruff check --fix [파일명]` 실행
* *TypeScript/CSS 포맷팅 명령어:* `npx prettier --write [파일명]` 실행
* **외부 라이브러리 활용:** 외부 라이브러리 활용 시 프로젝트에 맞춰 호환 라이브러리 선정하고, 불필요한 함수는 작성하지 않도록 최소화.
* **서버실행은 사용자가 실행:** 필요한 경우 의존성 설치까지는 OK, 단 서버실행은 사용자가 진행
---
@@ -98,6 +99,33 @@ storage/{company_slug}/{user_slug}/{project_id}/
- **경로 저장 예:** `{"type": "LineString", "coordinates": [[127.5, 37.5], [127.6, 37.6]]}`
- **애플리케이션 처리:** Python의 Shapely, Geopandas에서 JSON 파싱 후 기하 연산
### 4.5 역할 기반 접근 제어 (RBAC - Role-Based Access Control)
**3가지 사용자 역할:**
| 역할 | 영문 | 설명 | 접근 권한 |
|------|------|------|---------|
| 시스템 관리자 | SYSTEM_ADMIN | 최고 관리자 | 전체 회사/사용자/프로젝트 조회 및 관리 |
| 회사 관리자 | ADMIN | 회사의 주요 아이디 (초기 로그인) | 회사 내 팀원/프로젝트 관리, 가입 요청 승인 |
| 일반 사용자 | USER | 팀원 | 개인 프로젝트 생성/수정, 워크플로우 진행 |
**회사 마스터 (is_master) 플래그:**
- TRUE: 회사 생성자 또는 ADMIN 역할 (팀원 승인/거부 권한)
- FALSE: 일반 팀원
**사용자 상태 생명주기:**
```
PENDING_EMAIL (임시)
↓ (이메일 인증)
NO_COMPANY (로그인 가능, 회사 미연결)
↓ (회사 생성 또는 참여 신청)
PENDING (승인 대기) 또는 ACTIVE (회사 연결 완료)
ACTIVE (모든 기능 접근)
↓ (퇴사/비활성화)
INACTIVE 또는 REJECTED
```
---
## 5. 워크플로우 6단계 (6-Stage Workflow)
@@ -123,12 +151,33 @@ WF6: B09_wf6_Estimation (견적·문서)
## 6. 주요 문서 참고 순서
1. **구조 설계:** `.agent/structure.md` 읽기
2. **프론트 구현:** `.agent/frontend.md` 읽기
3. **백엔드 구현:** `.agent/backend.md` 읽기
4. **마이그레이션:** `.agent/migration_plan.md` 읽기
5. **DB 스키마:** `.agent/db_schema_simple.md` 읽기
6. **프로젝트 정보:** `.agent/project_info.md` 읽기
1. **계획서 읽기:** 구현 전 반드시 읽을 문서
- `.agent/plan_register_split.md` — B01_Dashboard 설계 및 역할별 기능
- `.agent/plan_register_split_validation.md` — 검증 항목 및 테스트 체크리스트
2. **구조 설계:** `.agent/structure.md` 읽기
- 폴더/파일 명명 규칙
- 전체 디렉토리 트리 구조
3. **DB 스키마:** `.agent/db_schema.md` 읽기
- 사용자/회사/조직 테이블 (5개)
- 프로젝트 및 워크플로우 테이블
- 테이블 관계도
4. **백엔드 구현:** `.agent/backend.md` 읽기
- 아키텍처 및 라우팅
- DB 및 MariaDB 설정
- 인증 시스템 (로그인/역할/인가)
- 역할 기반 접근 제어 (RBAC)
5. **프론트 구현:** `.agent/frontend.md` 읽기
- UI 요소 및 레이아웃 제약
- 인증 및 라우팅 가드
- 역할 기반 대시보드 렌더링
6. **마이그레이션:** `.agent/migration_plan.md` 읽기 (필요 시)
7. **프로젝트 정보:** `.agent/project_info.md` 읽기 (필요 시)
---
@@ -144,5 +193,8 @@ WF6: B09_wf6_Estimation (견적·문서)
| **Frontend** | TypeScript / Node.js |
| **드라이버** | aiomysql |
| **워크플로우** | 6단계 (WF0~WF6) |
| **테이블 수** | 18개 |
| **테이블 수** | 23개 (조직/인증 5개 포함) |
| **폴더 구조** | 워크플로우 기반 (B03~B09) |
| **인증 방식** | HttpOnly Secure 세션 쿠키 |
| **사용자 역할** | SYSTEM_ADMIN, ADMIN, USER (3가지) |
| **대시보드** | B01_Dashboard (역할별 동적 렌더링) |