�౹ POS QR ���� �ý���
- SL_INPUT_PRICE → SL_NM_cost_a로 변경 - SL_INPUT_PRICE는 합계 금액이었음 (잘못된 매핑) - SL_NM_cost_a가 실제 개당 단가 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| backend | ||
| docs | ||
| .gitignore | ||
| CLAUDECODE.md | ||
| README.md | ||
약국 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 (양구청춘약국)