# sanwalmeo00-cyber/dairy-management architecture

> Architecture diagram of the GitHub repository sanwalmeo00-cyber/dairy-management, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sanwalmeo00-cyber/dairy-management
- Repository: https://github.com/sanwalmeo00-cyber/dairy-management

## Overview

Dairy Management is a full-stack farm operations app for managing livestock, breeding, inventory, sales, and finances. Its user workflow runs from the Next.js farm interface to same-app API routes, domain services, and PostgreSQL via Prisma; the tree also documents a separate Express API with its own route–middleware–controller–service flow. Major capabilities are represented, but the supplied excerpts do not establish how the frontend selects or connects to the two API surfaces, so that wiring is left unspecified.

Main entry points: [`frontend/server/services`](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/server/services) (Next domain services), [`frontend/app/api/v1`](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/app/api/v1) (Next API routes), [`frontend/app/(app)`](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/app/(app)) (Farm pages), [`frontend/app/(auth)`](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/app/(auth)) (Login and registration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Farm interface"]
  node_pages["Farm pages"]
  node_authpages["Login and registration"]
end

subgraph group_api["API layers"]
  node_nextapi["Next API routes"]
  node_nextservices["Next domain services"]
  node_expressroutes["Express routes"]
  node_middleware["Express middleware"]
  node_controllers["Express controllers"]
  node_backendservices["Express services"]
end

subgraph group_farm["Livestock operations"]
  node_goats["Goat records<br/>[goats.service.ts]"]
  node_breeding["Breeding and kids"]
  node_purchases["Goat purchases"]
  node_inventory["Inventory and stock"]
end

subgraph group_business["Business operations"]
  node_sales["Products and sales<br/>[sales.service.ts]"]
  node_orders["Customer orders<br/>[orders.service.ts]"]
  node_finance["Expenses and payments"]
  node_workers["Workers and payroll<br/>[workers.service.ts]"]
  node_dashboard["Farm dashboard"]
end

subgraph group_platform["Identity and oversight"]
  node_database[("PostgreSQL<br/>[prisma.ts]")]
  node_auth["Authentication<br/>[auth.service.ts]"]
  node_users["User administration<br/>[users.service.ts]"]
  node_deleted["Deleted records<br/>[deleted.service.ts]"]
  node_uploads["Image uploads<br/>[uploads.service.ts]"]
end

node_farmer(("Farm user"))

node_farmer -->|"uses"| node_pages
node_farmer -->|"signs in"| node_authpages
node_pages -->|"requests"| node_nextapi
node_authpages -->|"submits credentials"| node_nextapi
node_nextapi -->|"dispatches"| node_nextservices
node_nextservices -->|"reads and writes"| node_database
node_farmer -.->|"API requests"| node_expressroutes
node_expressroutes -->|"passes through"| node_middleware
node_middleware -->|"authorizes"| node_controllers
node_controllers -->|"calls"| node_backendservices
node_backendservices -->|"reads and writes"| node_database
node_nextservices -->|"manages goats"| node_goats
node_nextservices -->|"manages breeding"| node_breeding
node_nextservices -->|"records purchases"| node_purchases
node_nextservices -->|"tracks stock"| node_inventory
node_nextservices -->|"handles sales"| node_sales
node_nextservices -->|"handles orders"| node_orders
node_nextservices -->|"records expenses"| node_finance
node_nextservices -->|"manages workers"| node_workers
node_nextservices -->|"provides summaries"| node_dashboard
node_nextservices -->|"authenticates"| node_auth
node_nextservices -->|"administers users"| node_users
node_nextservices -->|"restores records"| node_deleted
node_nextservices -->|"handles images"| node_uploads

click node_pages "https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/app/(app)"
click node_authpages "https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/app/(auth)"
click node_nextapi "https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/app/api/v1"
click node_nextservices "https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/server/services"
click node_expressroutes "https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/backend/src/routes"
click node_middleware "https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/backend/src/middleware"
click node_controllers "https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/backend/src/controllers"
click node_backendservices "https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/backend/src/services"
click node_database "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/backend/src/database/prisma.ts"
click node_goats "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/goats.service.ts"
click node_breeding "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/breeding.service.ts"
click node_purchases "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/goatPurchases.service.ts"
click node_inventory "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/inventory.service.ts"
click node_sales "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/sales.service.ts"
click node_orders "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/orders.service.ts"
click node_finance "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/expenses.service.ts"
click node_workers "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/workers.service.ts"
click node_dashboard "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/dashboard.service.ts"
click node_auth "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/auth.service.ts"
click node_users "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/users.service.ts"
click node_deleted "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/deleted.service.ts"
click node_uploads "https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/uploads.service.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_pages,node_authpages,node_farmer toneBlue
class node_nextapi,node_nextservices,node_expressroutes,node_middleware,node_controllers,node_backendservices toneAmber
class node_goats,node_breeding,node_purchases,node_inventory toneMint
class node_sales,node_orders,node_finance,node_workers,node_dashboard toneRose
class node_database,node_auth,node_users,node_deleted,node_uploads toneIndigo
```

## Components

### Farm interface

- [Farm pages](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/app/(app)): `frontend/app/(app)`
- [Login and registration](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/app/(auth)): `frontend/app/(auth)`

### API layers

- [Next API routes](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/app/api/v1): `frontend/app/api/v1`
- [Next domain services](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/frontend/server/services): `frontend/server/services`
- [Express routes](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/backend/src/routes): `backend/src/routes`
- [Express middleware](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/backend/src/middleware): `backend/src/middleware`
- [Express controllers](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/backend/src/controllers): `backend/src/controllers`
- [Express services](https://github.com/sanwalmeo00-cyber/dairy-management/tree/main/backend/src/services): `backend/src/services`

### Livestock operations

- [Goat records](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/goats.service.ts): `frontend/server/services/goats.service.ts`
- [Breeding and kids](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/breeding.service.ts): `frontend/server/services/breeding.service.ts`
- [Goat purchases](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/goatPurchases.service.ts): `frontend/server/services/goatPurchases.service.ts`
- [Inventory and stock](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/inventory.service.ts): `frontend/server/services/inventory.service.ts`

### Business operations

- [Products and sales](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/sales.service.ts): `frontend/server/services/sales.service.ts`
- [Customer orders](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/orders.service.ts): `frontend/server/services/orders.service.ts`
- [Expenses and payments](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/expenses.service.ts): `frontend/server/services/expenses.service.ts`
- [Workers and payroll](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/workers.service.ts): `frontend/server/services/workers.service.ts`
- [Farm dashboard](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/dashboard.service.ts): `frontend/server/services/dashboard.service.ts`

### Identity and oversight

- [PostgreSQL](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/backend/src/database/prisma.ts): `backend/src/database/prisma.ts`
- [Authentication](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/auth.service.ts): `frontend/server/services/auth.service.ts`
- [User administration](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/users.service.ts): `frontend/server/services/users.service.ts`
- [Deleted records](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/deleted.service.ts): `frontend/server/services/deleted.service.ts`
- [Image uploads](https://github.com/sanwalmeo00-cyber/dairy-management/blob/main/frontend/server/services/uploads.service.ts): `frontend/server/services/uploads.service.ts`

### Other components

- **Farm user**

## Connections

- Farm user → Farm pages: uses
- Farm user → Login and registration: signs in
- Farm pages → Next API routes: requests
- Login and registration → Next API routes: submits credentials
- Next API routes → Next domain services: dispatches
- Next domain services → PostgreSQL: reads and writes
- Farm user → Express routes: API requests
- Express routes → Express middleware: passes through
- Express middleware → Express controllers: authorizes
- Express controllers → Express services: calls
- Express services → PostgreSQL: reads and writes
- Next domain services → Goat records: manages goats
- Next domain services → Breeding and kids: manages breeding
- Next domain services → Goat purchases: records purchases
- Next domain services → Inventory and stock: tracks stock
- Next domain services → Products and sales: handles sales
- Next domain services → Customer orders: handles orders
- Next domain services → Expenses and payments: records expenses
- Next domain services → Workers and payroll: manages workers
- Next domain services → Farm dashboard: provides summaries
- Next domain services → Authentication: authenticates
- Next domain services → User administration: administers users
- Next domain services → Deleted records: restores records
- Next domain services → Image uploads: handles images
