Backend: domain structs, FruitRepository interface + pg implementation,
9 Echo v4 handlers (list/get/create/update/delete, image sub-resources),
migration 000002 (fruit_type ENUM, fruits, fruit_synonyms, fruit_images),
route-scoped BodyLimit("5M") for uploads, http.DetectContentType for serving.
Frontend: typed fetch API layer, Pinia setup-style fruitStore, FruitList
(paginated), FruitCreate, and FruitDetail (edit + synonyms editor + image
gallery). 25 backend unit tests + integration test; 18 frontend tests.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 lines
656 B
Markdown
25 lines
656 B
Markdown
# OSDB — Obstsortendatenbank
|
|
|
|
A full-stack fruit-variety database (Go + Vue 3).
|
|
|
|
## Features
|
|
|
|
- Users can view a "Hello, OSDB!" landing page that confirms the backend is reachable via the Vite proxy.
|
|
- Users can create, view, edit, and delete fruit varieties, including managing synonyms and uploading images.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
cp .env.example .env # set credentials
|
|
make dev-db # start Postgres (waits until healthy)
|
|
make migrate-up # apply schema migrations
|
|
make run-backend # Echo API on :3000
|
|
make run-frontend # Vite dev server on :5000
|
|
```
|
|
|
|
## Testing
|
|
|
|
```bash
|
|
make test
|
|
```
|