40 lines
1.2 KiB
Markdown
40 lines
1.2 KiB
Markdown
# leaflet_svelte
|
|
|
|
Weather-balloon trajectory planner. Static SvelteKit SPA that talks to a Django
|
|
REST backend.
|
|
|
|
## Quick start
|
|
|
|
```bash
|
|
npm install
|
|
|
|
# dev against a local Django on :8000 (see .env.example)
|
|
npm run dev
|
|
|
|
# dev with a fake backend (no Django needed)
|
|
VITE_USE_MOCK_API=true npm run dev
|
|
|
|
# type-check + production build (emits static files to ./build)
|
|
npm run check
|
|
npm run build
|
|
```
|
|
|
|
Serve `build/` from any static host. Route fallback is `index.html`.
|
|
|
|
## Documentation
|
|
|
|
- [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) — module layout and data flow.
|
|
- [`docs/CONVENTIONS.md`](docs/CONVENTIONS.md) — naming, styling, component patterns.
|
|
- [`docs/ADDING_A_FEATURE.md`](docs/ADDING_A_FEATURE.md) — walkthrough for adding
|
|
a new panel/feature.
|
|
- [`mocks/`](mocks/) — Vite dev-server mock backend.
|
|
|
|
## Stack
|
|
|
|
- **SvelteKit + Vite** (TypeScript, Svelte 5 runes) — built as a pure SPA with
|
|
`@sveltejs/adapter-static`.
|
|
- **MapLibre GL JS** via the `$map` abstraction — the app never imports
|
|
`maplibre-gl` directly outside `src/lib/map/`.
|
|
- **Sveltestrap** + Bootstrap 5 for UI chrome.
|
|
- **Chart.js** for the ascent/descent profile editor.
|
|
- **@vincjo/datatables** for editor tables.
|