파이썬과 PySide6를 이용한 단독 식당 주문 관리 시스템

식당 주문 관리 시스템

파이썬과 PySide6를 활용하여 개발된 독립형 식당 주문 관리 시스템입니다.

기능 특징

1. 주문 모듈

  • 메뉴 카테고리별 브라우징
  • 메뉴 검색 기능
  • 장바구니 관리
  • 주문 결제
  • 고객 정보 기록
  • 다양한 결제 옵션

2. 주문 관리

  • 주문 목록 확인
  • 주문 상태 관리 (대기 중/완료/취소)
  • 날짜별 주문 필터링
  • 주문 상세 정보 확인
  • 주문 완료/취소 처리

3. 메뉴 관리

  • 메뉴 추가/수정/삭제
  • 카테고리 관리
  • 가격 설정
  • 재고 관리
  • 메뉴 상태 제어 (판매 중/중지)

4. 통계 보고서

  • 매출 통계
  • 주문 수 통계
  • 인기 메뉴 순위
  • 사용자 정의 날짜 범위 조회
  • 평균 주문 금액 분석

설치 안내

환경 요구 사항

  • Python 3.8+
  • PySide6

설치 단계

pip install -r requirements.txt
python main.py

사용 방법

처음 실행 시

시스템은 자동으로 데이터베이스 파일 `restaurant.db`를 생성하고 초기 샘플 데이터를 포함합니다:
  • 6개의 메뉴 카테고리 (메인 요리, 고기 요리, 채식 요리, 스프, 음료, 간식)
  • 12개의 샘플 메뉴
  • 기본 관리자 계정 (아이디: admin, 비밀번호: admin123)

주문 절차

  1. "주문" 탭에서 메뉴 선택
  2. "장바구니에 추가" 버튼 클릭
  3. 고객 정보 입력 (선택사항)
  4. 결제 방법 선택
  5. "결제" 버튼을 눌러 주문 완료

메뉴 관리

  1. "메뉴 관리" 탭에서 모든 메뉴 관리 가능
  2. "메뉴 추가" 버튼으로 새로운 메뉴 생성
  3. "카테고리 관리" 버튼으로 카테고리 관리
  4. "편집" 및 "삭제" 버튼으로 기존 메뉴 관리

주문 관리

  1. "주문 관리" 탭에서 모든 주문 확인 가능
  2. 상태와 날짜로 주문 필터링
  3. "상세 정보" 버튼으로 주문 세부 정보 확인
  4. "완료" 또는 "취소" 버튼으로 주문 상태 업데이트

통계 보고서

  1. "통계 보고서" 탭에서 매출 데이터 확인 가능
  2. 날짜 범위 선택하여 조회
  3. 총 주문 수, 매출, 평균 주문 금액 등의 핵심 지표 확인
  4. 인기 메뉴 순위 보기

데이터베이스 구조

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`는 첫 실행 시 자동 생성됩니다.
  • 데이터베이스 파일을 정기적으로 백업하는 것이 좋습니다.
  • 관련 주문이 없는 경우에만 메뉴 삭제를 권장합니다.
  • 시스템은 단일 컴퓨터용이며 네트워크 지원은 없습니다.

태그: python PySide6 SQLite GUI 식당 주문 관리

6월 9일 16:26에 게시됨