{"id":25169036,"url":"https://github.com/limm-jk/fun-staurant","last_synced_at":"2026-05-15T01:10:42.669Z","repository":{"id":40714134,"uuid":"278082196","full_name":"Limm-jk/Fun-Staurant","owner":"Limm-jk","description":"편의점 + 레스토랑 = 편스토랑!!                                          =\u003e편의점의 이벤트와 레시피를 알려주는 챗봇","archived":false,"fork":false,"pushed_at":"2022-12-11T13:12:00.000Z","size":829,"stargazers_count":0,"open_issues_count":16,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-31T00:53:34.885Z","etag":null,"topics":["azure-bot-service","bot-framework","bot-framework-emulator","chat-bot","node-js"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Limm-jk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-08T12:23:26.000Z","updated_at":"2020-12-14T12:00:24.000Z","dependencies_parsed_at":"2023-01-26T23:45:30.700Z","dependency_job_id":null,"html_url":"https://github.com/Limm-jk/Fun-Staurant","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Limm-jk/Fun-Staurant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Limm-jk%2FFun-Staurant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Limm-jk%2FFun-Staurant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Limm-jk%2FFun-Staurant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Limm-jk%2FFun-Staurant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Limm-jk","download_url":"https://codeload.github.com/Limm-jk/Fun-Staurant/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Limm-jk%2FFun-Staurant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281908615,"owners_count":26582147,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-30T02:00:06.501Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure-bot-service","bot-framework","bot-framework-emulator","chat-bot","node-js"],"created_at":"2025-02-09T07:35:55.049Z","updated_at":"2025-10-31T00:53:34.993Z","avatar_url":"https://github.com/Limm-jk.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 편스토랑\n매일 외롭게 저녁을 보내는 **당신**...!   \n가성비 좋은 **추가 상품**과 누구나 따라할 수 있지만, 아무나 도전하지 않는 **Unique한 레시피**로 편의점에서 레스토랑 못지 않은 우아한 식사를 보장합니다.\n\n\n\n## 목적\n* 편의점의 합리적인 쇼핑을 위하여 추가 증정 이벤트 등을 모아서 알려주고,  \n메뉴를 추천해줍니다.\n* Unique하고 Fun한 편의점 레시피를 추천해줍니다.\n\n## 기능 \n* 편의점 이벤트 정보 확인(크롤러 이용, 매일 업데이트)\n* 최근 많은 좋아요를 받은 메뉴 추천(추천 후, 좋았다 별로였다 확인 가능하도록 구현)\n* 특정 메뉴를 고르면 그 메뉴를 기반으로 한 편의점 레시피 추천. or 어떤 스타일의 레시피 추천\n* 서버가 사라졌습니다 쨔잔~ (무료서버 너무 짧아요 ㅠㅠ)\n\n### 구현 기능\n* 편의점 이벤트 정보 확인(크롤러 사용해서 긁어온 정보 셀프 업로드, 크롤러도 호스팅하면 자동화 가능)  \n-\u003e CU의 플러스 행사 / 아침애 행사\n* 편의점 레시피 추천(유명한 레시피 DB화하여 원하는 레시피 업로드)  \n-\u003e 식사 / 음료 / 안주로 나누어 저장. 손쉽게 접근할 수 있도록 함.\n![pages](./test_page.png)\n\n### ISSUE\n- [x] 크롤러 이용하여 이벤트 상품 추출하기\n- [x] json으로 조합법 만들기\n- [x] 메뉴 추천 기능\n- [ ] 추천 기능을 위해 이어지는 QnA스크립트 만들기\n- [ ] (가능하면) GPS기능 이용하여 주변의 편의점 리스트화\n- [ ] 위의 기능이 안된다면 지역입력시 편의점 정보 크롤링\n\n### 사용 기술\n - Chat-Bot : Bot Framework / Node.js \n - QnA-Maker : C#\n - Crawler : Python \n - Hosting : Azure\n\n\n## Bot Framework Emulator를 이용한 테스트\n**로컬에서 테스트 시 JS모듈과 .env파일이 필요함.** \n\n[Bot Framework Emulator](https://github.com/microsoft/botframework-emulator)은 봇 개발자가 로컬호스트에서 봇을 테스트하고 디버그하거나 터널을 통해 원격으로 실행할 수 있는 데스크톱 애플리케이션입니다.\n\n- Bot Framework Emulator version 4.9.0버전이나 더 높은 버전은  [여기](https://github.com/Microsoft/BotFramework-Emulator/releases)에서 설치할 수 있습니다.\n\n### 주요 File\n- **index.js**  \n사실 상 메인. 클라우드 서비스에서 이 파일이 가장 먼저 실행되며, 로컬 테스트 시에도 이 파일을 실행하여 확인 가능.\n- **bots/QnAbot.js**  \n대부분의 기능을 가진 파일. index.js에서 QnAMaker의 정보를 받아 만들어지며, 질문이 들어오면 QnAMaker의 EndPoint에서 답변을 확인하여 가져온다.  \n필요한 DB를 여기에 모아 사용하기에, DB가 필요한 응답은 여기서 캐치해서 새로운 응답을 만들어준다.\n- **bots/resources/welcomeCard.json**  \n첫 시작 시에 출력되는 카드의 정보를 담고있음. 이름과 간단한 설명 / 추가정보를 가진다.  \n- **bots/resources/EventList.json + recipe.json**  \njson을 이용해 만든 DB. EventList는 하단에 작성한 크롤러를 통해서 도출해 낸 파일을 업로드해둔다. 크롤러도 웹 상에 올라가면 자동화가 가능해보인다.  \nrecipe.json은 여러 레시피들을 저장하여, 특정한 답변이 올 시에, 출력해준다.\n\n### Bot Framework Emulator를 이용하여 Local의 봇과 연결하는 방법\n- index.js파일을 실행시킵니다.\n- Bot Framework Emulator를 실행합니다.\n- File -\u003e Open Bot을 선택합니다.\n- 봇의 URL자리에 `http://localhost:3978/api/messages`를 입력합니다.\n\n## 추가자료\n### 시연영상 및 코드영상\n[시연 영상](https://www.youtube.com/watch?v=BvIVmT2FwL4\u0026feature=youtu.be)  \n[코드 설명 영상](https://www.youtube.com/watch?v=gLoibRmkxKw)  \n### 관련 Repository\n[이벤트 크롤러](https://github.com/What-is-Dinner/-Convenience-Event)  \n[웹 서비스](https://github.com/What-is-Dinner/What-is-Dinner-Pages)\n## 개발 전략\n- Bot Framework의 구조를 Reference를 통해 이해함.\n- 개발 간에 기능에 따른 확실한 분업 / 협업을 수행함.\n- Git Hub 내의 Issue / Actions등 써보지 못했던 기능들을 적극 채용해봄. (Actions의 Flow는 삭제....)\n- Node.js에 대한 첫 도전인 만큼, Node.js에 친숙해질 수 있도록 노력함.\n- 깔끔하게 정리된 ReadMe를 통하여 남이 보거나, 이후에 봐도 이해할 수 있도록 함.\n\n## Reference\n- [Azure Bot Service 설명서](https://docs.microsoft.com/ko-kr/azure/bot-service/?view=azure-bot-service-4.0)\n- [김영욱 멘토님의 Bot Framework Guide](https://github.com/KoreaEva/Bot)\n- [Bot Framework Documentation](https://docs.botframework.com)\n- [Bot Basics](https://docs.microsoft.com/azure/bot-service/bot-builder-basics?view=azure-bot-service-4.0)\n- [Dialogs](https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-concept-dialog?view=azure-bot-service-4.0)\n- [Gathering Input Using Prompts](https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-prompts?view=azure-bot-service-4.0\u0026tabs=javascript)\n- [Activity processing](https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-concept-activity-processing?view=azure-bot-service-4.0)\n- [Azure Bot Service Introduction](https://docs.microsoft.com/azure/bot-service/bot-service-overview-introduction?view=azure-bot-service-4.0)\n- [Azure Bot Service Documentation](https://docs.microsoft.com/azure/bot-service/?view=azure-bot-service-4.0)\n- [Azure CLI](https://docs.microsoft.com/cli/azure/?view=azure-cli-latest)\n- [Azure Portal](https://portal.azure.com)\n- [Language Understanding using LUIS](https://docs.microsoft.com/en-us/azure/cognitive-services/luis/)\n- [Channels and Bot Connector Service](https://docs.microsoft.com/en-us/azure/bot-service/bot-concepts?view=azure-bot-service-4.0)\n- [Restify](https://www.npmjs.com/package/restify)\n- [dotenv](https://www.npmjs.com/package/dotenv)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flimm-jk%2Ffun-staurant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flimm-jk%2Ffun-staurant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flimm-jk%2Ffun-staurant/lists"}