https://github.com/duyet/pricetrack
Price tracker monitors of products and alerts you when prices drop. Supported tiki.vn, shopee, lotte.vn, ... Built with firebase https://pricetrack.web.app
https://github.com/duyet/pricetrack
api crawler cronjob-scheduler firebase firebase-auth firebase-functions firebase-hosting firestore redash shopee shopee-api tiki tracking
Last synced: 5 months ago
JSON representation
Price tracker monitors of products and alerts you when prices drop. Supported tiki.vn, shopee, lotte.vn, ... Built with firebase https://pricetrack.web.app
- Host: GitHub
- URL: https://github.com/duyet/pricetrack
- Owner: duyet
- License: mit
- Created: 2018-12-20T15:45:41.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-05-22T22:29:16.000Z (12 months ago)
- Last Synced: 2024-05-22T23:32:42.925Z (12 months ago)
- Topics: api, crawler, cronjob-scheduler, firebase, firebase-auth, firebase-functions, firebase-hosting, firestore, redash, shopee, shopee-api, tiki, tracking
- Language: JavaScript
- Homepage: https://tracker.duyet.net
- Size: 21.9 MB
- Stars: 120
- Watchers: 2
- Forks: 46
- Open Issues: 83
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Price Track Project (inprogress)



Auto collect, visualize and alert for product items.
**Live**: [https://pricetrack.web.app](https://pricetrack.web.app) or [https://tracker.duyet.net](https://tracker.duyet.net)
**Support**




# 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://[email protected]/1362210
firebase functions:config:set pricetrack.cronjob_key=696969
firebase functions:config:set pricetrack.api_key=xxxxxxooooooKMgWKRhUdY91
firebase functions:config:set pricetrack.admin_token=xxxxxxxxxx
firebase functions:config:set [email protected]
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 [email protected]
firebase functions:config:set pricetrack.worker_custom_domain=
```Run: `bash ./env.local.sh`
3. 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:80004. **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:

5. **Test your API**
Add new URL: `https://.cloudfunctions.net/addUrl?url=`
List: `https://.cloudfunctions.net/listUrls`

Pull data: `https://.cloudfunctions.net/pullData?url=`

Query in raw data: `https://.cloudfunctions.net/query?url=&fields=datetime,price&limit=100`

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

# Technology
- UI Website for result (Gatsby.js, React.js)
- Cronjob: Firebase Cloud Scheduler
- Deployment:
+ API: Firebase Functions
+ Database: Firebase Firestore
+ Web: Firebase Hosting, GatsbyJS
- CICD: Github Workflows# Next Step
- Support for more ecommerce websites.
- Move worker `pullData` to another services (`worker.dev`, Google App Scripts, ...) to reduce cost.
- Auto trigger `BUY`, `Add to cart`, ...