Logo Lanfrica

abbel-dawit/Yalla

Domaine:

digital infrastructure

Type de record:

software
Créateur:
abb
HĂ´te:
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 …