# tonyflury/garagesale architecture

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

- Interactive diagram: https://gitdiagram.com/tonyflury/garagesale
- Repository: https://github.com/tonyflury/garagesale

## Overview

GarageSale appears to be a Django site for coordinating a community garage-sale event. Its clearest evidenced workflow lets a visitor or signed-in user open an application, associate it with the current event and a location, and save or delete a sale or billboard application; new applications can trigger an email. The tree also identifies finance, maps, craft-market, news, team-page, sponsor, account, and Drive capabilities. The README is empty and most source was not sampled, so links among those branches are omitted where wiring is unverified.

Main entry points: [`common/application.py`](https://github.com/tonyflury/garagesale/blob/master/common/application.py) (Application workflow), [`GarageSale/models.py`](https://github.com/tonyflury/garagesale/blob/master/GarageSale/models.py) (Event data), [`Location/models.py`](https://github.com/tonyflury/garagesale/blob/master/Location/models.py) (User location), [`Billboard/models.py`](https://github.com/tonyflury/garagesale/blob/master/Billboard/models.py) (Billboard applications)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_event["Event site"]
  node_event_data[("Event data<br/>[models.py]")]
end

subgraph group_applications["Event applications"]
  node_application_handler["Application workflow<br/>[application.py]"]
  node_location[("User location<br/>[models.py]")]
  node_billboard[("Billboard applications<br/>[models.py]")]
  node_sale[("Sale registrations<br/>[models.py]")]
  node_billboard_views["Billboard views<br/>[views.py]"]
  node_sale_views["Sale views<br/>[views.py]"]
end

subgraph group_community["Community features"]
  node_map["Location maps<br/>[views.py]"]
  node_craft["Craft market<br/>[views.py]"]
  node_news["News<br/>[views.py]"]
  node_sponsors["Sponsors<br/>[views.py]"]
  node_team_pages["Team pages<br/>[views.py]"]
end

subgraph group_identity["Accounts and storage"]
  node_accounts["Accounts and reports<br/>[views.py]"]
  node_account_reports["Financial reports<br/>[reports.py]"]
  node_user_management["User management<br/>[views.py]"]
  node_user_manager["User creation<br/>[managers.py]"]
  node_drive["Google Drive integration<br/>[google_drive.py]"]
end

node_visitor(("Visitor"))
node_email["Email service"]

node_visitor -->|"submits application"| node_application_handler
node_application_handler -->|"loads event"| node_event_data
node_application_handler -->|"reads and saves"| node_location
node_application_handler -->|"saves application"| node_billboard
node_application_handler -->|"saves application"| node_sale
node_application_handler -->|"sends confirmation"| node_email

click node_application_handler "https://github.com/tonyflury/garagesale/blob/master/common/application.py"
click node_event_data "https://github.com/tonyflury/garagesale/blob/master/GarageSale/models.py"
click node_location "https://github.com/tonyflury/garagesale/blob/master/Location/models.py"
click node_billboard "https://github.com/tonyflury/garagesale/blob/master/Billboard/models.py"
click node_sale "https://github.com/tonyflury/garagesale/blob/master/SaleLocation/models.py"
click node_billboard_views "https://github.com/tonyflury/garagesale/blob/master/Billboard/views.py"
click node_sale_views "https://github.com/tonyflury/garagesale/blob/master/SaleLocation/views.py"
click node_map "https://github.com/tonyflury/garagesale/blob/master/DjangoGoogleMap/views.py"
click node_craft "https://github.com/tonyflury/garagesale/blob/master/CraftMarket/views.py"
click node_news "https://github.com/tonyflury/garagesale/blob/master/News/views.py"
click node_sponsors "https://github.com/tonyflury/garagesale/blob/master/Sponsors/views.py"
click node_team_pages "https://github.com/tonyflury/garagesale/blob/master/team_pages/views.py"
click node_accounts "https://github.com/tonyflury/garagesale/blob/master/Accounts/views/views.py"
click node_account_reports "https://github.com/tonyflury/garagesale/blob/master/Accounts/views/reports.py"
click node_user_management "https://github.com/tonyflury/garagesale/blob/master/user_management/views.py"
click node_user_manager "https://github.com/tonyflury/garagesale/blob/master/user_management/managers.py"
click node_drive "https://github.com/tonyflury/garagesale/blob/master/GoogleDrive/services/google_drive.py"

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_event_data toneBlue
class node_application_handler,node_location,node_billboard,node_sale,node_billboard_views,node_sale_views toneAmber
class node_map,node_craft,node_news,node_sponsors,node_team_pages toneMint
class node_accounts,node_account_reports,node_user_management,node_user_manager,node_drive toneRose
class node_visitor,node_email toneIndigo
```

## Components

### Event site

- [Event data](https://github.com/tonyflury/garagesale/blob/master/GarageSale/models.py): `GarageSale/models.py`

### Event applications

- [Application workflow](https://github.com/tonyflury/garagesale/blob/master/common/application.py): `common/application.py`
- [User location](https://github.com/tonyflury/garagesale/blob/master/Location/models.py): `Location/models.py`
- [Billboard applications](https://github.com/tonyflury/garagesale/blob/master/Billboard/models.py): `Billboard/models.py`
- [Sale registrations](https://github.com/tonyflury/garagesale/blob/master/SaleLocation/models.py): `SaleLocation/models.py`
- [Billboard views](https://github.com/tonyflury/garagesale/blob/master/Billboard/views.py): `Billboard/views.py`
- [Sale views](https://github.com/tonyflury/garagesale/blob/master/SaleLocation/views.py): `SaleLocation/views.py`

### Community features

- [Location maps](https://github.com/tonyflury/garagesale/blob/master/DjangoGoogleMap/views.py): `DjangoGoogleMap/views.py`
- [Craft market](https://github.com/tonyflury/garagesale/blob/master/CraftMarket/views.py): `CraftMarket/views.py`
- [News](https://github.com/tonyflury/garagesale/blob/master/News/views.py): `News/views.py`
- [Sponsors](https://github.com/tonyflury/garagesale/blob/master/Sponsors/views.py): `Sponsors/views.py`
- [Team pages](https://github.com/tonyflury/garagesale/blob/master/team_pages/views.py): `team_pages/views.py`

### Accounts and storage

- [Accounts and reports](https://github.com/tonyflury/garagesale/blob/master/Accounts/views/views.py): `Accounts/views/views.py`
- [Financial reports](https://github.com/tonyflury/garagesale/blob/master/Accounts/views/reports.py): `Accounts/views/reports.py`
- [User management](https://github.com/tonyflury/garagesale/blob/master/user_management/views.py): `user_management/views.py`
- [User creation](https://github.com/tonyflury/garagesale/blob/master/user_management/managers.py): `user_management/managers.py`
- [Google Drive integration](https://github.com/tonyflury/garagesale/blob/master/GoogleDrive/services/google_drive.py): `GoogleDrive/services/google_drive.py`

### Other components

- **Visitor**
- **Email service**

## Connections

- Visitor → Application workflow: submits application
- Application workflow → Event data: loads event
- Application workflow → User location: reads and saves
- Application workflow → Billboard applications: saves application
- Application workflow → Sale registrations: saves application
- Application workflow → Email service: sends confirmation
