← back to Charge And Explore
README.md
51 lines
# Charge & Explore · _(codename: tesla)_
An EV **charging-stop experience finder**. Not another route planner — a decision
engine that answers one question:
> **"Which reachable charging stop gives me the best experience during the time my
> car is charging?"**
It combines charger quality, route detour, walking access, restrooms, opening
hours, family/pet suitability, weather, and activities that fit a *conservative*
charging window — and explains every recommendation.
> ⚠️ **Branding:** ships as the neutral **Charge & Explore**, never "Tesla"-branded.
> "tesla" is only the internal repo codename. Tesla Fleet API is an *optional,
> read-only* personalization layer, not the product's spine. See
> [`docs/legal-and-appstore.md`](docs/legal-and-appstore.md).
## What's built so far (v0.1 — the recommendation core)
The dependency-free, fully-tested decision logic — the crown jewels that don't
need any license or secret to build:
| Module | File | What it does |
|---|---|---|
| Charging-time estimator | `backend/src/core/charge-estimate.ts` | Integrates the nonlinear charge curve band-by-band; blends Tesla telemetry when stable; returns a confidence **range**. |
| Stop score | `backend/src/core/stop-score.ts` | Transparent, decomposable 0–100 score + confidence label. No black-box "safety score". |
| Activity matcher | `backend/src/core/activity-match.ts` | Ranks nearby activities that safely fit the window using the *pessimistic* charge estimate + a return buffer. |
| Provider seam | `backend/src/providers/provider.ts` | Interfaces so NREL→HERE, Apple→Google swap without a rewrite. Every record keeps provenance. |
### Run the tests
```bash
npm test # node --test — 27 tests, no npm install required (Node >= 22)
```
## What's next
The gated / dependency-bearing layers (Tesla OAuth + telemetry ingress, licensed
station DB, PostGIS backend, the SwiftUI iOS app) are scoped in
[`PLAN.md`](PLAN.md) and [`docs/architecture.md`](docs/architecture.md). None of
them block the core above.
## Layout
```
backend/ TypeScript service layer (core logic today; API + adapters next)
ios/ SwiftUI native-app module map (see ios/README.md)
docs/ architecture, legal + App Store gates
PLAN.md the full product plan, roadmap, and decisions
```