본문 바로가기
ㆍ사이드 프로젝트

[SIDE] LUNCH - 1

by 매이슨 2022. 3. 4.

ㆍLUNCH

 - 프로젝트 시작이유
      1. 코로나로 점심배달 ->
         모든인원 한꺼번에 주문 ->
            잦은 human error 발생(주문누락, 메뉴오입력등)
      2. 주문자의 업무부하(10:30 ~ 11:00 개인업무의 충실할수가 없음)
      2-1. 위의 업무부하는 사람수와 메뉴의 수가 다를때 자주 일어난다는 사실을 인지
      (배달의민족 주문 기준)

 - 해결책
1. 메신저에서 웹으로 입력 페이지 변경하여 DB로 관리 (메뉴및 추가,선택사항 이력으로 남음)
2. 메인메뉴마다 입력토록 변경
  예시)   떡볶이 + 야채튀김 2
 변경후) 떡복이 1
           야채튀김 2

 - 위 상황이 소수인원일때는 오류 잦지 않지만 15명이 시키면
   15인 40메뉴가 나올수도있음. (배달의 민족 장바구니 기준)

- 고려사항
사용자 주문(메인메뉴 notnull, 선택사항 null, 추가메뉴 null)
선택사항이 있는경우는 라디오 버튼이라 필수입력사항이지만 선택사항이 존재하지않는 메뉴도 있음

최종적으로 주문자의 부하를 줄이는 핵심은 DBquery에 있었다.

ORDER BY mainmenu , menu_option, addmenu
order by절로 정렬하여서 해결하여, 주문자의 주문시간 단축

count(mainmenu) where date = #{today} query로
주문자수와 메뉴수가 일치하지않아도 장바구니에 담긴 숫자만으로 체크가능

후기,
처음시작은 간단한 목표였지만 하다보니 욕심이 생겼고,
더 유저친화적으로 만들고 싶었지만 짬날때마다 만들다 보니... 완성도가 떨어졌다.

다시보니 ... 카운트 메인메뉴가 없다?


프로젝트 구성
"/" - 이름으로 로그인
"/lunch" - 식당선택
10:20 에 cron사용 enablescheduling 하여
     1 선택된 식당 중 랜덤 선택
     2 선택된 식당이 없는경우 -> 기존에 시켰던 식당중 랜덤으로 골라짐
"/menu" - 선택된식당의 메뉴를 선택
'식사X' 인원 '메뉴를 고른 인원' 더하여 총원과 비교 후 주문자 음식 주문