How turtiesocks/koji works
Kōji is a geospatial mapping and automation application: users create or import geofences, configure clustering and routing, inspect results on a map, and optionally save or export them. It also provides an admin panel and public API. The graph combines README capabilities with the supplied excerpts and repository paths; backend handler and persistence wiring is not fully sampled, so those internal links are limited to the evident API, algorithm, and model boundaries.
Main entry points: lib.rs HTTP API · mod.rs Public endpoints · fetches.ts API client · index.tsx Interactive map
Components 22
Mapping client
- Interactive map
client/src/pages/map/index.tsx - Geofence drawing
client/src/components/drawer/Drawing.tsx - Geometry state
client/src/hooks/useShapes.ts - Routing controls
client/src/components/drawer/Routing.tsx - Import and export
client/src/hooks/useImportExport.ts - API client
client/src/services/fetches.ts
API and algorithms
- Server startup
server/src/main.rs - HTTP API
server/api/src/lib.rs - Public endpoints
server/api/src/public/v1/mod.rs - Admin endpoints
server/api/src/private/mod.rs - Geospatial algorithms
server/algorithms/src/lib.rs - Route algorithms
server/algorithms/src/routing/mod.rs - Clustering algorithms
server/algorithms/src/clustering/mod.rs
Management and data
- Admin panel
client/src/pages/admin/index.tsx - Geofence and route management
client/src/pages/admin/geofence/GeofenceList.tsx - Domain models
server/model/src/db/mod.rs - Application database
server/model/src/db/prelude.rs
Integrations
- Nominatim client
server/nominatim/src/client.rs
Other components
- Map user
- API integrator
- Nominatim service
- Scanner database
Connections 22
- Map user → Interactive map: uses
- Interactive map → Geofence drawing: opens drawing
- Geofence drawing → Geometry state: edits geometry
- Interactive map → Geometry state: renders geometry
- Map user → Routing controls: configures
- Routing controls → API client: requests routing
- Import and export → API client: requests conversion
- API client → HTTP API: sends requests
- Server startup → HTTP API: starts
- API integrator → Public endpoints: integrates via
- HTTP API → Public endpoints: serves
- HTTP API → Admin endpoints: serves
- Public endpoints → Geospatial algorithms: invokes calculations
- Geospatial algorithms → Clustering algorithms: dispatches clustering
- Geospatial algorithms → Route algorithms: dispatches routing
- Admin panel → Geofence and route management: manages resources
- Admin panel → API client: requests data
- Admin endpoints → Domain models: uses models
- Public endpoints → Domain models: uses models
- Domain models → Application database: accesses persistence
- Nominatim client → Nominatim service: queries
- Import and export → Scanner database: can save export