How grow-project-org/grow works
Grow is a plant-care management application for independently owned gardens. Its main workflow is to review plants due today, record a care action, and update the plant’s schedule and cultivation history; users can also organize plants into working or temporary groups, manage species-specific intervals, and review plant histories. The graph includes the frontend, API, domain, authentication, and persistence layers. The README documents domain behavior, while sampled source confirms selected query and storage behavior; several runtime connections are therefore shown as unverified rather than asserted.
Main entry points: DatabaseContext.cs Database context · App.tsx Application shell · client.ts API client · Dispatcher.cs CQRS dispatcher
Components 20
Garden interface
- Application shell
frontend/src/App.tsx - Today care
frontend/src/features/today/TodayPage.tsx - Care calendar
frontend/src/features/calendar/CalendarPage.tsx - Plant views
frontend/src/features/plants/PlantsPage.tsx - Group views
frontend/src/features/groups/GroupsPage.tsx - Plant creation
frontend/src/features/add/AddPlantPage.tsx - API client
frontend/src/api/client.ts
API and dispatch
- HTTP endpoints
backend/Grow.WebApi/Endpoints/PlantsEndpoints.cs - CQRS dispatcher
backend/Grow.Infrastructure.Cqrs/Dispatcher.cs
Plant domain
- Plant operations
backend/Grow.Domain/Plants/Handlers - Species operations
backend/Grow.Domain/Species/Handlers - User operations
backend/Grow.Domain/Users/Handlers - Plants and events
backend/Grow.Domain/Plants/Plant.cs - Plant groups
backend/Grow.Domain/Plants/PlantGroup.cs - Species intervals
backend/Grow.Domain/Species/Specie.cs - Cultivation history
backend/Grow.Domain/Plants/PlantEvent.cs
Identity
- Authentication setup
backend/Grow.WebApi/Extensions/AuthExtensions.cs - Session storage
backend/Grow.Infrastructure.Auth/SessionStorage.cs
Persistence
- Database context
backend/Grow.Infrastructure.Database/DatabaseContext.cs
Other components
- Gardener
Connections 33
- Gardener → Application shell: uses
- Application shell → Today care: renders
frontend/src/App.tsx - Application shell → Care calendar: renders
frontend/src/App.tsx - Application shell → Plant views: renders
frontend/src/App.tsx - Application shell → Group views: renders
frontend/src/App.tsx - Application shell → Plant creation: renders
frontend/src/App.tsx - Today care → API client: requests data
- Care calendar → API client: requests data
- Plant views → API client: requests data
- Group views → API client: requests data
- Plant creation → API client: submits changes
- API client → HTTP endpoints: sends requests
- HTTP endpoints → CQRS dispatcher: dispatches
- CQRS dispatcher → Plant operations: dispatches
- CQRS dispatcher → Species operations: dispatches
- CQRS dispatcher → User operations: dispatches
- Plant operations → Database context: queries and saves
- Species operations → Database context: queries and saves
- User operations → Database context: queries and saves
- Plant operations → Plants and events: updates
backend/Grow.Domain/Plants/Handlers/SearchPlantsQueryHandler.cs - Plant operations → Plant groups: manages membership
backend/Grow.Domain/Plants/Handlers/GetPlantGroupsQueryHandler.cs - Species operations → Species intervals: updates
backend/Grow.Domain/Species/Handlers/GetSpeciesQueryHandler.cs - Plants and events → Cultivation history: records actions
backend/Grow.Domain/Plants/Plant.cs - Gardener → Today care: reviews due care
- Gardener → Group views: organizes work
- Gardener → Plant views: reviews history
- HTTP endpoints → Authentication setup: configures auth
- Authentication setup → Session storage: uses sessions
backend/Grow.WebApi/Extensions/AuthExtensions.cs - Session storage → Gardener: authenticates
- Database context → Plants and events: persists
backend/Grow.Infrastructure.Database/DatabaseContext.cs - Database context → Plant groups: persists
backend/Grow.Infrastructure.Database/DatabaseContext.cs - Database context → Species intervals: persists
backend/Grow.Infrastructure.Database/DatabaseContext.cs - Database context → Cultivation history: persists
backend/Grow.Infrastructure.Database/DatabaseContext.cs