Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
翻訳待ち
Track every country, US state, Swiss canton, national park, and region you've visited on an interactive world map. Compete with friends, earn achievements, set a bucket list, and explore offline.
翻訳待ち
暮らしJavaScript · CSSGitHub @dankadrオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
Your world. Your journey. An interactive travel tracker where you mark countries, explore detailed region maps, track capitals and UNESCO sites, set goals, and unlock achievements. • World + Regional Maps — 20 tracker/map views across world, capitals, and country sub-trackers • UNESCO Overlay — optional UNESCO World Heritage layer with 270 sites • Bucket List Planner — add planned trips, target dates, and mark destinations complete • Travel Challenges — create personal or friend challenges with streak-friendly progress [README 설치·사용 부분 발췌] Quick Start (Docker)Read the full README ↗
Your world. Your journey.
An interactive travel tracker where you mark countries, explore detailed region maps, track capitals and UNESCO sites, set goals, and unlock achievements.
→ Live App · ·
| Tracker | Regions | Mode |
|---|---|---|
| 🌍 World Map | 238 countries | Polygon |
| 🏛️ World Capitals | 192 capitals | Point |
| 🇨🇭 Switzerland | 26 cantons | Polygon |
| 🇺🇸 United States | 50 states + DC + PR | Polygon |
| 🏞️ US National Parks | 63 parks | Point |
| 🗽 NYC | 197 neighborhoods | Polygon |
| 🇳🇴 Norway | 15 counties + Svalbard | Polygon |
| 🇨🇦 Canada | 13 provinces & territories | Polygon |
| 🇯🇵 Japan | 47 prefectures | Polygon |
| 🇦🇺 Australia | 8 states & territories | Polygon |
| 🇵🇭 Philippines | 17 regions | Polygon |
| 🇧🇷 Brazil | 26 states + DF | Polygon |
| 🇫🇷 France | 13 regions | Polygon |
| 🇩🇪 Germany | 16 states | Polygon |
| 🇮🇹 Italy | 20 regions | Polygon |
| 🇪🇸 Spain | 17 autonomous communities | Polygon |
| 🇲🇽 Mexico | 32 states | Polygon |
| 🇬🇧 United Kingdom | 4 nations / regional view support | Polygon |
| 🇮🇳 India | 36 states & union territories | Polygon |
| 🇳🇿 New Zealand | 16 regions | Polygon |
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite 6, Leaflet + react-leaflet |
| Backend | Python FastAPI, SQLAlchemy (async), PostgreSQL |
| Auth | Google Identity Services + JWT |
| Database (local) | PostgreSQL 16 (Docker) with asyncpg |
| Database (prod) | Neon serverless PostgreSQL with psycopg |
| Hosting | Vercel (frontend CDN + Python serverless functions) |
| Monitoring | Sentry (frontend), Vercel Analytics & Speed Insights |
| Container | Docker Compose (nginx + FastAPI + PostgreSQL) |
┌─────────────────────────────────────────────────────────┐
│ Two deployment modes │
├──────────────────────┬──────────────────────────────────┤
│ Docker Compose │ Vercel (production) │
│ │ │
│ nginx (port 8088) │ Vite static build → CDN │
│ ├─ static files │ api/index.py → Serverless Fn │
│ └─ /api → FastAPI │ └─ re-exports backend/main.py │
│ └─ asyncpg │ └─ psycopg (NullPool) │
│ └─ PG 16 │ └─ Neon PostgreSQL │
└──────────────────────┴──────────────────────────────────┘
docker compose up --build
http://localhost:8088 to Authorized JavaScript origins.env file:cp .env.example .env
# Edit .env and paste your Google Client ID + a random JWT secret
docker compose up --build
Open http://localhost:8088 in your browser.
# Frontend (Vitest)
npm test
# Backend (pytest)
pip install -r backend/requirements-dev.txt
cd backend && pytest -v
# E2E (Playwright)
npx playwright install chromium
npm run test:e2e
Create a free project at neon.tech and copy the pooled connection string from Connection Details.
In your Vercel project → Settings → Environment Variables:
| Variable | Required | Description |
|---|---|---|
DATABASE_URL | Yes | Neon pooled connection string |
GOOGLE_CLIENT_ID | Yes | Google OAuth 2.0 Client ID |
JWT_SECRET | Yes | Random secret (openssl rand -hex 32) |
ENCRYPTION_MASTER_KEY | Yes | Master key for data encryption (openssl rand -hex 32) |
ADMIN_EMAIL | Yes | Your email address (grants admin access) |
FRONTEND_URL | Yes | Your Vercel production URL |
VITE_SENTRY_DSN | No | Sentry DSN for error tracking |
In Google Cloud Console → Credentials → your OAuth Client ID, add your production URL to Authorized JavaScript origins.
vercel --prod
This is the beginning of the README. Read the rest at the original. Read the full README ↗