- PyQt5 POS 판매 조회 GUI (Phase 1 완료) - Flask API 서버 스켈레톤 (Phase 2 준비) - SQLite 마일리지 DB 스키마 설계 - 프로젝트 문서 및 README 추가 - 기본 디렉터리 구조 생성 Phase 1: POS 판매 내역 조회 GUI 완료 Phase 2: QR 토큰 생성 및 마일리지 적립 (예정) Phase 3: 카카오 로그인 연동 (예정) Phase 4: 마일리지 시스템 완성 (예정) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
127 lines
2.9 KiB
Markdown
127 lines
2.9 KiB
Markdown
# 약국 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 (양구청춘약국)
|