Skip to content
Back to skills

A3 Architecture

ASecurity

Complete architecture reference for the A3 insurance platform — file locations, data flow, conventions, microservice map, and fullstack patterns

  • 71 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 27, 2026
businesstypescriptrustgosqlnodegcpterraformgitapidatabase

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add FDU-INS/Insurance-Skills --skill a3-architecture --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of A3 Architecture?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for A3 Architecture
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fdu-ins-a3-architecture/badge)](https://www.skillsdirectory.com/skills/fdu-ins-a3-architecture)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: a3-architecture
description: Complete architecture reference for the A3 insurance platform — file locations, data flow, conventions, microservice map, and fullstack patterns
version: 0.1.0
---

# A3 Platform Architecture Reference

## Overview

A3 is a full-featured SaaS platform for insurance agent management built by Trusted American Insurance Agency. It provides CRM, enrollment management, commission tracking, compliance tools, and agent support.

## Tech Stack

| Layer | Technology |
|-------|-----------|
| Frontend | Ember.js 6.9 (Octane) with TypeScript, Glimmer GTS components |
| Build | Vite + Embroider |
| Styling | Tailwind CSS 4 + Bootstrap 5 |
| State | WarpDrive (next-gen Ember Data) |
| Database | Cloud Firestore (NoSQL) |
| Realtime DB | Firebase Realtime Database (status tracking) |
| File Storage | Google Cloud Storage |
| Auth | Firebase Authentication + ember-simple-auth |
| Backend | Google Cloud Functions (Node.js 22, TypeScript) |
| Search | Algolia |
| Payments | Stripe |
| Email | Mailgun |
| Documents | PandaDoc |
| CRM Sync | HubSpot, Salesforce |
| Error Tracking | Sentry |
| Customer Support | Intercom |
| State Machines | XState 5 |
| Charts | Highcharts 12 |
| Maps | Google Maps |
| Deployment | Netlify (frontend), GCP (backend) |
| IaC | Terraform |

## Directory Structure

```
A3/
├── app/                          # Ember.js frontend application
│   ├── abilities/     (101)      # ember-can permission definitions
│   ├── adapters/      (11)       # Data source adapters
│   ├── builders/      (2)        # API call builders
│   ├── components/    (436)      # Glimmer GTS components
│   ├── config/        (5)        # App configuration
│   ├── controllers/   (varies)   # Controllers (only for query params)
│   ├── handlers/      (2)        # Request handlers
│   ├── helpers/       (2)        # Template helpers
│   ├── models/        (136)      # Ember Data models
│   ├── modifiers/     (1)        # DOM modifiers
│   ├── routes/        (333)      # Route definitions
│   ├── serializers/   (16)       # Data serializers
│   ├── services/      (12)       # Application services
│   ├── session-stores/(1)        # Auth session storage
│   ├── styles/        (1)        # Tailwind CSS entry point
│   ├── templates/     (158)      # GTS route templates
│   ├── transforms/    (5)        # Attribute transforms
│   └── utils/         (19)       # Utility functions
├── functions/                    # Google Cloud Functions backend
│   ├── src/
│   │   ├── auth/                 # Auth triggers
│   │   ├── database/             # Realtime DB triggers
│   │   ├── firestore/            # Firestore document triggers
│   │   ├── https/                # HTTPS endpoints
│   │   ├── pubsub/               # Pub/Sub triggers
│   │   ├── storage/              # Cloud Storage triggers
│   │   ├── models/               # TypeScript interfaces
│   │   ├── types/                # Type definitions
│   │   └── utils/                # Shared utilities
│   └── lib/                      # Compiled output
├── tests/                        # Test suites (807 files)
│   ├── acceptance/               # User flow tests
│   ├── integration/              # Component tests
│   └── unit/                     # Logic tests
├── translations/                 # i18n files
├── types/                        # Global TypeScript types
├── algolia/                      # Algolia search config
├── terraform/                    # Infrastructure as Code
├── emulator-data/                # Firebase emulator snapshots
├── config/                       # Ember.js config
├── docs/                         # Documentation
└── public/                       # Static assets
```

## Data Flow Architecture

### Read Flow (Frontend → Firestore)
```
User visits route
  → Route.model() calls store.query() or store.findRecord()
    → WarpDrive Store dispatches to adapter
      → CloudFirestoreAdapter reads from Firestore
        → CloudFirestoreSerializer normalizes response
          → Store caches record
            → GTS template renders via @model
              → Glimmer component displays data
```

### Write Flow (Frontend → Firestore → Triggers)
```
User submits form
  → Component @action or ember-concurrency task
    → model.save() via WarpDrive Store
      → CloudFirestoreAdapter writes to Firestore
        → Firestore document created/updated
          → Cloud Function trigger fires
            → Side effects: email, Algolia sync, audit trail, webhooks
              → Real-time listener updates frontend Store
                → Component re-renders with updated data
```

### Third-Party Integration Flow
```
Frontend component → REST adapter (adapter/firebase.ts)
  → Cloud Function HTTPS endpoint
    → Third-party API (Stripe, Mailgun, PandaDoc, etc.)
      → Response → Firestore document update
        → Real-time listener → Frontend update
```

## Domain Model Map

### Core Entities
- **Agency** — Insurance agency (primary organizational unit)
- **User** — Platform user (agent, admin, super admin)
- **Client** — Contact/person being insured
- **Carrier** — Insurance carrier company

### Business Entities
- **Enrollment** — Insurance enrollment record
- **Contract** — Agent-carrier contract
- **Group** — Group insurance plan
- **Quote** — Insurance quote
- **Membership** — Client membership

### Financial
- **Statement** — Commission statement
- **Transaction** — Financial transaction

### Communication
- **Activity** — Audit trail / activity log
- **Message** — Internal messaging
- **Ticket** — Support ticket
- **Inquiry** — Lead inquiry

### Associations
- **Affiliation** — Agent-agency relationship
- **License** — Agent license record
- **Event** — Calendar/marketing event

### Attachment Patterns
Most entities have associated:
- `*-file` — File attachments (stored in Cloud Storage)
- `*-note` — Text notes
- `activity` — Audit trail entries

## Route Map

### Public Routes
| Route | Purpose |
|-------|---------|
| `/login` | User authentication |
| `/register` | New user registration |
| `/reset` | Password reset |
| `/onboarding` | Post-registration setup |
| `/client/:id` | Public client profile |
| `/client-form/:id` | Public client form |
| `/order/:id` | Order page |
| `/session` | Session management |

### Authenticated Routes (`/a3/...`)
| Route | Purpose |
|-------|---------|
| `/a3` | Dashboard |
| `/a3/clients` | Client (contact) management |
| `/a3/enrollments` | Enrollment management |
| `/a3/groups` | Group management |
| `/a3/agencies` | Agency management |
| `/a3/carriers` | Carrier information |
| `/a3/contracting` | Contract management |
| `/a3/statements` | Commission statements |
| `/a3/settings` | User settings |
| `/a3/tools` | Quote tools |
| `/a3/calendar` | Calendar |
| `/a3/leads` | Lead management |
| `/a3/notifications` | Notifications |
| `/a3/search` | Global search |
| `/a3/support` | Support tickets |
| `/a3/resources` | Resources |
| `/a3/knowledge-hub` | Knowledge base |
| `/a3/marketing-events` | Marketing events |
| `/a3/readiness-report` | Readiness report |
| `/a3/services` | Services (websites) |

### Admin Routes (`/admin/...`)
| Route | Purpose |
|-------|---------|
| `/admin/accounting` | Financial management |
| `/admin/agencies` | Agency administration |
| `/admin/carriers` | Carrier management |
| `/admin/clients` | Client administration |
| `/admin/contracting` | Contract admin |
| `/admin/enrollments` | Enrollment admin |
| `/admin/enrollment-issues` | Issue tracking |
| `/admin/events` | Event management |
| `/admin/groups` | Group admin |
| `/admin/inquiries` | Lead/inquiry management |
| `/admin/marketing` | Marketing tools |
| `/admin/messages` | Messaging |
| `/admin/notifications` | Notification management |
| `/admin/products` | Product management |
| `/admin/reporting` | Reports |
| `/admin/search` | Admin search |
| `/admin/settings` | System settings |
| `/admin/tickets` | Support ticket admin |
| `/admin/users` | User management |

## Service Map

| Service | File | Purpose |
|---------|------|---------|
| `store` | `app/services/store.ts` | WarpDrive data store with custom aggregation methods |
| `session` | `app/services/session.ts` | Firebase Auth + MFA + ember-simple-auth |
| `current-user` | `app/services/current-user.ts` | Loaded user data and permissions |
| `search` | `app/services/search.ts` | Algolia search integration |
| `pdf` | `app/services/pdf.ts` | PDF generation/manipulation |
| `csv` | `app/services/csv.ts` | CSV export |
| `xlsx` | `app/services/xlsx.ts` | Excel export |
| `analytics` | `app/services/analytics.ts` | Event tracking |
| `tour` | `app/services/tour.ts` | Shepherd.js onboarding tour |
| `recent-records` | `app/services/recent-records.ts` | Recently viewed record tracking |

## Key Configuration Files

| File | Purpose |
|------|---------|
| `app/config/environment.js` | Firebase config, API endpoints, feature flags |
| `firebase.json` | Firebase project config, emulator settings |
| `firestore.rules` | Firestore security rules (~101KB) |
| `firestore.indexes.json` | Composite indexes (~235KB) |
| `storage.rules` | Cloud Storage security rules |
| `database.rules.json` | Realtime Database rules |
| `ember-cli-build.js` | Build config (Embroider, split routes) |
| `vite.config.mjs` | Vite build config (Tailwind, PWA) |
| `app/router.ts` | Route definitions |
| `tsconfig.json` | TypeScript configuration |
| `netlify.toml` | Netlify deployment config |

## Development Environment

- **Frontend dev**: `ember serve` or `vite dev`
- **Backend dev**: Firebase Emulator Suite (auth, firestore, functions, storage, pubsub)
- **Emulator data**: `emulator-data/` contains snapshots for seeding
- **Tests**: `ember test` (runs in browser via testem)
- **Linting**: ESLint, Prettier, Stylelint, ember-template-lint

## Further Investigation Links

When you need deeper knowledge about specific areas:

- **Ember.js**: https://guides.emberjs.com/release/
- **Glimmer Components**: https://guides.emberjs.com/release/components/
- **WarpDrive/Ember Data**: https://api.emberjs.com/ember-data/release
- **Firestore**: https://firebase.google.com/docs/firestore
- **Cloud Functions**: https://firebase.google.com/docs/functions
- **Tailwind CSS**: https://tailwindcss.com/docs
- **ember-cloud-firestore-adapter**: https://github.com/nickersk/ember-cloud-firestore-adapter
- **ember-simple-auth**: https://ember-simple-auth.com/
- **ember-can**: https://github.com/minutebase/ember-can
- **ember-concurrency**: https://ember-concurrency.com/
- **XState**: https://stately.ai/docs

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.