How ogaradinest/wash_agent works
1. Overall shape
- This repo is a two-tier application: a Python backend in backend/ and a React frontend in frontend/.
- The frontend is the primary user interface; the backend appears to provide the API and server-side logic behind it.
2. Frontend application shell
- The frontend is a single-page React app built with CRACO (frontend/craco.config.js) and styled with Tailwind CSS (tailwind.config.js, postcss.config.js).
- Entry points are frontend/src/index.js and frontend/src/App.js, with global styling in App.css and index.css.
3. UI and page structure
- The main app surface is organized into pages: LandingPage.jsx and Dashboard.jsx.
- Reusable feature components include AICallDemo.jsx and CallLogDetail.jsx, suggesting the app centers on an AI call/demo workflow plus call history or inspection.
- The large frontend/src/components/ui/ folder is a design-system layer of reusable controls (buttons, dialogs, tables, tabs, toast, etc.), likely built on a component library pattern.
4. Frontend data flow
- The UI likely follows a simple flow: landing page entry → dashboard interaction → detailed call views and notifications.
- Shared client-side helpers live in frontend/src/lib/utils.js, and transient UI state/feedback is handled via toast hooks in frontend/src/hooks/use-toast.js.
5. Frontend development-time extensions
- frontend/plugins/health-check/ adds custom health endpoints and a webpack health plugin, indicating the frontend dev server exposes operational checks beyond the normal app bundle.
- frontend/plugins/visual-edits/ contains Babel/dev-server plugins that support a visual editing workflow or metadata injection during development, so the frontend build is not just static bundling but also developer tooling-aware.
6. Backend service boundary
- backend/server.py is the runtime entry for the Python service.
- backend/requirements.txt defines the backend runtime dependencies, and backend_test.py indicates direct testing of backend behavior.
- The backend is the clear boundary for server-side APIs, health checks, and any AI/call-related logic that the frontend consumes.
7. Testing and validation
- There are separate repo-level test artifacts: backend_test.py, tests/, and test_reports/.
- The presence of iteration-based JSON reports suggests repeated evaluation runs or benchmark-style validation, not just ad hoc unit tests.
8. Deployment pipeline
- .github/workflows/deploy.yml is the primary CI/CD path and likely builds the frontend, validates the backend, and publishes the application.
- This implies a deployment boundary where the frontend build artifacts and backend service are promoted together or in coordinated steps.
9. Project guidance and product context
- memory/PRD.md and design_guidelines.json provide product/design constraints that influence implementation but are not runtime components.
- They likely define the intended behavior and UI consistency for the app’s main flows.
10. What to draw in an architecture diagram
- Show a browser client talking to a React SPA.
- Show the SPA depending on a Python API server for dynamic data/actions.
- Add a development-only tooling lane for health checks and visual-edit plugins on the frontend.
- Add a CI/CD lane from GitHub Actions into deployment, with tests and reports as quality gates.
Main entry points: App.js React SPA · server.py Python Server · deploy.yml Deploy Workflow · Dashboard.jsx Dashboard
Components 21
Client UI
React single-page application and its runtime surface.
- Browser · End-user entry point for the app.
- React SPA · Main single-page application shell built with React and CRACO.
frontend/src/App.js - App Entry · Client startup and root mounting.
frontend/src/index.js - Landing Page · Initial public-facing page.
frontend/src/pages/LandingPage.jsx - Dashboard · Primary interactive workspace.
frontend/src/pages/Dashboard.jsx - AI Demo · Core AI call/demo workflow UI.
frontend/src/components/AICallDemo.jsx - Call Log · Call detail and inspection view.
frontend/src/components/CallLogDetail.jsx - UI Kit · Reusable component primitives and controls.
frontend/src/components/ui - Toast State · Transient feedback and notification handling.
frontend/src/hooks/use-toast.js - Client Utils · Shared frontend utility helpers.
frontend/src/lib/utils.js - Styles · Global app styles and Tailwind/PostCSS setup.
frontend/src/App.css
Backend Service
Python server and its service boundary.
- Python Server · Backend runtime entry point and server-side logic.
backend/server.py - Backend Deps · Python dependency set for the backend service.
backend/requirements.txt
Frontend Tooling
Development-time plugins and build customization.
- Health Plugin · Custom frontend health-check integration.
frontend/plugins/health-check/webpack-health-plugin.js - Health Endpoints · Operational endpoints used during frontend development.
frontend/plugins/health-check/health-endpoints.js - Visual Edits · Babel and dev-server support for visual editing workflows.
frontend/plugins/visual-edits/dev-server-setup.js
Quality & Delivery
Tests, reports, and CI/CD automation.
- Tests · Repository-level backend and integration test coverage.
tests - Reports · Iteration-based evaluation and test outputs.
test_reports - Deploy Workflow · GitHub Actions deployment pipeline.
.github/workflows/deploy.yml
Product Context
Docs and design constraints that guide implementation.
- PRD · Product requirements and behavior guidance.
memory/PRD.md - Design Guide · UI and implementation constraints.
design_guidelines.json
Connections 22
- Browser → App Entry: loads · Browser opens the app entrypoint.
- App Entry → React SPA: mounts · Client bootstrap renders the main React app.
- React SPA → Landing Page: routes · App exposes the landing surface.
- React SPA → Dashboard: routes · App exposes the main dashboard.
- Dashboard → AI Demo: uses · Dashboard hosts the core AI call workflow.
- Dashboard → Call Log: uses · Dashboard shows call details and history.
- React SPA → UI Kit: composes · App screens are built from reusable UI primitives.
- React SPA → Toast State: notifies · App uses toast feedback for transient status.
- React SPA → Client Utils: shares · Common helpers support client logic.
- React SPA → Styles: styles · Global styling and Tailwind configuration shape the shell.
- React SPA → Python Server: api calls · Frontend depends on backend data and actions.
- React SPA → Health Plugin: dev support · Frontend build includes health-check tooling.
- Health Plugin → Health Endpoints: exposes · Plugin wires operational endpoints into dev runtime.
- React SPA → Visual Edits: dev support · Frontend build includes visual-edit workflow tooling.
- Python Server → Backend Deps: depends on · Backend runtime is defined by Python dependencies.
- Python Server → Tests: validated by · Backend behavior is covered by test execution.
- Tests → Reports: produces · Test runs generate iteration reports and artifacts.
- Deploy Workflow → Tests: runs · Deployment workflow gates on validation.
- Deploy Workflow → Python Server: deploys · Workflow promotes the backend service.
- Deploy Workflow → React SPA: builds · Workflow builds and ships the frontend app.
- PRD → React SPA: guides · Product requirements inform app behavior.
- Design Guide → UI Kit: guides · Design constraints influence reusable UI primitives.