식당 주문 관리 시스템
파이썬과 PySide6를 활용하여 개발된 독립형 식당 주문 관리 시스템입니다.
기능 특징
1. 주문 모듈
- 메뉴 카테고리별 브라우징
- 메뉴 검색 기능
- 장바구니 관리
- 주문 결제
- 고객 정보 기록
- 다양한 결제 옵션
2. 주문 관리
- 주문 목록 확인
- 주문 상태 관리 (대기 중/완료/취소)
- 날짜별 주문 필터링
- 주문 상세 정보 확인
- 주문 완료/취소 처리
3. 메뉴 관리
- 메뉴 추가/수정/삭제
- 카테고리 관리
- 가격 설정
- 재고 관리
- 메뉴 상태 제어 (판매 중/중지)
4. 통계 보고서
- 매출 통계
- 주문 수 통계
- 인기 메뉴 순위
- 사용자 정의 날짜 범위 조회
- 평균 주문 금액 분석
설치 안내
환경 요구 사항
설치 단계
pip install -r requirements.txt
python main.py
사용 방법
처음 실행 시
시스템은 자동으로 데이터베이스 파일 `restaurant.db`를 생성하고 초기 샘플 데이터를 포함합니다:
- 6개의 메뉴 카테고리 (메인 요리, 고기 요리, 채식 요리, 스프, 음료, 간식)
- 12개의 샘플 메뉴
- 기본 관리자 계정 (아이디: admin, 비밀번호: admin123)
주문 절차
- "주문" 탭에서 메뉴 선택
- "장바구니에 추가" 버튼 클릭
- 고객 정보 입력 (선택사항)
- 결제 방법 선택
- "결제" 버튼을 눌러 주문 완료
메뉴 관리
- "메뉴 관리" 탭에서 모든 메뉴 관리 가능
- "메뉴 추가" 버튼으로 새로운 메뉴 생성
- "카테고리 관리" 버튼으로 카테고리 관리
- "편집" 및 "삭제" 버튼으로 기존 메뉴 관리
주문 관리
- "주문 관리" 탭에서 모든 주문 확인 가능
- 상태와 날짜로 주문 필터링
- "상세 정보" 버튼으로 주문 세부 정보 확인
- "완료" 또는 "취소" 버튼으로 주문 상태 업데이트
통계 보고서
- "통계 보고서" 탭에서 매출 데이터 확인 가능
- 날짜 범위 선택하여 조회
- 총 주문 수, 매출, 평균 주문 금액 등의 핵심 지표 확인
- 인기 메뉴 순위 보기
데이터베이스 구조
SQLite 데이터베이스를 사용하며 다음 테이블을 포함합니다:
- `categories` - 메뉴 카테고리 테이블
- `menu_items` - 메뉴 테이블
- `orders` - 주문 테이블
- `order_details` - 주문 상세 테이블
- `users` - 사용자 테이블
기술적 특징
- 현대적인 UI 디자인
- SQLite 로컬 데이터베이스
- 데이터 영속성 저장
- 반응형 레이아웃
- 모듈화된 코드 구조
- 고성능 실행
프로젝트 구조
restaurant-order-system/
├── main.py # 메인 프로그램 진입점
├── database/ # 데이터베이스 모듈
│ ├── db_handler.py # 데이터베이스 관리
│ ├── menu_dao.py # 메뉴 데이터 접근
│ ├── category_dao.py # 카테고리 데이터 접근
│ └── order_dao.py # 주문 데이터 접근
├── ui/ # 인터페이스 모듈
│ ├── main_window.py # 메인 창
│ ├── order_widget.py # 주문 인터페이스
│ ├── menu_management_widget.py # 메뉴 관리 인터페이스
│ ├── order_management_widget.py # 주문 관리 인터페이스
│ └── stats_widget.py # 통계 보고서 인터페이스
├── requirements.txt # 의존성 목록
└── README.md # 설명 문서
주의사항
- 데이터베이스 파일 `restaurant.db`는 첫 실행 시 자동 생성됩니다.
- 데이터베이스 파일을 정기적으로 백업하는 것이 좋습니다.
- 관련 주문이 없는 경우에만 메뉴 삭제를 권장합니다.
- 시스템은 단일 컴퓨터용이며 네트워크 지원은 없습니다.