- New: docs/ARCHITECTURE.md, docs/GETTING-STARTED.md, docs/DEVELOPMENT.md, docs/TESTING.md, docs/CONFIGURATION.md (colored mermaid diagrams, quoted labels) - Regenerated README.md (arah² / arah2bot naming, canonical clone URL) - New per-package READMEs: theme/, bot/, web/ - Verified 13 docs against the live codebase (2 fix iterations + 2 residual corrections); corrected 56 stale claims across AGENTS/DESIGN/IDEAS/GSD_FIX
96 lines
2.6 KiB
Markdown
96 lines
2.6 KiB
Markdown
IDEAS.md
|
||
|
||
Vision
|
||
|
||
A Dieter Rams–inspired minimalist navigation app, built on OpenStreetMap and powered through Telegram. Every design choice follows Rams’ principle: Less, but better.
|
||
|
||
Core Principles
|
||
|
||
Clarity: Every interaction is obvious and purposeful.
|
||
|
||
Minimalism: No excess decoration, only functional elements.
|
||
|
||
Consistency: Unified typography, spacing, and iconography.
|
||
|
||
Timelessness: Avoid trends; design remains relevant for years.
|
||
|
||
User Experience
|
||
|
||
Telegram-first: Commands and inline queries for reports, search, and navigation.
|
||
|
||
Map snapshots: Delivered as clean images with overlays for traffic events.
|
||
|
||
Navigation output: Text-based directions with optional minimalist map tiles.
|
||
|
||
Reports: Simple commands with location sharing — planned, not built. Implemented commands today are /start (+ /mula), /help, /privacy (+ /privasi); /accident, /traffic, /hazard are future report commands.
|
||
|
||
Feedback loop: Concise updates about nearby events.
|
||
|
||
Visual Design
|
||
|
||
Color Palette:
|
||
|
||
Signal Orange (#EB8008)
|
||
|
||
Functional Red (#ED3F1C)
|
||
|
||
Olive Green (#736B1E)
|
||
|
||
Soft Beige (#D9D2C6)
|
||
|
||
Matte Black (#1A1A1A)
|
||
|
||
Typography:
|
||
|
||
Geist (body) / Space Grotesk (headings) — as implemented in the token package; Helvetica Neue / Inter was the original idea
|
||
|
||
Regular for body, Bold for emphasis
|
||
|
||
Icons:
|
||
|
||
Line-based, monochrome with accent colors
|
||
|
||
Accident = ⚠️, Traffic = 🚗, Hazard = ⛔
|
||
|
||
Architecture Overview
|
||
|
||
Frontend: Telegram Bot + Mini App on Cloudflare Workers with static assets (Workers superseded Pages; PWA still optional/future)
|
||
|
||
Backend: grammY on Cloudflare Workers receiving updates at the POST /telegram/webhook endpoint
|
||
|
||
Database today: Cloudflare Workers KV (TTL-only chat sessions); Neon (Postgres + PostGIS) remains the target for event storage
|
||
|
||
Routing: not wired yet — validated target stack is Valhalla + Photon (OSRM references in older docs are superseded)
|
||
|
||
Tiles today: OpenFreeMap (theme/basemap/liberty-rams.json); Maptiler was the original idea
|
||
|
||
Queue: none yet — RabbitMQ is future/aspirational, deferred out of v1
|
||
|
||
Storage: none yet (no R2 binding in bot/wrangler.jsonc); R2 remains a future option for map snapshots
|
||
|
||
Monitoring: none yet — Prometheus + Grafana are future/aspirational
|
||
|
||
Email: none yet — Resend is future/aspirational
|
||
|
||
Gamification
|
||
|
||
Points for validated reports
|
||
|
||
Leaderboards via Telegram bot
|
||
|
||
Minimalist badges (circle outlines with symbols)
|
||
|
||
Future Ideas
|
||
|
||
Regional clusters via Telegram groups
|
||
|
||
Voice-to-text reporting
|
||
|
||
Offline mode with cached routes
|
||
|
||
API layer for anonymized traffic data
|
||
|
||
Motto
|
||
|
||
"Good design is as little design as possible." — Dieter Rams
|