Logo Lanfrica

abbel-dawit/Yalla

Domain:

digital infrastructure

Record type:

software
Creator:
abb
Host:
A web directory ("yellow pages") for companies across Ethiopia πŸ‡ͺπŸ‡Ή and Djibouti πŸ‡©πŸ‡―. # Yalla β€” Business directory for Ethiopia & Djibouti Yalla is a mobile-, tablet-, and desktop-responsive web directory ("yellow pages") for companies across **Ethiopia πŸ‡ͺπŸ‡Ή** and **Djibouti πŸ‡©πŸ‡―**. People can search, filter by category and country, view full business details, and **call, visit the website, or get directions in one tap**. It runs in three modes, in priority order: | Mode | What it shows | Key location | |------|---------------|--------------| | **Proxy** (recommended) | Live, ranked Google listings β€” up to ~50 per category | On the **server** (never in the browser) | | **Browser-key live** | Same live listings | Pasted into the page / "Connect" button | | **Sample** (default) | ~75 curated real businesses | None | The app auto-detects a running backend (`/api/health`) and uses the proxy automatically. With no backend and no key, it shows the sample directory. --- ## Files - `server.js` β€” the proxy backend (Node + Express): holds the key, fans out across cities, caches, rate-limits, and serves the frontend. - `package.json` β€” backend dependencies and `npm start` script. - `.env.example` β€” copy to `.env` and add your key + optional settings. - `Dockerfile` β€” for containerized deploys. - `yalla.html` β€” the single-file frontend (works standalone in sample/browser-key mode). - `favicon.svg` β€” the app icon (also embedded inline in `yalla.html`). - `README.md` β€” this guide. --- ## Recommended: run the proxy backend This keeps your Google key **server-side**, caches results to cut cost, and rate-limits abuse. The server also serves the frontend, so the page calls a relative `/api/search` β€” no key ever reaches the browser. ```bash # 1. install (Node 18+ required) npm install # 2. add your key cp .env.example .env # then edit .env and set GOOGLE_API_KEY=... # (or just: export GOOGLE_API_KEY=your_key) # 3. run npm start # β†’ open localhost ``` The status dot turns green ("Live data via secure server") and results stream from your backe …