# 약국 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 ✅ - [x] PyQt5 기반 GUI 구현 - [x] MSSQL SALE_MAIN 테이블 조회 - [x] 날짜별 판매 내역 표시 - [x] 상세 품목 조회 (더블클릭) ### 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 판매 조회) ```bash cd backend/gui python pos_sales_gui.py ``` ### 2. Flask API 서버 (Phase 2) ```bash cd backend/api pip install -r requirements.txt python flask_app.py ``` ### 3. 웹 애플리케이션 (Phase 3) ```bash 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 (양구청춘약국)