Skip to content

roeimichael/Israele

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

109 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ‡ฎ๐Ÿ‡ฑ IsraelE

A Wordle-style daily geography game scoped to Israel. 6 places a day, same set for everyone. Click the satellite map where you think each place is. Closer = more points. Up to 1000 points per day.

Play โ†’ israel-e.com

Python FastAPI MapLibre License

IsraelE gameplay

How it works

  • 6 rounds per day, identical set for every player. Resets at 00:00 Israel time.
  • 2 cities + 2 settlements + 2 landmarks per puzzle, picked server-side.
  • Each round shows a Hebrew place name; you tap the satellite map.
  • Score per round = base ร— multiplier โ€” max 1000 total per day.

Scoring

Quadratic falloff โ€” wrong-end-of-country guesses are basically worthless.

Distance Base Notes
0โ€“1 km 100 bullseye
10 km 92 close
50 km 64 wrong neighborhood
100 km 36 wrong region
200 km 4 trivial
250 km+ 0 giving up

Multiplier depends on the category:

Category Multiplier Examples
City 1ร— Tel Aviv, Jerusalem, Haifa, Eilat
Settlement 1.5ร— villages, kibbutzim, moshavim
Landmark 2.5ร— mountains, museums, archaeological sites, monumentsโ€ฆ

Stack

Layer Choice
Backend FastAPI + uvicorn on Railway (Nixpacks)
Frontend Static HTML/JS/CSS on Vercel (/api/* proxied to Railway)
DB + Auth Supabase Postgres + PostgREST + Google OAuth + RLS
Domain Cloudflare DNS โ†’ israel-e.com (Vercel TLS)
Map engine MapLibre GL JS (WebGL)
Basemap Esri World Imagery โ€” free, z19, no API key
Border data geoBoundaries gbOpen (Israel + Palestine ADM0, unioned)
Place data OpenStreetMap via Overpass API โ€” one-shot fetch โ†’ committed CSV

Local dev

git clone https://github.com/roeimichael/israelle
cd israelle
python -m venv .venv
.venv/Scripts/activate                  # Windows
# source .venv/bin/activate              # macOS / Linux
pip install -r backend/requirements.txt
# Required env (mirror what Railway has):
# SUPABASE_URL, SUPABASE_KEY (publishable / anon), ALLOWED_ORIGINS, SERVE_FRONTEND=1
uvicorn backend.main:app --host 127.0.0.1 --port 8000

Set SERVE_FRONTEND=1 so the backend mounts frontend/ at / for single-origin local play. In production this is off โ€” Vercel owns the frontend.

Open http://127.0.0.1:8000 โ†’ click Play.

Deploy

See docs/MIGRATION.md for the full Railway + Vercel + Cloudflare + Supabase + Google OAuth setup. Every push to main redeploys both Railway (backend) and Vercel (frontend) automatically.

Repo layout

backend/        FastAPI app โ€” routes, scoring, place loader, supabase client
frontend/       index.html, app.js, style.css (vanilla, no build step)
scripts/        one-shot data ETL (Overpass + geoBoundaries fetch, merge)
data/           places.csv (~3.3k entries), polygons.json, israel.geojson
docs/           screenshots, migration guide
nixpacks.toml   Railway build config (venv + uvicorn entrypoint)
railway.json    Railway deploy config (Nixpacks, restart-on-failure)
vercel.json     Vercel static deploy + /api/* rewrite to Railway

API (used by the frontend)

Method Path Returns
GET /api/today {date, day_number, rounds: [6], tile_hash}
GET /api/me/today (auth) signed-in user's today state
GET /api/today/me?player_id=... guest's today state
POST /api/today/guess scores a guess, persists, returns reveal payload
GET /api/me/history (auth) last 60 games
GET /api/me/stats?player_id=... streaks + histogram
GET /api/leaderboard?date=... top 20 for the day
GET /api/israel-border land-only Israel+PSE polygon (13.5k pts)
GET /api/config Supabase URL + publishable key for the browser

Rebuilding the place data

Shipped data/places.csv is enough to play. To refresh:

pip install -r scripts/requirements.txt
python scripts/fetch_overpass.py        # writes data/raw/overpass.json
python scripts/fetch_israel_border.py   # rebuilds data/israel.geojson
python scripts/build_places.py          # merges โ†’ data/places.csv

License

MIT โ€” see LICENSE.

Map data ยฉ OpenStreetMap contributors. Borders ยฉ geoBoundaries (CC-BY 4.0). Satellite imagery ยฉ Esri.

About

๐ŸŒ๐Ÿ“ Wordle-style geography game โ€” satellite map, 5 rounds, distance-based scoring ยท IL

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors