Dinar Échange
Algerian dinar exchange rates. Parallel market and official, side by side.
Algeria has two exchange rates. The official one the government publishes, and the parallel market rate that everyone actually uses. The gap between them is significant and it changes daily. There's no official API for the parallel rate. It lives on informal websites and word of mouth.
A friend wanted a simple way to check it. Most exchange rate apps look like financial terminals, numbers and jargon everywhere. He just wanted to know: if I have 100 euros, how many dinars do I get today?
So I built it. A Flutter app with a Python backend on AWS Lambda that scrapes multiple sources every morning at 8am Algiers time. Each source is its own Lambda function, all returning the same data shape. Freshest data wins. If one source goes down, the others keep working.
The app shows both rates side by side. Pin your currencies, drag to reorder, see trends over time. Works in English, Arabic, and French. Caches everything locally so it works even with spotty internet, which matters in Algeria.
How it works
Data pipeline
EventBridge triggers a main Lambda daily at 8am. It invokes separate scraper Lambdas, each hitting a different source. All share the same contract. First valid response wins. Core currencies (EUR, USD, GBP, etc.) come from scrapers. Every other currency is derived by cross-referencing the USD parallel rate against a public exchange rate API. Approximate but good enough, ±3 dinars.
Storage
Firebase Firestore. Daily rates keyed by date. Two-year trend history per currency, trimmed on each update. Separate collections for parallel and official rates.
The app
Flutter with Provider for state management. Cache-first with 7-day offline fallback. Anonymous Firebase auth with App Check so there's no account creation needed. Push notifications in the user's chosen language via FCM topic subscriptions. Ad frequency controlled server-side through Remote Config.
Related posts
Available on Android. Open source.