- 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>
7.0 KiB
7.0 KiB
빠른 시작 가이드
1. 설치 및 실행
가상환경 설정
# 프로젝트 디렉토리로 이동
cd waiting
# 가상환경 생성
python3 -m venv venv
# 가상환경 활성화
source venv/bin/activate # Mac/Linux
# 또는
venv\Scripts\activate # Windows
# 패키지 설치
pip install -r requirements.txt
서버 실행
python main.py
서버가 실행되면 http://localhost:8000 으로 접속하세요.
2. 초기 설정
2-1. 매장 설정
- 메인 페이지에서 "매장 설정" 클릭
- 매장 정보 탭에서:
- 매장명 입력 (예: "행복 헬스장")
- 대기현황판 표시 클래스 수: 3 (기본값)
- 클래스당 줄 수: 1 (기본값)
- 대기자 리스트 방향: 세로 방향
- 관리자 비밀번호: 원하는 비밀번호 설정
- "설정 저장" 클릭
2-2. 클래스 등록
- 매장 설정 화면에서 클래스 관리 탭 클릭
- "클래스 추가" 버튼 클릭
- 교시 정보 입력:
- 교시 번호: 1
- 교시명: 1교시
- 시작 시간: 10:00
- 종료 시간: 11:00
- 최대 수용 인원: 10명
- "저장" 클릭
- 같은 방법으로 2교시, 3교시 등록:
- 2교시: 11:00 - 12:00
- 3교시: 13:00 - 14:00
3. 영업 시작
3-1. 개점하기
- 메인 페이지로 이동
- "개점하기" 버튼 클릭
- 영업 상태가 "영업 중"으로 변경됨
- 대기번호가 1번부터 시작됨
4. 대기 접수
4-1. 데스크에서 접수
- 메인 페이지에서 "대기접수 (데스크)" 클릭
- 키패드로 핸드폰번호 뒷자리 8자리 입력
- 예: 1234-5678
- 010은 자동으로 붙음 (01012345678)
- "대기 접수" 버튼 클릭
- 접수 완료 팝업 확인:
- 대기번호
- 배정된 교시
- 교시 내 순서
4-2. 모바일에서 셀프 접수
- 모바일 기기로 http://localhost:8000/mobile 접속
- "대기 접수" 탭에서 핸드폰번호 입력
- "대기 접수" 버튼 클릭
- 접수 결과 확인
4-3. 대기 조회 (모바일)
- 모바일 화면에서 "대기 조회" 탭 클릭
- 핸드폰번호 입력
- "조회하기" 버튼 클릭
- 현재 대기 정보 확인:
- 대기번호
- 교시
- 앞에 대기 중인 인원 수
5. 대기현황판 표시
5-1. 현황판 열기
- TV 또는 모니터를 준비
- 브라우저에서 http://localhost:8000/board 접속
- 전체화면(F11)으로 전환
- 실시간으로 대기 현황이 표시됨 (5초마다 자동 갱신)
5-2. 현황판 설명
- 교시별로 구분되어 표시
- 대기번호와 이름(또는 폰번호 뒷자리) 표시
- 각 교시별 대기자 수와 최대 인원 표시
6. 대기자 관리
6-1. 대기자 관리 화면
- 메인 페이지에서 "대기자 관리" 클릭
- 교시별 탭으로 구분됨
- 각 대기자별로 다음 작업 가능:
6-2. 출석 처리
- 대기자가 입장하면 "출석" 버튼 클릭
- 해당 대기자가 목록에서 사라짐
6-3. 취소 처리
- 대기자가 취소하면 "취소" 버튼 클릭
- 해당 대기자가 목록에서 제거됨
6-4. 호출
- 문제 발생 시 "호출" 버튼 클릭
- 호출 횟수가 기록됨
6-5. 순서 변경
- 위/아래 화살표 버튼으로 순서 조정
- 같은 교시 내에서만 이동
6-6. 교시 이동
- 좌/우 화살표 버튼으로 다른 교시로 이동
- 예: 1교시 → 2교시로 변경
6-7. 일괄 출석
- 화면 상단의 "○교시 일괄출석" 버튼 클릭
- 해당 교시 전체 대기자가 출석 처리됨
- 다음 교시가 일괄출석 대상이 됨
7. 회원 관리
7-1. 회원 개별 등록
- 메인 페이지에서 "회원 관리" 클릭
- "회원 등록" 버튼 클릭
- 이름과 핸드폰번호 입력
- "저장" 클릭
7-2. 회원 검색
- 검색창에 이름 또는 핸드폰번호 입력
- "검색" 버튼 클릭
- 일치하는 회원 목록 표시
7-3. 엑셀 일괄 등록
엑셀 파일 준비
- 1열: 이름
- 2열: 핸드폰번호 (01012345678 형식)
- 첫 번째 행은 헤더 (스킵됨)
예시:
이름 핸드폰번호
홍길동 01012345678
김철수 01098765432
이영희 01011112222
업로드 절차
- "엑셀 일괄등록" 버튼 클릭
- 엑셀 파일 선택
- "검수하기" 버튼 클릭
- 검수 결과 확인:
- 유효한 데이터 개수
- 오류 데이터 목록 (이름 없음, 번호 형식 오류, 중복 등)
- 오류가 없다면 "최종 등록" 클릭
- 등록 완료
8. 일마감
8-1. 마감 처리
- 영업 종료 시 메인 페이지로 이동
- "일마감" 버튼 클릭
- 확인 메시지 확인:
- 총 대기자 수
- 출석 수
- 취소 수
- 확인 클릭
8-2. 마감 후
- 대기번호가 초기화됨
- 통계가 데이터베이스에 저장됨
- 다음 영업일에 다시 "개점하기" 필요
9. 일반적인 운영 흐름
아침 출근
↓
개점하기 (메인 페이지)
↓
대기 접수 시작 (데스크 또는 모바일)
↓
대기현황판 표시 (TV/모니터)
↓
대기자 관리 (출석/취소)
↓
1교시 일괄출석
↓
2교시, 3교시 순차 진행
↓
영업 종료
↓
일마감 (메인 페이지)
↓
통계 확인
10. 자주 묻는 질문
Q1. 대기번호는 언제 초기화되나요?
A. 일마감 후 다음 날 개점할 때 1번부터 다시 시작됩니다.
Q2. 회원이 아닌 사람도 접수 가능한가요?
A. 네, 핸드폰번호만으로 접수 가능합니다. 회원인 경우 자동으로 이름이 표시됩니다.
Q3. 교시를 잘못 배정했어요. 어떻게 변경하나요?
A. 대기자 관리 화면에서 좌/우 화살표 버튼으로 다른 교시로 이동 가능합니다.
Q4. 현황판이 자동으로 갱신되나요?
A. 네, 5초마다 자동으로 갱신됩니다.
Q5. 모바일에서 대기 조회가 안 돼요.
A. 핸드폰번호를 정확히 입력했는지 확인하세요. 010 뒤의 8자리를 입력해야 합니다.
Q6. 엑셀 파일 형식이 안 맞아요.
A. 1열에 이름, 2열에 핸드폰번호 (01012345678 형식), 첫 행은 헤더입니다.
Q7. 통계는 어디서 확인하나요?
A. 현재는 일마감 시 팝업으로 표시됩니다. API를 통해 조회 가능합니다.
11. 문제 해결
서버가 시작되지 않아요
- 가상환경이 활성화되어 있는지 확인
- 모든 패키지가 설치되었는지 확인:
pip list - 포트 8000이 이미 사용 중인지 확인
데이터가 저장되지 않아요
- SQLite 데이터베이스 파일 확인:
waiting_system.db - 파일 권한 확인
현황판이 표시되지 않아요
- 브라우저 콘솔(F12)에서 에러 확인
- 개점이 되어 있는지 확인
- 대기자가 등록되어 있는지 확인
12. 추가 정보
- API 문서: http://localhost:8000/docs
- 관리자 화면들은 모두 PC, 태블릿, 모바일에서 반응형으로 동작합니다.
- 대기현황판은 TV나 대형 모니터에 최적화되어 있습니다.
문제가 있거나 궁금한 점이 있다면 README.md를 참고하세요.