Files
Kazier/AGENTS.md
T
2026-07-11 20:12:00 +02:00

1.7 KiB

VaultDrop

Project Status

Project initialized — webui/ (React Native) and backend/ (Go) have scaffolding in place.

Architecture

  • Backend: Go, Gin HTTP framework, SQLite + FTS5, Tesseract OCR (system call)
  • Frontend: React Native (Expo SDK 57), React Navigation, TanStack Query, react-native-image-picker

Key Commands

# Backend
cd backend && go run cmd/server/main.go

# Frontend
cd webui && npx expo start

# Typecheck frontend
cd webui && npx tsc --noEmit

Backend Structure

  • Entry point: backend/cmd/server/main.go
  • Internal packages: handlers/, models/, repository/, service/, ocr/
  • Response helpers: pkg/api/response.go
  • File uploads stored in backend/uploads/
  • Standard JSON response envelope: { "data": ..., "meta": { "page": ..., "total": ... } }
  • Error format: { "error": { "code": "...", "message": "..." } }
  • OCR language: fra+eng
  • Handlers are stub implementations (return not-implemented errors)

Frontend Structure

  • Entry point: webui/App.tsx (React Navigation + TanStack Query providers)
  • Screens: app/index.tsx (home), app/upload.tsx, app/scan.tsx, app/search.tsx
  • Components: components/FileCard.tsx, TagChip.tsx, UploadProgress.tsx
  • Hooks: hooks/useFiles.ts, hooks/useSearch.ts, hooks/useUpload.ts
  • API client: api/client.ts, types: types/index.ts, constants: constants/api.ts
  • No business logic on the client — all heavy processing server-side
  • API base URL configured via EXPO_PUBLIC_API_BASE_URL env var

Non-Goals (V1)

Collaborative/multi-user, plugin system, complex offline sync, public sharing.

References

  • README.md — full spec, API endpoints, data flow, folder structure, iteration roadmap