- Add main application files (main.py, models.py, schemas.py, etc.) - Add routers for all features (waiting, attendance, members, etc.) - Add HTML templates for admin and user interfaces - Add migration scripts and utility files - Add Docker configuration - Add documentation files - Add .gitignore to exclude database and cache files 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
웨이팅 시스템 (Waiting Management System)
FastAPI 기반의 매장 대기 관리 시스템입니다. 교시별 대기자 관리, 일마감, 회원 관리 등의 기능을 제공합니다.
주요 기능
1. 일마감 기능
- 영업 개점/마감 관리
- 일자별 대기번호 자동 초기화 (1번부터 시작)
- 마감 시 자동 통계 계산 및 저장
- 일자별 데이터 조회
2. 클래스(교시) 관리
- 교시 등록 (시간, 수용 인원 설정)
- 교시별 대기 인원 관리
- 교시 활성화/비활성화
3. 대기현황판
- 실시간 대기 현황 표시
- 교시별 대기자 목록 표시
- 가로/세로 방향 설정 가능
- 자동 새로고침 (5초마다)
4. 대기 접수
- 데스크용 접수: 키패드 UI로 빠른 접수
- 모바일용 접수: 고객 셀프 접수 + 대기 조회
- 핸드폰번호 기반 접수 (010 고정)
- 회원 자동 매칭 (이름 표시)
- 자동 클래스 배치
5. 대기자 현황 관리
- 출석/취소 처리
- 대기 순서 변경 (위/아래)
- 교시 간 이동 (좌/우)
- 호출 기능
- 교시별 일괄 출석
6. 회원 관리
- 회원 등록/수정/삭제
- 이름/핸드폰번호 검색
- 엑셀 일괄 등록
- 엑셀 검수 기능 (오류 필터링)
7. 매장 설정
- 매장명 설정
- 대기현황판 표시 설정
- 표시 클래스 개수
- 리스트 방향 (가로/세로)
- 클래스당 줄 수
- 관리자 비밀번호
시스템 요구사항
- Python 3.8 이상
- SQLite3 (기본 내장)
설치 방법
-
저장소 클론 또는 다운로드
-
가상환경 생성 및 활성화
# 가상환경 생성
python3 -m venv venv
# 가상환경 활성화 (Mac/Linux)
source venv/bin/activate
# 가상환경 활성화 (Windows)
venv\Scripts\activate
- 의존성 패키지 설치
pip install -r requirements.txt
- 서버 실행
python main.py
- 웹브라우저에서 접속
http://localhost:8000
프로젝트 구조
waiting/
├── main.py # FastAPI 애플리케이션 메인
├── database.py # 데이터베이스 연결 설정
├── models.py # SQLAlchemy 모델
├── schemas.py # Pydantic 스키마
├── requirements.txt # 의존성 패키지
├── routers/ # API 라우터
│ ├── daily_closing.py # 일마감 API
│ ├── store_settings.py # 매장 설정 API
│ ├── class_management.py # 클래스 관리 API
│ ├── waiting.py # 대기 접수 API
│ ├── waiting_board.py # 대기자 관리 API
│ └── members.py # 회원 관리 API
├── templates/ # HTML 템플릿
│ ├── index.html # 메인 페이지
│ ├── waiting_board.html # 대기현황판
│ ├── reception.html # 데스크 접수
│ ├── mobile.html # 모바일 접수
│ ├── manage.html # 대기자 관리
│ ├── members.html # 회원 관리
│ └── settings.html # 매장 설정
└── static/ # 정적 파일
└── css/
└── common.css # 공통 스타일
사용 흐름
-
초기 설정
- 매장 설정에서 매장명, 표시 설정 구성
- 클래스 추가 (예: 1교시 10:00-11:00, 2교시 11:00-12:00)
-
영업 시작
- 메인 페이지에서 "개점하기" 클릭
- 대기번호 1번부터 시작
-
대기 접수
- 데스크: 접수 화면에서 핸드폰번호 입력
- 모바일: 고객이 직접 핸드폰번호 입력
-
대기 관리
- 대기자 관리 화면에서 출석/취소 처리
- 순서 변경, 교시 이동 가능
- 교시별 일괄 출석
-
대기현황판
- TV 또는 모니터에 표시
- 실시간 대기 현황 확인
-
일마감
- 메인 페이지에서 "일마감" 클릭
- 통계 자동 계산 및 저장
- 다음 날 다시 개점
API 엔드포인트
일마감
POST /api/daily/open- 개점POST /api/daily/close- 마감GET /api/daily/current- 현재 영업일 조회GET /api/daily/check-status- 영업 상태 확인GET /api/daily/statistics/{date}- 일별 통계
매장 설정
GET /api/store/- 설정 조회PUT /api/store/- 설정 수정POST /api/store/verify-password- 비밀번호 확인
클래스 관리
GET /api/classes/- 클래스 목록POST /api/classes/- 클래스 등록PUT /api/classes/{id}- 클래스 수정DELETE /api/classes/{id}- 클래스 비활성화POST /api/classes/{id}/activate- 클래스 활성화
대기 접수
POST /api/waiting/register- 대기 접수GET /api/waiting/check/{phone}- 대기 조회GET /api/waiting/list- 대기자 목록GET /api/waiting/list/by-class- 클래스별 대기자 목록
대기자 관리
GET /api/board/display- 대기현황판 데이터PUT /api/board/{id}/status- 상태 변경 (출석/취소)POST /api/board/{id}/call- 호출PUT /api/board/{id}/order- 순서 변경PUT /api/board/{id}/move-class- 클래스 이동POST /api/board/batch-attendance- 일괄 출석
회원 관리
GET /api/members/- 회원 목록POST /api/members/- 회원 등록PUT /api/members/{id}- 회원 수정DELETE /api/members/{id}- 회원 삭제POST /api/members/upload-excel- 엑셀 업로드 검수POST /api/members/bulk- 일괄 등록
데이터베이스 스키마
StoreSettings (매장 설정)
- 매장명, 표시 설정, 관리자 비밀번호
DailyClosing (일마감)
- 영업일, 개점/마감 시간, 통계
ClassInfo (클래스)
- 교시 번호/명, 시간, 수용 인원
Member (회원)
- 이름, 핸드폰번호
WaitingList (대기자)
- 대기번호, 핸드폰, 이름, 교시, 순서, 상태
추가 개선 가능 사항
-
알림 기능
- SMS/카카오톡 알림
- 대기 순서 임박 알림
-
통계 대시보드
- 일/월별 방문자 통계
- 교시별 이용률 분석
-
노쇼 관리
- 호출 후 미응답 처리
- 패널티 기록
-
QR 코드
- 대기 접수 시 QR 생성
- QR로 빠른 조회
-
다국어 지원
- 한국어/영어 전환
-
데이터 백업
- 자동 백업 스케줄링
- 복구 기능
라이센스
MIT License
기술 스택
- Backend: FastAPI, SQLAlchemy, Pydantic
- Database: SQLite3
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Excel: openpyxl
지원 및 문의
문제가 발생하거나 개선 사항이 있다면 이슈를 등록해주세요.
Description
Languages
HTML
65%
Python
33.5%
JavaScript
0.7%
CSS
0.7%