chpark fa91c805fc feat(momo): 모모유통 유통관리 ERP 1차 구축 (가입/품목/재고/발주/명세서/메일)
- DB: momo_* 테이블 12종 (users/items/makers/warehouses/stocks/stock_moves/orders/order_items/procurements/vendors/attachments/mail_logs) + 시드
- 인증: 랜딩(/) + 회원가입(/signup, bcrypt) + 로그인(MOMO/FITO 자동 분기) + /api/auth/mobile-login(JWT 토큰)
- 세션: 쿠키 + Authorization Bearer 동시 지원 (모바일 앱용)
- /m/* 레이아웃: 좌측 사이드바 + 헤더, 역할별 메뉴 분기
- USER 화면: 품목 검색(이미지/재고/단가) + 장바구니 + 발주 요청 + 본인 이력 + 대시보드
- ADMIN 화면: 품목/창고/재고/매입입고/발주승인/회원관리/월간 매출 통계 + 대시보드(14일 그래프, 재고 부족, 승인 대기)
- 발주 승인: 트랜잭션으로 재고 차감 + 거래명세표 HTML 메일 본문 + xlsx 첨부 발송 (nodemailer)
- 면세 자동 판정: 품목명 'M' 접두 시 is_tax_free=Y, 합계는 면세/과세 분리 집계
- 미들웨어: /, /signup, /api/auth/signup, /api/auth/mobile-login 공개
- 도구: scripts/migrate-momo.mjs (npm run migrate:momo), .env.momo.example
- 문서: docs/MOMO_DISTRIBUTION_SPEC.md, docs/proposal.html (고객용 HTML 제안서)
- 별도 RN 앱(d:/momo-mobile) 스캐폴드 작성 (Expo + EAS APK 빌드)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 20:56:18 +09:00

FITO — (주)피토 PLM (Next.js)

기존 Java/Spring MVC + JSP + MyBatis 기반 FITO PLM을 Next.js 15 + Node.js로 컨버전한 시스템.

  • 원본: /Users/jhj/FITO (Java 7 + Spring 3.2.4 + MyBatis 3.2.3 + JSP)
  • DB: 외부 PostgreSQL 211.115.91.141:11140/fito (기존 스키마 그대로 사용)
  • 이전 이력: woosung-nextjs에서 피벗. 스냅샷 태그 woosung-v1-snapshot.

개발 시작

npm install
npm run dev    # http://localhost:3000

환경변수

.env.development의 DB 접속 정보를 확인. 필수 키:

  • DATABASE_URL — 외부 PostgreSQL 접속
  • NEXTAUTH_SECRET — JWT 서명 키
  • MASTER_PWD — 마스터 비밀번호 (개발 편의용)
  • AES_KEY — 비밀번호 AES 암호화 키 (기존 Java 호환)

배포 표준

  • Docker Compose (dev/prod 분리) — 기존 FITO(Java) 배포환경 재사용
  • Traefik 리버스 프록시 + fito.wace.me 도메인 (entrypoints: web, websecure / certresolver: le)
  • 외부 네트워크 toktork_server_default
  • DB는 외부 서버 공유 (211.115.91.141:11140/fito) — 컨테이너 내부 DB 없음

start.sh 배포 스크립트 (권장)

# 첫 배포 (서버에서)
cp .env.production.example .env.production
vi .env.production   # DATABASE_URL, NEXTAUTH_SECRET, AES_KEY 등 입력

./start.sh prod      # git pull → build → 기동 → Traefik 라우팅 확인

# 이후 배포 (git commit 후)
./start.sh prod      # 자동 git pull + 재빌드

# 기타 운영
./start.sh logs prod      # 실시간 로그
./start.sh restart prod   # 재시작 (git pull 포함)
./start.sh stop prod      # 중지
./start.sh status prod    # 컨테이너 상태
./start.sh build prod     # no-cache 재빌드
./start.sh clean prod     # 전체 삭제 (확인 필요)

스크립트는 start.sh 자체가 업데이트되면 새 버전으로 자동 재실행하므로 안전합니다.

로컬 개발

./start.sh           # docker 기반 (localhost:3643, hot reload)
npm run dev          # docker 없이 Node 직접 (localhost:3000)

인프라 정보

  • 컨테이너명: plm-fito-next (prod) / plm-fito-next-dev (dev)
  • 도메인: https://fito.wace.me
  • 내부 포트: 3000 (Traefik이 외부 80/443 → 3000)
  • 파일 저장: 호스트 ./data_storage (레포 상대경로) ↔ 컨테이너 /data_storage
  • 이미지: Next.js output: "standalone" 기반 multi-stage build

상세 구성은 CLAUDE.md 참고.

S
Description
No description provided
Readme 148 MiB
Languages
TypeScript 94.6%
HTML 3.4%
JavaScript 1.8%
CSS 0.1%