모임 주문받기 – 간편한 단체 메뉴 주문 시스템
- 단체 모임에서 메뉴 주문 실수를 줄이기 위한 경량 웹 기반 서비스
- 누구나 모바일로 접속해 원하는 메뉴를 선택
- 총무는 실시간으로 정리된 주문 현황을 확인 가능
- GitHub Pages + Cloudflare Worker + Google Sheets API 기반 구성
문제는 반복되는 아날로그 방식의 주문에서 출발했다
-
주말동안 단체 모임에서 전통적인 방식으로 메뉴 주문 진행
- 선배가 메뉴 불러주고
- 후배들이 손들고
- 총무가 인원 수 세고 메모
-
그런데 실제 주문은 매번 오류 발생
- 본인이 고르지 않은 메뉴를 먹는 경우
- 누군가는 메뉴가 모자라는 상황
-
버스로 다음 장소 이동 중, "이럴 바에 내가 만들자"는 생각으로 제작 시작
모임에서 정확하고 효율적인 주문 시스템 제공
-
오류 없는 주문 처리
- 메뉴-주문자 정확 매칭
-
누구나 쉽게 참여
- 단체 채팅방에 링크 공유 → 각자 메뉴 선택
-
총무 업무 간소화
- 손으로 인원수 세지 않아도 됨
- 자동으로 정리된 주문내역 확인
-
현장 혼선 제거
- 인원수 맞춰 음식을 나눠주는 게 아니라
- 이름/메뉴 기반으로 개별 배분 가능
기술 구성
-
사용자 인터페이스
index.html: 주문자용 UI (GitHub Pages)admin.html: 관리자용 UI (메뉴 관리 및 주문현황)
-
백엔드 로직
Cloudflare Worker: API 게이트웨이 역할
-
데이터 저장
Google Sheets: 메뉴 및 주문 내역 저장소 | ID | 메뉴명 | 활성화여부 | | -- | ---- | ----- | | 1 | 김치찌개 | TRUE | | 2 | 제육볶음 | TRUE |
| ID | 이름 | 선택메뉴 | 시간 |
|---|---|---|---|
| 1 | 홍길동 | 김치찌개 | 2025-06-17 11:52 |
| 2 | 이름없음 | 제육볶음 | 2025-06-17 11:53 |
| 기능 | 설명 |
|---|---|
| 메뉴 조회 | 현재 활성화된 메뉴 목록을 시트에서 불러와 화면에 표시 |
| 메뉴 선택 | 사용자가 메뉴 하나를 선택 후 주문 가능 |
| 주문 저장 | 이름과 선택 메뉴를 전송 → Worker가 Google Sheets에 저장 |
| 주문 확인 | 사용자 입장에서 자신의 주문 확인 불가 (추가 예정 고려됨) |
| 유효성 검사 | 이름/메뉴 미입력 시 경고 (현재 익명 처리 없음) |
| 중복 제한 | 중복 제출은 막혀 있지 않음 (동일 창에서도 가능) |
| 기능 | 설명 |
|---|---|
| 메뉴 등록 | 메뉴 이름 목록을 입력하여 Google Sheets에 저장 |
| 메뉴 삭제 | 각 행마다 삭제 버튼으로 개별 삭제 가능 |
| 메뉴 초기화 | 전체 메뉴 시트를 초기화하는 기능 |
| 주문 현황 조회 | 주문 시트에서 전체 주문 목록을 조회하여 표로 표시 |
| 주문 초기화 | 주문 전체를 초기화 (개별 주문 삭제는 불가) |
- getMenus
- submitOrder
- saveMenus
- resetMenus
- getOrders
- resetOrders
| 액션 | 설명 |
|---|---|
getMenus |
Google Sheets에서 메뉴 시트를 읽어 사용자에게 반환 |
submitOrder |
사용자 입력을 받아 주문 시트에 한 줄 추가 |
saveMenus |
관리자 입력값을 Google Sheets에 저장 |
resetMenus |
메뉴 시트를 header만 남기고 초기화 |
getOrders |
주문 시트를 읽어 관리자 화면에 표시 |
resetOrders |
주문 시트를 초기화 |
(예정) deleteOrderByName |
이름 기준 개별 주문 삭제 (계획 중) |
✅ 실수 없는 주문 시스템
이름과 메뉴 매칭을 자동으로 저장 → 전달 실수 없음
✅ 모두가 직접 참여
채팅방 링크 공유로 각자 메뉴 선택 → 누락 없음
✅ 정리된 기록 자동 확보
Google Sheets 기반 기록 → 정산/통계 활용 가능
✅ 서비스 확장 가능성 확보
모임별 설정, 예산 연동, 추천메뉴 등으로의 발전 가능