Skip to content
Price tracker monitors of products and alerts you when prices drop. Supported tiki.vn, shopee, lotte.vn, ... Built with firebase https://pricetrack.web.app
Branch: master
Clone or download
Latest commit 6c077a5 May 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Jan 28, 2019
.screenshot
functions Update config for adayroi, vinabook. Add cashback api May 11, 2019
hosting Fix messaging in Safari, Fix conflict core-js between gatsby and new @… May 11, 2019
.firebaserc Add functions Dec 22, 2018
.gitignore Update .gitignore Jan 17, 2019
.nvmrc Update README, update functions May 1, 2019
LICENSE Initial commit Dec 20, 2018
README.md Update README.md May 13, 2019
azure-pipelines.yml Update azure-pipelines.yml Jan 14, 2019
database.rules.json Update configs Mar 24, 2019
env.example.sh Update config for adayroi, vinabook. Add cashback api May 11, 2019
firebase.json Update config for adayroi, vinabook. Add cashback api May 11, 2019
storage.rules Update configs Mar 24, 2019

README.md

Price Track Project (inprogress)

Auto collect, visualize and alert for product items.

Live: https://pricetrack.web.app or https://tracker.duyet.net

Home page Home page Home page Home page Raw API

Installation

  1. Set up Node.js and the Firebase CLI You'll need a Node.js environment. This project is written with Nodejs 8.x. After that, install the Firebase CLI via npm:

    npm install -g firebase-tools
    

    To initialize project: Run firebase login to log in via the browser and authenticate the firebase tool.

    Setup packages: cd functions/ && npm install

  2. Go to https://console.firebase.google.com and create new project.

  3. Setup env variables, copy and modify env.example.sh to env.local.sh

    firebase functions:config:set pricetrack.sentry_dsn=https://abc@sentry.io/1362210
    firebase functions:config:set pricetrack.cronjob_key=696969
    firebase functions:config:set pricetrack.apiKey=xxxxxxooooooKMgWKRhUdY91
    firebase functions:config:set pricetrack.admin_token=xxxxxxxxxx
    firebase functions:config:set pricetrack.gmail_email=pricetrack.apps@gmail.com
    firebase functions:config:set pricetrack.gmail_password=xxxxxxxxxx
    firebase functions:config:set pricetrack.hosting_url=https://tracker.duyet.net
    firebase functions:config:set pricetrack.accesstrade_deeplink_base=https://fast.accesstrade.com.vn/deep_link/4557459014401077484
    firebase functions:config:set pricetrack.admin_email=lvduit08@gmail.com
    

    Run: bash ./env.local.sh

  4. Test in local: https://firebase.google.com/docs/functions/local-emulator

    • Export local configs: firebase functions:config:get > functions/.runtimeconfig.json
    • Start firebase: firebase serve
    • Start hosting local: cd hosting && npm run develop
    • Open UI: http://localhost:8000
  5. Deploy serverless functions and hosting to Firebase

    firebase deploy
    

    You can also start this project locally via: firebase serve

    All functions will be list at Firebase Dashboard:

    Firebase Dashboard

  6. Test your API

    Add new URL: https://<your-project>.cloudfunctions.net/addUrl?url=<your-url>

    Test API

    List: https://<your-project>.cloudfunctions.net/listUrls

    Test API

    Pull data: https://<your-project>.cloudfunctions.net/pullData?url=<your-url>

    Test API

    Query in raw data: https://<your-project>.cloudfunctions.net/query?url=<your-url>&fields=datetime,price&limit=100

    Test API

  7. Setup the cronjob for /pullData: https://cron-job.org

    Cronjob pulling

  8. Check out the UI: https://tracker.duyet.net

    Home page

Technology

Next Step

  • Support for more domain
  • Move worker pullData to Google Scripts to reduce cost.
  • Auto trigger BUY, Add to cart
You can’t perform that action at this time.