# File Map

Use this as a quick locator before making changes.

## Root

- `package.json`: scripts, dependencies, electron-builder config, product metadata.
- `package-lock.json`: npm dependency lock.
- `vite.config.js`: Vite renderer config.
- `index.html`: Vite app HTML entry.
- `README.md`: old Create React App boilerplate; partially stale.
- `Usage.md`: release usage notes; ignored by git but present.
- `deployment.md`: deployment note; very terse.
- `update-targets.md`: historical GraphQL target load example.
- `SGI.md`: SGI-related domain notes.
- `electron-builder.pack-check.cjs`: no-publish local packaging config for `npm run pack`.
- `.gitignore`: generated artifacts and local secret files.

## Electron

- `electron/main.js`: chooses source or bundled main process.
- `electron/main-src.js`: main process source of truth.
- `electron/preload.js`: chooses source or bundled preload.
- `electron/preload-src.js`: context bridge for IPC/logger.
- `electron/ipc-main-handler.js`: shared IPC registration.
- `electron/electron-store.js`: async ESM-compatible electron-store wrapper.
- `electron/analytics.js`: Amplitude analytics IPC.
- `electron/changelog.json`: versioned release notes.
- `electron/licenses.txt`: third-party notice content shown in the app.
- `electron/file-watcher/`: chokidar watcher and watcher IPC.
- `electron/file-scan/`: manual scan/delete estimate file logic and IPC.
- `electron/decoder/`: DBF estimate decoding and ruleset application.
- `electron/claims-clerk/`: line-level alert rules.
- `electron/audit/`: audit spreadsheet dialog/parsing IPC.
- `electron/estimate-scrubber/`: external estimate scrubber API integration.
- `electron/notification-wrapper/`: native notification helper.

## Renderer Entrypoints

- `src/index.jsx`: React root, Redux Provider, MemoryRouter, PersistGate, Sentry renderer.
- `src/App/App.jsx`: Apollo provider, AntD theme/app provider, auth check, top-level IPC side effects.
- `src/App/App.styles.scss`: app-level styles.
- `src/index.css`: global CSS.

## Renderer Components

- `src/components/pages/routes/routes.page.jsx`: authenticated app shell and routes.
- `src/components/pages/jobs/`: main jobs page.
- `src/components/pages/reporting/`: reporting page.
- `src/components/pages/audit/`: audit page.
- `src/components/pages/scan/`: scan page.
- `src/components/pages/settings/`: settings page.
- `src/components/pages/admin/`: admin page.
- `src/components/pages/sign-in/`: sign-in page.
- `src/components/organisms/jobs-list-latest/`: latest jobs infinite list.
- `src/components/organisms/jobs-list-search/`: search jobs infinite list.
- `src/components/organisms/jobs-detail/`: selected job detail panel.
- `src/components/organisms/watcher-manager/`: file watcher controls.
- `src/components/organisms/shop-settings/`: shop settings workflows.
- `src/components/organisms/update-manager/`: updater UI.
- `src/components/organisms/notification-modal/`: notification UI.
- `src/components/molecules/jobs-lines-table/`: jobline table.
- `src/components/molecules/estimate-scruber-results/`: estimate scrubber results UI. Note the folder name contains `scruber`.
- `src/components/molecules/estimate-scrubber-button/`: estimate scrubber action.
- `src/components/molecules/reporting-dates/`: reporting date range picker.
- `src/components/templates/error-boundary.template.jsx`: app error boundary.
- `src/components/templates/ipc-upsert-job/`: IPC import/upsert template.

## State

- `src/redux/store.js`: store, saga middleware, logger, persist store.
- `src/redux/root.reducer.js`: combines reducers.
- `src/redux/root.saga.js`: combines sagas.
- `src/redux/application/`: watcher/app/update/selection/scrubber state.
- `src/redux/user/`: auth/bodyshop/targets/notifications/dark mode.
- `src/redux/reporting/`: report/audit/scorecard state.
- `src/redux/scan/`: scan state.

## GraphQL and Auth

- `src/graphql/GraphQLClient.js`: Apollo links, auth, retry, Sentry, cache policies.
- `src/graphql/jobs.queries.js`: job queries/mutations.
- `src/graphql/joblines.queries.js`: jobline mutations.
- `src/graphql/bodyshop.queries.js`: shop and notifications.
- `src/graphql/user.queries.js`: user upsert/auth lookup.
- `src/graphql/reporting.queries.js`: reporting queries.
- `src/graphql/notification.queries.js`: notification acceptance.
- `src/graphql/veh_group.queries.js`: vehicle groups.
- `src/firebase/firebase.utils.js`: Firebase auth/app setup.

## IPC

- `src/ipc.types.json`: canonical IPC channel map.
- `src/ipc.types.js`: ESM wrapper.
- `src/ipc.types.commonjs.js`: CommonJS wrapper.
- `src/ipc/ipc-renderer-handler.js`: central renderer IPC listeners.
- `src/ipc/ipc-estimate-utils.js`: estimate upsert and close-date GraphQL helpers.

## Utilities and Assets

- `src/util/antdFeedback.js`: context-safe AntD message/notification bridge.
- `src/util/day.js`: day/date setup.
- `src/util/CalculateJobRps.js`: RPS calculation utility.
- `src/util/GetJobTarget.js`: target calculation utility.
- `src/util/decimalPrecision.js`: numeric precision utility.
- `src/util/sorters.js`: table/list sort helpers.
- `src/assets/`: app logos/images.
- `src/icons/`: app icons by platform/size.
- `public/`: web app static files.

## Hasura and Firebase

- `hasura/config.yaml`: Hasura project config.
- `hasura/config.yaml.prod`: production Hasura config.
- `hasura/metadata/`: tracked Hasura metadata.
- `hasura/migrations/default/`: active SQL migrations.
- `hasura/migrations_backup/`: historical migration backup.
- `firebase/functions/`: Firebase functions project.
- `firebase/firebase.json`: Firebase config.

## Generated/Ignored

- `build/`: renderer production output.
- `dist-electron/`: bundled Electron main/preload output.
- `dist/`: electron-builder output.
- `node_modules/`: dependencies.

