# 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. - Administrators can bulk-import the legacy fruit database from XML using `scripts/import_fruits.py`, and then import all publications (cover images, linked fruits, PDFs, fruit images) using `scripts/import_publications.py`. - Users can search fruits by name or synonym (case-insensitive, debounced) and filter by type or combined-type alias (e.g. "Birnen- und Quittensorten") from the fruit list. - Users can manage publications (books, catalogues) with cover images, linked fruits, per-fruit PDF descriptions, and fruit images; fruit detail pages show publication descriptions and images. - Maintainers can log in with a username and password to access data-modifying operations; all write API endpoints and admin controls are protected behind JWT authentication. ## Quick Start ```bash cp .env.example .env # set credentials cp backend/.env.example backend/.env # set JWT_SECRET and USERS_FILE cp users.env.example users.env # create user file (see below) ./scripts/create_user.sh admin secret >> users.env # add a user 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 ```