# 0eteration1/greenacres architecture

> Architecture diagram of the GitHub repository 0eteration1/greenacres, 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/0eteration1/greenacres
- Repository: https://github.com/0eteration1/greenacres

## Overview

This is a Next.js site for a landscaping and lawn-care business. Visitors browse service and location pages, then request a quote or submit a contact, service, or job application; the sampled submission handlers store lead and application records, while lawn-mowing checkout is handled through Stripe. The tree also shows gallery, firewood, and informational content. Some page implementations and integrations were not sampled, so their internal wiring is not represented.

Main entry points: [`app/quotePage/page.tsx`](https://github.com/0eteration1/greenacres/blob/main/app/quotePage/page.tsx) (Quote form), [`app/api/submit-application/route.ts`](https://github.com/0eteration1/greenacres/blob/main/app/api/submit-application/route.ts) (Application handler), [`app/api/submit-form/route.ts`](https://github.com/0eteration1/greenacres/blob/main/app/api/submit-form/route.ts) (Lead handler), [`app/contact/page.tsx`](https://github.com/0eteration1/greenacres/blob/main/app/contact/page.tsx) (Contact)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Business website"]
  node_home["Home<br/>[page.tsx]"]
  node_services["Services<br/>[page.tsx]"]
  node_locations["Local pages"]
  node_rockville["Rockville page<br/>[page.tsx]"]
  node_northpotomac["North Potomac page<br/>[page.tsx]"]
  node_firewood["Firewood<br/>[page.tsx]"]
  node_gallery["Gallery<br/>[page.tsx]"]
  node_about["About<br/>[page.tsx]"]
  node_success["Submission success<br/>[page.tsx]"]
  node_return["Checkout return<br/>[page.tsx]"]
end

subgraph group_lead["Lead intake"]
  node_contact["Contact<br/>[page.tsx]"]
  node_quote["Quote form<br/>[page.tsx]"]
  node_careers["Careers form<br/>[page.tsx]"]
  node_contactapi["Lead handler<br/>[route.ts]"]
  node_careerapi["Application handler<br/>[route.ts]"]
end

subgraph group_platform["Service platform"]
  node_firestore[("Firestore")]
  node_storage[("Firebase Storage<br/>[firebase.ts]")]
  node_checkout["Checkout handler<br/>[route.ts]"]
  node_stripe["Stripe Checkout"]
  node_zapier["Zapier webhook"]
end

node_visitor(("Visitor"))

node_visitor -->|"opens"| node_home
node_visitor -->|"browses"| node_services
node_visitor -->|"visits"| node_rockville
node_visitor -->|"visits"| node_northpotomac
node_visitor -->|"browses"| node_firewood
node_visitor -->|"browses"| node_gallery
node_visitor -->|"reads"| node_about
node_visitor -->|"contacts"| node_contact
node_visitor -->|"requests quote"| node_quote
node_visitor -->|"applies"| node_careers
node_quote -->|"uploads videos"| node_storage
node_quote -->|"submits lead"| node_contactapi
node_contact -->|"submits lead"| node_contactapi
node_contactapi -->|"writes lead"| node_firestore
node_careers -->|"submits application"| node_careerapi
node_careerapi -->|"writes application"| node_firestore
node_careerapi -.->|"notifies"| node_zapier
node_visitor -->|"starts checkout"| node_checkout
node_checkout -->|"creates session"| node_stripe
node_visitor -->|"views"| node_success
node_visitor -->|"returns"| node_return

click node_home "https://github.com/0eteration1/greenacres/blob/main/app/page.tsx"
click node_services "https://github.com/0eteration1/greenacres/blob/main/app/services/page.tsx"
click node_locations "https://github.com/0eteration1/greenacres/blob/main/components/CityLawnMowingPage.tsx"
click node_rockville "https://github.com/0eteration1/greenacres/blob/main/app/rockville-lawn-mowing/page.tsx"
click node_northpotomac "https://github.com/0eteration1/greenacres/blob/main/app/north-potomac-lawn-mowing/page.tsx"
click node_firewood "https://github.com/0eteration1/greenacres/blob/main/app/firewood/page.tsx"
click node_gallery "https://github.com/0eteration1/greenacres/blob/main/app/gallery/page.tsx"
click node_about "https://github.com/0eteration1/greenacres/blob/main/app/about/page.tsx"
click node_contact "https://github.com/0eteration1/greenacres/blob/main/app/contact/page.tsx"
click node_quote "https://github.com/0eteration1/greenacres/blob/main/app/quotePage/page.tsx"
click node_careers "https://github.com/0eteration1/greenacres/blob/main/app/careers/page.tsx"
click node_contactapi "https://github.com/0eteration1/greenacres/blob/main/app/api/submit-form/route.ts"
click node_careerapi "https://github.com/0eteration1/greenacres/blob/main/app/api/submit-application/route.ts"
click node_storage "https://github.com/0eteration1/greenacres/blob/main/lib/firebase.ts"
click node_checkout "https://github.com/0eteration1/greenacres/blob/main/app/api/create-checkout-session/route.ts"
click node_success "https://github.com/0eteration1/greenacres/blob/main/app/submission-success/page.tsx"
click node_return "https://github.com/0eteration1/greenacres/blob/main/app/return/page.tsx"

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_home,node_services,node_locations,node_rockville,node_northpotomac,node_firewood,node_gallery,node_about,node_success,node_return toneBlue
class node_contact,node_quote,node_careers,node_contactapi,node_careerapi toneAmber
class node_firestore,node_storage,node_checkout,node_stripe,node_zapier toneMint
class node_visitor toneIndigo
```

## Components

### Business website

- [Home](https://github.com/0eteration1/greenacres/blob/main/app/page.tsx): `app/page.tsx`
- [Services](https://github.com/0eteration1/greenacres/blob/main/app/services/page.tsx): `app/services/page.tsx`
- [Local pages](https://github.com/0eteration1/greenacres/blob/main/components/CityLawnMowingPage.tsx): `components/CityLawnMowingPage.tsx`
- [Rockville page](https://github.com/0eteration1/greenacres/blob/main/app/rockville-lawn-mowing/page.tsx): `app/rockville-lawn-mowing/page.tsx`
- [North Potomac page](https://github.com/0eteration1/greenacres/blob/main/app/north-potomac-lawn-mowing/page.tsx): `app/north-potomac-lawn-mowing/page.tsx`
- [Firewood](https://github.com/0eteration1/greenacres/blob/main/app/firewood/page.tsx): `app/firewood/page.tsx`
- [Gallery](https://github.com/0eteration1/greenacres/blob/main/app/gallery/page.tsx): `app/gallery/page.tsx`
- [About](https://github.com/0eteration1/greenacres/blob/main/app/about/page.tsx): `app/about/page.tsx`
- [Submission success](https://github.com/0eteration1/greenacres/blob/main/app/submission-success/page.tsx): `app/submission-success/page.tsx`
- [Checkout return](https://github.com/0eteration1/greenacres/blob/main/app/return/page.tsx): `app/return/page.tsx`

### Lead intake

- [Contact](https://github.com/0eteration1/greenacres/blob/main/app/contact/page.tsx): `app/contact/page.tsx`
- [Quote form](https://github.com/0eteration1/greenacres/blob/main/app/quotePage/page.tsx): `app/quotePage/page.tsx`
- [Careers form](https://github.com/0eteration1/greenacres/blob/main/app/careers/page.tsx): `app/careers/page.tsx`
- [Lead handler](https://github.com/0eteration1/greenacres/blob/main/app/api/submit-form/route.ts): `app/api/submit-form/route.ts`
- [Application handler](https://github.com/0eteration1/greenacres/blob/main/app/api/submit-application/route.ts): `app/api/submit-application/route.ts`

### Service platform

- **Firestore**
- [Firebase Storage](https://github.com/0eteration1/greenacres/blob/main/lib/firebase.ts): `lib/firebase.ts`
- [Checkout handler](https://github.com/0eteration1/greenacres/blob/main/app/api/create-checkout-session/route.ts): `app/api/create-checkout-session/route.ts`
- **Stripe Checkout**
- **Zapier webhook**

### Other components

- **Visitor**

## Connections

- Visitor → Home: opens
- Visitor → Services: browses
- Visitor → Rockville page: visits
- Visitor → North Potomac page: visits
- Visitor → Firewood: browses
- Visitor → Gallery: browses
- Visitor → About: reads
- Visitor → Contact: contacts
- Visitor → Quote form: requests quote
- Visitor → Careers form: applies
- Quote form → Firebase Storage: uploads videos
- Quote form → Lead handler: submits lead
- Contact → Lead handler: submits lead
- Lead handler → Firestore: writes lead
- Careers form → Application handler: submits application
- Application handler → Firestore: writes application
- Application handler → Zapier webhook: notifies
- Visitor → Checkout handler: starts checkout
- Checkout handler → Stripe Checkout: creates session
- Visitor → Submission success: views
- Visitor → Checkout return: returns
