68 lines
1.6 KiB
Markdown
68 lines
1.6 KiB
Markdown
# FPV Shop List
|
|
|
|
A personal shopping list app for FPV drone gear. Organize parts into carts and
|
|
sections, track prices, attach images, and share builds with others.
|
|
|
|
## Features
|
|
|
|
- **Multiple carts** — create empty carts or seed from curated templates
|
|
- **Sections** — group items (frame, motors, goggles, batteries, etc.) with an
|
|
optional required flag
|
|
- **Item types** — individual products, complete drones, or kit builds with a
|
|
per-part breakdown
|
|
- **Kit builds** — add parts with category, price, image, and URL; total is
|
|
summed automatically
|
|
- **Images** — attach via file picker, clipboard paste (Ctrl+V), or base64
|
|
embedded in JSON
|
|
- **Hover preview** — hover over a kit part to see its image near the cursor
|
|
- **Import / Export** — share carts as JSON files
|
|
- **Themes** — 9 named color palettes (Sonokai variants + Axis dark/light) with
|
|
OS preference fallback
|
|
- **Persistent** — carts and active selection stored in `localStorage`
|
|
|
|
## Curated catalog
|
|
|
|
`public/curated.json` contains suggested starter builds (e.g. a Crux3 beginner
|
|
kit). The app fetches this on load and exposes the templates in the "Load
|
|
template" dropdown. Templates are deep-copied into a new cart so edits never
|
|
affect the source.
|
|
|
|
## Stack
|
|
|
|
- [React 19](https://react.dev/) with React Compiler
|
|
- [Vite 8](https://vite.dev/)
|
|
- [Tailwind CSS v4](https://tailwindcss.com/) via `@tailwindcss/vite`
|
|
- TypeScript
|
|
|
|
## Setup
|
|
|
|
Install dependencies
|
|
|
|
```sh
|
|
bun install
|
|
```
|
|
|
|
Start dev server
|
|
|
|
```sh
|
|
bun dev
|
|
```
|
|
|
|
Build for production
|
|
|
|
```sh
|
|
bun run build
|
|
```
|
|
|
|
Preview production build
|
|
|
|
```sh
|
|
bun run preview
|
|
```
|
|
|
|
## Scaffolded with
|
|
|
|
```sh
|
|
bun create vite
|
|
```
|