안녕하세요. 허밍버드의 발표를 맡은 송경진 입니다. 발표를 시작하겠습니다.
저희의 주제는 중소상공인을 위한 주문 및 고객 관리 플랫폼인 오더 캔버스 입니다. 참여학생은 허민, 송경진, 김기현, 장아령 입니다.
지적사항에 대한 피드백부터 하겠습니다.
기능이 너무 많아 개발 볼륨이 크고 서비스의 정체성이 명확하지 않았기 때문에 본래의 목적인 중소 상공인을 돕는 것에 집중하기로 하였습니다.
백오피스, 미리주문, 유저 피드백 기능들을 빼고 실질적으로 도움을 줄 수 있는 메뉴판 제작과 주문, 결제 기능을 강화하기로 하였습니다.
(최근 인건비의 상승으로 1인 매장이나 키오스크를 도입하는 경우가 많아졌기 때문에 사장님이 조리에만 집중할 수 있도록 주문, 결제, 메뉴판 제작 기능 등을 제공하기로 했습니다.)
두번째로 미리 주문의 장점이 무엇인가 라는 질문을 받았는데 미리 주문을 하면 홀에 자리를 차지하며 기다릴 필요 없이 시간에 맞춰 픽업할 수 있다는 장점이 있었습니다. 하지만 여러 피드백을 듣고 주문, 결제 기능을 강화하기로 하였기 때문에 미리주문 기능을 빼기로 하였습니다.
세번째로 배달은 하지 않는 이유에 대한 질문을 받았습니다. 이미 배달앱이 너무 많기 때문에 경쟁력이 없다고 생각했고 저희의 목표는 매장 내에서 도움을 주는 것이었기 때문에 배달 보다는 매장 내에서 어떠한 도움을 줄 수 있는지를 생각하고 싶었습니다.
마지막으로 장애인에게 제공하는 기능이 구체적으로 무엇인가라는 질문을 받았습니다. 시각장애인들에게는 메뉴판의 음성을 제공하려 했으나 재방문 시 메뉴판의 모든 음성 안내를 듣는 것은 비효율적이라는 피드백을 듣고 한번 주문했던 음식을 바로 주문할 수 있도록 찜하기 기능을 제공하기로 하였습니다. 그리고 청각장애인들에게는 스크린 리더와 같은 보조 프로그램들이 잘 작동할 수 있는 UI를 제공하기로 하였습니다.
시스템 수행 시나리오 입니다. 간단한 회원 가입을 하고 메뉴판을 관리할 수 있습니다. 그 후 손님이 주문을 하면 주문 승인이 되고 사장님들이 테이블 별 주문을 확인 합니다.
시스템 구성도는 이러합니다.
다음은 시스템 모듈 상세 설계인데 핵심 모듈들은 총 5가지 입니다.
첫번째로 메뉴 입니다. 메뉴를 등록 및 수정, 삭제 할 수 있는 함수들을 제공하며 카테고리와 일대다 관계이고 유저와 다대일 관계로 연결되어 있습니다. 데이터 구조는 이러합니다. 메뉴의 함수들입니다. 메뉴를 생성, 수정, 업데이트, 조회할 수 있는 함수들로 구성되어 있고 유저의 인증 정보와 권한을 확인합니다.
두번째로 카테고리 입니다. 카테고리를 등록 ,수정, 삭제할 수 있는 함수들을 제공하며 음식과 일대다 관계이고 메뉴와 다대일 관계로 연결되어 있습니다. 데이터 구조는 이러합니다. 카테고리의 함수들입니다. 카테고리를 생성, 수정, 업데이트, 조회할 수 있는 함수들로 구성되어있고 유저의 인증 정보와 권한을 확인합니다.
세번째로 Food 입니다. 음식을 등록 및 수정 삭제할 수 있는 함수들을 제공합니다. 카테고리와는 다대일 관계이며 음식의 이미지를 서버에 저장합니다. 데이터 구조는 이러합니다. 음식을 생성, 수정, 삭제, 조회할 수 있고 서버에 있는 기존의 사진을 삭제하고 재업로드 하는 updateFoodImage 함수를 제공합니다
네번째로 order 입니다. 주문과 주문 조회를 할 수 있는 함수를 제공하며. 데이터 구조는 이러합니다. 주문 정보를 받아 오더를 하는 doOrder 함수가 있고 손님 id를 받아 주문 정보들을 반환하는 getBillByCustomerId 함수가 있으며 매장 id를 받아 주문 정보들을 반환하는 getBillByShopId 함수가 있습니다.
마지막으로 push 입니다. 파이어베이스와 연결하여 실시간 주문 메시지를 전송하고 푸시 알림을 받을 수 있도록 합니다. 데이터 구조는 이러합니다. 파이어베이스 푸시 알림을 사용하기 위해서 필수적인 세팅을 하는 파이어베이스 세팅 함수가 있습니다. 그리고 손님의 아이디와 pushMessageByToken을 받아 파이어베이스 FCM으로 손님에게 알림을 보내는 sendByTokenToUser 함수가 있고 매장 id와 pushMessageByToken을 받아 파이어베이스 FCM으로 점주에게 알림을 보내는 sendByTokenToManager 함수가 있습니다.
db의 erd 입니다.