�౹ POS QR ���� �ý���
Go to file
시골약사 914bc08c6c feat: AI 구매 패턴 분석 기능 추가 (OpenAI GPT 통합)
- 사용자 구매 이력 AI 분석 및 마케팅 전략 제안
- 업셀링을 위한 추천 제품 기능 추가

주요 변경사항:

1. 백엔드 API (app.py)
   - OpenAI API 통합 (GPT-4o-mini 사용)
   - 환경 변수 로드 (.env 파일)
   - AI 분석 엔드포인트: POST /admin/ai-analyze-user/<user_id>
   - 헬퍼 함수 추가:
     * prepare_analysis_prompt(): 프롬프트 생성
     * parse_openai_response(): JSON 응답 파싱
     * call_openai_with_retry(): 재시도 로직
     * categorize_product(): 제품 카테고리 추정
   - 에러 처리 및 fallback 로직

2. 프론트엔드 UI (admin.html)
   - AI 분석 버튼 추가 (사용자 상세 모달)
   - AI 분석 모달 추가 (결과 표시)
   - Lottie 로딩 애니메이션 통합 (무료 라이선스)
   - JavaScript 함수:
     * showAIAnalysisModal(): 모달 열기 및 API 호출
     * renderAIAnalysis(): 분석 결과 렌더링
     * showAIAnalysisError(): 에러 표시
     * 5분 캐싱 기능
   - 섹션별 시각화:
     * 구매 패턴 분석 (📊)
     * 주요 구매 품목 (💊)
     * 추천 제품 ()
     * 마케팅 전략 (🎯)

3. 환경 설정
   - requirements.txt: openai, python-dotenv 추가
   - .env: OpenAI API 키 및 설정 저장
   - Lottie CDN 통합 (버전 5.12.2)

기술 스택:
- OpenAI GPT-4o-mini (비용 효율적)
- Lottie 애니메이션 (로딩 UX 개선)
- 재시도 로직 (지수 백오프)
- 응답 캐싱 (5분)

보안:
- API 키 환경 변수 관리
- .env 파일 .gitignore 처리

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-23 22:23:45 +09:00
backend feat: AI 구매 패턴 분석 기능 추가 (OpenAI GPT 통합) 2026-01-23 22:23:45 +09:00
docs docs: Gitea 사용 방법 가이드 추가 2026-01-23 16:37:11 +09:00
.gitignore chore: .gitignore에 .claude/ 디렉토리 추가 2026-01-23 16:37:05 +09:00
CLAUDECODE.md docs: 프로젝트 전체 문서 작성 (CLAUDECODE.md) 2026-01-23 16:36:51 +09:00
README.md feat: 프로젝트 초기 구조 설정 2026-01-23 13:59:00 +09:00

약국 POS QR 적립 시스템

후향적 고객 매핑 및 마일리지 적립 시스템 (QR 기반)

프로젝트 개요

약국 POS 판매 시 영수증에 QR 코드를 인쇄하고, 고객이 나중에 QR을 스캔하여 카카오 로그인 후 마일리지를 적립받는 시스템입니다.

핵심 문제 해결

  • 문제: 약국 POS 판매의 80%는 고객 정보 없이 판매됨
  • 솔루션: 영수증 QR → 카카오 로그인 → 후향적 고객 매핑 → 마일리지 적립

프로젝트 구조

pharmacy-pos-qr-system/
├── backend/
│   ├── gui/              # PyQt5 GUI 애플리케이션
│   │   └── pos_sales_gui.py
│   ├── api/              # Flask API 서버
│   ├── db/               # 데이터베이스 설정
│   │   └── dbsetup.py
│   └── utils/            # 유틸리티 함수
│
├── web/                  # 웹 애플리케이션 (Next.js/React)
│
├── docs/                 # 문서
│   └── 후향적적립QR_POS만들기.md
│
└── docker/               # Docker 설정

개발 단계

Phase 1: POS 판매 조회 GUI

  • PyQt5 기반 GUI 구현
  • MSSQL SALE_MAIN 테이블 조회
  • 날짜별 판매 내역 표시
  • 상세 품목 조회 (더블클릭)

Phase 2: QR 토큰 생성 (진행 예정)

  • SQLite mileage.db 스키마 설계
  • claim_token 생성 로직
  • QR 코드 생성 및 라벨 인쇄
  • Flask API 백엔드 구축

Phase 3: 카카오 로그인 연동 (계획)

  • 카카오 로그인 API 연동
  • 웹앱 개발 (QR 스캔 랜딩 페이지)
  • 마이페이지 구현

Phase 4: 마일리지 시스템 (계획)

  • 마일리지 적립/사용 로직
  • POS 고객 연결 기능
  • 관리자 대시보드

기술 스택

Backend

  • Python 3.12+
  • PyQt5 - GUI 프로그램
  • Flask - REST API 서버
  • SQLAlchemy - ORM
  • pyodbc - MSSQL 연결

Database

  • MSSQL - 기존 POS 데이터 (PM_PRES)
  • SQLite - 마일리지 데이터 (mileage.db)

Web

  • Next.js or React - 웹앱 프레임워크
  • Tailwind CSS - 스타일링

설치 및 실행

1. Backend GUI (POS 판매 조회)

cd backend/gui
python pos_sales_gui.py

2. Flask API 서버 (Phase 2)

cd backend/api
pip install -r requirements.txt
python flask_app.py

3. 웹 애플리케이션 (Phase 3)

cd web
npm install
npm run dev

데이터베이스 구조

MSSQL (기존 POS)

  • PM_PRES.SALE_MAIN: 판매 헤더
  • PM_PRES.SALE_SUB: 판매 상세
  • PM_BASE.CD_PERSON: 고객 정보

SQLite (신규 마일리지)

  • users: 카카오 로그인 계정
  • customer_identities: 외부 로그인 매핑
  • claim_tokens: 영수증 QR 토큰
  • mileage_ledger: 마일리지 원장
  • pos_customer_links: POS 고객 연결

라이선스

MIT License

작성자

thug0bin (양구청춘약국)