Giter VIP home page Giter VIP logo

iramen_linebot's Introduction

🍜IRamen_LINEbot🍜

A ramen recommendation LINE bot which can help Taiwanese ramen lovers to choose ramen stores in Taiwan.

  • The interface is in Mandarin.目前只支援繁體中文
  • GPS定位系統
  • 湯頭推薦
  • 店家風格選單
  • 關鍵字搜尋功能
  • 外部評論超連結
  • 店家附近實時天氣
  • 大幅優化機器人速度
  • 涵蓋全台將近500家拉麵店與千則網友評論

🍜Our Goal

  • We are a group of ramen-lovers, our goal is to make a prototype of a mobile-first ramen recommendation chat bot in order to help other ramen lovers, if they have problem of choosing ramen shops in Taiwan.
  • Develop the glorious ramen shops in Taiwan.
  • Finish National Taiwan University ccClub 2020 fall final project.

🍜App demo and features

  • General features: General features

  • NEW! GPS feature!

  • Recommendation with Google Map/soup or shop style

  • Offer detail information to users such as nearby weather of the store/review hyperlinks
  • Add your favorite Ramen stores to Pocket List

  • The interface is in Mandarin.

🍜Setup

  1. Download LINE in your mobile and create an account for yourself.
  2. Add official ID @633cqaoy or scan the QRcode below to add IRAMEN to your friend list. I RAMEN QRCODE
  3. You can start to use our IRAMEN LINE BOT

🍜If you want to use our seperated packages for web-scraping

Source website:台灣拉麵愛好會(**ラーメン愛好会 / Taiwan Ramen Club)

  • Facebook private group online crawling and organizing the post contents.

Facebook Private Group Crawling

Run facebook_crawling.py

  • Step 1: install selenium and webdriver and the required packages
  • Step 2: set your username and password in .env
  • Step 3: change the chromedriver_path and the url of the website you want to crawl
  • Step 4: set the number of iteration for dynamic page scrolling in the main function
  • Step 5: name the output file in the main funtion

Data Organization

The task at this stage is to combine the Google map crawling and Facebook crawling files. First of all, both of the crawling files will undergo text preprocessing in order to provide the correct information we need. Then, We match the same ramen stores appearing in the both files, and label them with the same id. Therefore, the final 3 Csv files are produced:

  1. Main_Store.csv:
    • store_id: the id of the non-overlapped ramen brands in Taiwan.
    • main_store: the name of the non-overlapped ramen brands in Taiwan.
  2. Store.csv:
    • detail_store_id: the unique id of each store in the table for database to recognize.
    • store_id: according to the ramen brands in Main_Store.csv, the stores that match with the brands will have the same id.
    • store: the ramen store names we've crawled including main stores and detail stores.
    • still there: whether the stores still open.
    • address: the address of each store.
    • description: the introduction of the store.
    • opne time: the open time of the store.
    • latitude: the latitude of the store's location.
    • longtitute: the latitude of the store's location.
    • map_review: the feedback post link of this store in the private facebook group.
    • region: the region (North, East, South, West) where the ramen store is located.
    • province: the city which the ramen store is located.
    • soup: the representive soup flavor tags for this store.
    • transport: the nearby landmarks or the transportation information for the store.
  3. Post.csv
    • post_id: the unique id of each post in the table for database to recognize.
    • store_id: according to the ramen brands in Main_Store.csv, the store of the post that matches the brands will have the same id.
    • stores: the store name that the post introduces.
    • create_on: the published time of the post.
    • ramen_name: the ramen name that the post introduces.
    • fb_review: the feedback after visiting this store in this post.

Procedure:

  • Step 1: Run map_store_table.ipynb
    • Input the Map_Ramen_data_with_city.csv (the data you crawl)
    • Group the same brands of the stores, and select the non-overlapped ramen brands for Main_Store.csv
    • Label all of the stores and output Store.csv
  • Step 2: Run fb_post_table.ipynb
    • Input fb_crawling_output.csv (the data you crawl)
    • Preprocessing the post's contents and published time
    • Match the store name of the post according to the Main_Store.csv to create the ids and output Post.csv

Source website:【台灣拉麵愛好會專屬】Ramen Map

🍜Chart-flow for our bot

team work shop recommendation pocket list

🍜Used modules, technologies and concepts

  • Front-end: Python, line-bot-sdk-python, JSON
  • Data-scraping/data organized: Python, selenium, selenium IDE, pandas, python-dotenv
  • Back-end and database: Python, Postgresql, Flask, Flask-Sqlalchemy, psycopg2, psycopg2-binary, python-dotenv, AWS S3, Heroku-database, Postman data flow database design

🍜Authors

🍜Team work

  • PM method: Agile, sprintes team

🍜License

MIT

iramen_linebot's People

Contributors

chihsintseng avatar troublecat55 avatar yuchiaa avatar yumei86 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.