Check how much it costs to buy some crypto.
https://curzy.pages.dev/
Report Bug
·
Request Feature
If you are sending some money to a crypto exchange, there is always a fee. If you do it from your bank account, there is a fee. If you do it by card, there is a fee 😞. Curzy will aggregate this for you. No more counting of fees by yourself 🎉. You are welcome.
The project is composed of multiple components:
- Frontend website is a React app deployed on cloudflare pages,
- API fetching data about rates is built with cloudflare workers,
- Atlas MongoDB is used as a database to store data about rates,
- Feeder is a scheduled job which is hosted on GCP app engine - it scrapes data from institutions and saves it to MongoDB,
- Terraform is used to manage infrastructure.
General overview of the project architecture.
flowchart TD
A["⏰ Feeder"] -- Store data from website --> B[("Database")]
B -- Query data from database --> C["Curzy API Worker"]
C -- Fetches data --> D["Website"]
n1["Revolut"] -- Scrape --> A
n2["CSOB"] -- Scrape --> A
n3["Airbank"] -- Scrape --> A
n1@{ shape: doc}
n2@{ shape: doc}
n3@{ shape: doc}
You can run this project locally (even if it doesn't make much sense :).
- Docker with
docker-compose
- Copy env files, remove
.examplepostfix, and fill variables in each sub-project:./apps/feeder/.env.example- feeder./workers/curzy-api/.dev.vars.example- API./website/.env.example- website
- Run
docker-compose up- this will spin up a MongoDB instance and the website - Run
npm run start --prefix ./workers/curzy-apito start API - Run
npm i --prefix ./apps/feederto install dependencies - Run
npm run dev --prefix ./apps/feederto start feeder
- Initiate the feeder to load some data into the database by visiting http://localhost:8081/jobs/all
- Open the app in a browser on http://localhost:3000/
- Check if the API is running on http://localhost:8000/swagger
- Deploy project
- Add Support for automatic deployment
- Multi-language Support
- Czech
- English
- Support more banks, payment methods
Libor Váchal - LinkedIn
Project Link: https://github.com/lipelix/curzy
Useful links and other things worth mentioning.
- Husky - better commits
- puppeteer - control your chrome by API
- Readme template
