�౹ POS QR ���� �ý���
Go to file
시골약사 c2dc42c565 feat: SQLite 연결 기능 추가
- get_sqlite_connection() 메서드 추가
- mileage.db 자동 생성 및 스키마 초기화
- Row Factory 설정으로 dict 형태 결과 반환
- check_same_thread=False로 멀티스레드 지원
- close_all()에 SQLite 연결 종료 로직 추가
2026-01-23 16:35:47 +09:00
backend feat: SQLite 연결 기능 추가 2026-01-23 16:35:47 +09:00
docs feat: 프로젝트 초기 구조 설정 2026-01-23 13:59:00 +09:00
.gitignore feat: 프로젝트 초기 구조 설정 2026-01-23 13:59:00 +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 (양구청춘약국)