A JavaScript/Node.js web crawlers to fetch currency exchange rates from Egyptian banks websites.
I've established an API to fetch data from the app, and here its features for now.
- Fetch :
- You can fetch data using this end point:
/api/fetch
. this end point will return all the available data to you as a JSON response. - You can also request a specific bank to get data from, you can achieve that using this end point:
/api/fetch/{bankCode}
and I'll list all available bank codes at the end.
- Info :
- That's pretty simple. using this end point
/api/info/
It'll return to you the available data about the bank itself as a JSON, now it offers the full name of the bank in both English and Arabic and the URL of the currency exchange page on the bank's website. You can also request a specific bank with/api/info/{bankCode}
.
Here's a list of the available bank codes for now, of course there will be more supported banks later.
- NBE : National Bank of Egypt.
- BNQMSR : Banque Misr.
- CIB : Commercial International Bank.
- AAIB : Arab African International Bank.
- ALEXBANK : Alex Bank.
- AUDI : Audi Bank.
- CAEG: Crédit Agricole.
- CBE : Central Bank of Egypt.
- UBEG : The United Bank.
- ADIB : Abu Dhabi Islamic Bank.
- EGBANK : EG Bank.
- NBK : National Bank of Kuwait.
- BLOM : Blom Bank Egypt.
- AIB : Arab International Bank.
- NBG : National Bank of Greece.
- HDB : Housing and Development Bank.
And also here's the available currencies (Note: not all currencies available in every bank).
- USD (United States Dollar).
- EUR (Euro).
- GBP (Pound Sterling).
- CAD (Canadian Dollar).
- DKK (Danish Krone).
- NOK (Norwegian Krone).
- SEK (Swedish Krona).
- CHF (Swiss Franc).
- JPY (Japanese Yen).
- AUD (Australian Dollar).
- KWD (Kuwaiti Dinar).
- SAR (Saudi Riyal).
- AED (UAE Dirham).
- BHD (Bahraini Dinar).
- OMR (Omani Riyal).
- QAR (Qatari Riyal).
- JOD (Jordan Dinar).
- CNY (Chinese Yuan).
- THB (Thai Baht).
- Setup an endpoint to target one currency and get a response for it's price in all available banks.
- Refactor the code to reduce complexity.
- Make smarter error handling.
- Store the responses in MongoDB to serve the requests from it and update the database every six hours with a cron-job.
- Make a web app based on the API to show exchange rates.
An Android application with @Mr-Geek11.