- Docker Compose with Postgres, Redis, MinIO, backend, frontend (port 3200/3201) - Prisma schema: User, Project, ProjectFile, Product, Order, FlashToken, Review, AuditLog - Backend: JWT auth, project CRUD + file upload (MinIO + sharp WebP), admin approval flow - Frontend: React + Vite SPA with auth, project/shop browse, seller dashboard, admin panel - Admin: pending approval queue, user management, audit log viewer, stats dashboard - Audit logging middleware for legal compliance - Admin init script: createAdmin.js - Full design document in PLATFORM_DESIGN.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
95 lines
2.4 KiB
Markdown
95 lines
2.4 KiB
Markdown
# ESP32 DIY 플랫폼
|
|
|
|
ESP32 프로젝트 공유·판매 마켓플레이스. webflash(:3100)와 연동되는 별도 서비스입니다.
|
|
|
|
## 포트
|
|
|
|
| 서비스 | 포트 |
|
|
|--------|------|
|
|
| 웹 프론트엔드 | **3200** |
|
|
| 백엔드 API | **3201** |
|
|
| MinIO 관리 콘솔 | 9001 |
|
|
|
|
## 빠른 시작
|
|
|
|
### 1. 환경 변수 설정
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
# .env 파일을 편집하여 비밀번호, JWT_SECRET 등 설정
|
|
```
|
|
|
|
### 2. 실행
|
|
|
|
```bash
|
|
docker compose up -d --build
|
|
```
|
|
|
|
### 3. DB 마이그레이션 확인
|
|
|
|
```bash
|
|
docker compose logs platform-backend
|
|
# "Platform Backend → http://localhost:3201" 메시지 확인
|
|
```
|
|
|
|
### 4. 관리자 계정 생성
|
|
|
|
```bash
|
|
docker compose exec platform-backend node src/scripts/createAdmin.js admin@example.com yourpassword 관리자
|
|
```
|
|
|
|
### 5. 브라우저 접속
|
|
|
|
```
|
|
http://localhost:3200
|
|
```
|
|
|
|
## 구조
|
|
|
|
```
|
|
platform/
|
|
├── backend/
|
|
│ ├── prisma/schema.prisma DB 스키마
|
|
│ └── src/
|
|
│ ├── index.js Express 서버
|
|
│ ├── config/ DB / Redis / MinIO
|
|
│ ├── middleware/ Auth / Audit
|
|
│ ├── routes/ auth / projects / products / admin
|
|
│ ├── services/ storage (MinIO + sharp)
|
|
│ └── scripts/ createAdmin.js
|
|
├── frontend/
|
|
│ └── src/
|
|
│ ├── pages/ React 페이지
|
|
│ │ ├── Auth/ 로그인, 회원가입
|
|
│ │ ├── Dashboard/ 판매자 대시보드
|
|
│ │ └── Admin/ 관리자 패널
|
|
│ ├── hooks/useAuth.js 인증 컨텍스트
|
|
│ └── api/client.js Axios 인스턴스
|
|
├── docker-compose.yml
|
|
└── .env.example
|
|
```
|
|
|
|
## 1단계 구현 완료 기능
|
|
|
|
- [x] 회원가입 / 로그인 / 로그아웃 (JWT)
|
|
- [x] 프로젝트 생성 / 수정 / 삭제
|
|
- [x] 파일 업로드 (이미지 WebP 자동 변환, MinIO 저장)
|
|
- [x] 관리자 검토 요청 흐름
|
|
- [x] 관리자 승인/반려 (가격·수수료 설정)
|
|
- [x] 상품 자동 생성 (승인 시)
|
|
- [x] 사용자 관리 (역할 변경, 계정 비활성화)
|
|
- [x] 감사 로그 (모든 주요 행동 기록)
|
|
|
|
## 2단계 예정
|
|
|
|
- [ ] 토스페이먼츠 결제 연동
|
|
- [ ] 환불 처리
|
|
- [ ] FlashToken 발급 및 webflash 연동
|
|
- [ ] 플래시 완료 로그
|
|
|
|
## 3단계 예정
|
|
|
|
- [ ] 리뷰 작성 (이미지/영상 업로드)
|
|
- [ ] ffmpeg 영상 압축
|
|
- [ ] 별점 집계
|