juliaandClaude Sonnet 4.6 7fc8204924 fix: apply code-review findings to import_fruits script and tests
- find_images: verify exact fruit_id prefix (stem-parse before _s0.) to
  prevent cross-fruit image contamination (e.g. mitschurins steals
  mitschurins_fruchtbare images)
- DATA_DIR uses os.path.abspath to handle symlinks / relative invocation
- counts["images"] derived from IMAGE_DIRS constant, not hardcoded keys
- counts["warnings"] incremented on missing-id/name skip (was missing)
- UPSERT preserves existing comment (comment = fruits.comment, not NULL)
- Print summary and rollback moved inside try/except to avoid NameError
- Remove dead XML_PATH constant
- Tests: add tearDown to clean up tmpdir; fix vacuous _tn exclusion test
  to include positive-control _s0 file; add prefix-collision regression test

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 13:38:05 +02:00

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.

Quick Start

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

make test
S
Description
No description provided
Readme
308 KiB
Languages
Go 55.2%
Vue 18.4%
TypeScript 13.2%
Python 12.2%
Makefile 0.5%
Other 0.5%