Files
Zenflow 2daccf7d8c INIT (zenflow 9c6862b8)
Scan the code, build the .md files you need to make it easier for the agent to preform modifications and fix bugs
2026-03-11 09:51:35 -05:00

4.1 KiB

Technical Specification - Codebase Documentation (INIT)

This specification outlines the plan for creating comprehensive developer documentation for the Breedr codebase.

Technical Context

  • Backend: Node.js, Express, better-sqlite3.
  • Frontend: React (Vite), react-router-dom, axios, react-d3-tree.
  • Database: SQLite (managed via server/db/init.js and server/db/migrations.js).
  • Structure: Monorepo-style with client/ and server/ directories.

Implementation Approach

The documentation will be split into three main Markdown files in the project root:

  1. DEVELOPMENT.md: Focuses on architecture, database design, and workflow.
  2. API.md: Detailed documentation of all REST API endpoints.
  3. FRONTEND_GUIDE.md: Focuses on React patterns, components, and styling.

Research Methodology

  • Database: Analyze server/db/init.js for table schemas and parents table logic.
  • API: Scan server/routes/*.js for endpoints, middleware, and request/response structures.
  • Frontend: Analyze client/src/App.jsx for routing, client/src/hooks/ for state management, and client/src/components/ for reusable patterns.

Source Code Structure Changes

No changes to existing source code are required. Three new files will be created in the root directory:

  • /DEVELOPMENT.md
  • /API.md
  • /FRONTEND_GUIDE.md

Documentation Structure

1. DEVELOPMENT.md

  • Overview: System purpose and high-level architecture.
  • Project Layout: Description of key directories (client, server, data, static, uploads).
  • Database Design:
    • Explain the "Parents Table" approach (decoupling genealogy from the dogs table).
    • Schema overview (Dogs, Litters, Health, Genetics, Settings).
    • Initialization and migration process.
  • Getting Started:
    • npm install (root and client).
    • npm run dev (concurrent execution).
    • Database initialization (npm run db:init).
  • Coding Standards: Backend route structure, async/await usage, error handling.

2. API.md

  • Base URL: /api
  • Authentication: (Note if any exists, currently seems open).
  • Endpoint Groups:
    • Dogs: CRUD operations, photo management, parent/offspring retrieval.
    • Litters: Management of whelping records.
    • Health: OFA records and test results.
    • Genetics: DNA panel markers and results.
    • Breeding: Breeding records and pairing simulations.
    • Settings: Kennel profile management.
  • Data Models: JSON schema examples for Dog, Litter, HealthRecord, etc.

3. FRONTEND_GUIDE.md

  • Tech Stack: Vite, React, CSS Modules/Global CSS.
  • Routing: react-router-dom configuration in App.jsx.
  • State Management: SettingsProvider and useSettings hook.
  • Pedigree Engine: Implementation of react-d3-tree and pedigreeHelpers.js.
  • Key Components:
    • DogForm: Complex form with parent selection.
    • PedigreeTree: SVG-based genealogy visualization.
    • ClearanceSummaryCard: Health status overview.
  • Styling: Theming with CSS variables (found in index.css and App.css).

Delivery Phases

Phase 1: Core Architecture & Database (DEVELOPMENT.md)

  • Document the tech stack and monorepo structure.
  • Detail the SQLite schema and genealogy logic.
  • Add setup and development commands.

Phase 2: API Documentation (API.md)

  • Document all routes in server/routes/.
  • Provide request/response examples.
  • Document the parents table integration in API responses.

Phase 3: Frontend Guide (FRONTEND_GUIDE.md)

  • Document React component patterns and hooks.
  • Explain the pedigree visualization logic.
  • Document routing and styling conventions.

Verification Approach

  • Correctness: Cross-reference documented schemas with server/db/init.js.
  • Accuracy: Test documented API endpoints against the running server if possible, or verify via route handlers.
  • Completeness: Ensure all components in client/src/components and routes in server/routes are mentioned or categorized.
  • Formatting: Use markdownlint (if available) or manual review to ensure readability.