학식당 대기 문제를 해결하기 위한 웹 기반 대기열 관리 서비스입니다.
사용자는 웹에서 학식당 코너별 대기 인원, 예상 대기 시간을 확인하고, 가상 번호표를 발급받아 온라인으로 대기할 수 있습니다. 운영자는 운영자 화면에서 현재 대기열을 확인하고, 사용자를 호출하거나 입장 완료, 노쇼 처리를 수행할 수 있습니다.
본 프로젝트는 단순 번호표 발급 기능에 그치지 않고, 대기 등록, 호출, 도착 확인, 입장 완료, 취소, 노쇼 등의 상태 변화 기록을 누적 저장합니다. 이 데이터를 기반으로 통계를 제공하고, 선정된 예측 모델이 예상 대기 시간을 제공합니다.
사용자 기능
- 학식당 목록 조회
- 예상 대기 시간 확인
- 가상 번호표 발급
- 나의 대기 상태 조회
- 도착 확인
- 대기 취소
운영자 기능
- 운영자 대기열 조회
- 다음 순번 호출
- 특정 사용자 호출
- 입장 완료 처리
- 노쇼 처리
- 운영자 대시보드 조회
데이터 및 예측 기능
- 대기열 상태 변경 기록 저장
- 실제 데이터 수집
- 실제 데이터 부족으로 인한 증강 데이터 생성
프로젝트 확장 측면인 ai 모델은 공통된 모델 로직에 4가지 학습 데이터를 각각 학습한 4가지 모델이 생성됩니다. 학습 데이터는 실제 데이터, 실제 + 규칙 증강 데이터, 실제 + CTGAN 증강 데이터, 실제 + 규칙 + CTGAN 증강 데이터로 구성됩니다. 4가지 학습 데이터를 개별적으로 학습한 4가지 모델 중, 가장 낮은 오차가 나오는 모델이 자동으로 선택됩니다. 증강 데이터는 학습에만 사용되고, 평가는 실제 데이터 중 학습을 진행하지 않은 데이터만 사용합니다.
Docker Compose를 사용하여 실행합니다.
docker compose up --build
실행 후 아래 주소에서 확인할 수 있습니다.
Frontend : http://localhost:5173
Backend : http://localhost:8000
Swagger : http://localhost:8000/docs
Health : http://localhost:8000/health
Stores : http://localhost:8000/api/stores
종료 명령은 다음과 같습니다.
docker compose down