49 lines
2.6 KiB
Markdown
49 lines
2.6 KiB
Markdown
# Project Overview
|
|
|
|
ImEX RPS is a desktop repair performance system for body shops. It imports estimating-system files, decodes estimates into jobs and joblines, stores and reads them through Hasura GraphQL, and gives users workflows for job review, reporting, audit, scan/import, settings, admin maintenance, updates, and estimate scrubbing.
|
|
|
|
## Product Concepts
|
|
|
|
- Bodyshop: The shop/account a signed-in user can access.
|
|
- User association: A user is linked to one or more bodyshops through Hasura data.
|
|
- Job: A repair estimate/claim. Jobs contain claim number, owner/customer fields, vehicle information, insurer, close/loss dates, totals, rates, group data, flags, and related joblines.
|
|
- Jobline: A decoded estimate line. Joblines contain part/labor data, pricing deltas, ignore flags, ruleset-derived booleans, and alert metadata.
|
|
- Targets/groupings: Config data used to calculate target percentages and vehicle group eligibility.
|
|
- Notifications: Hasura-backed shop/user notifications shown in the app.
|
|
- Watch paths: Local folders where Electron watches for estimate files.
|
|
- Scan: Manual folder scan for estimate files.
|
|
- Audit: Spreadsheet-driven workflow comparing claim data against cached jobs.
|
|
- Estimate scrubber: External API workflow that sends estimate JSON and opens/sends scrub reports.
|
|
|
|
## Main User Workflows
|
|
|
|
- Sign in with Firebase auth.
|
|
- Load user/bodyshop/notifications from Hasura after auth.
|
|
- Configure watched folders and shop settings.
|
|
- Watch or scan folders for estimate files.
|
|
- Decode estimates in Electron main process.
|
|
- Upsert jobs/joblines through renderer GraphQL helpers.
|
|
- Review jobs and joblines in the Jobs page.
|
|
- Search and paginate jobs.
|
|
- Generate reporting and scorecards over date ranges.
|
|
- Run audits from selected spreadsheets.
|
|
- Send eligible estimates to the estimate scrubber service.
|
|
- Receive update notices through electron-updater/S3 publishing.
|
|
|
|
## External Systems
|
|
|
|
- Hasura GraphQL/Postgres: Primary app data store.
|
|
- Firebase: Authentication.
|
|
- S3 updater bucket: Electron auto-update publishing target.
|
|
- Sentry: Renderer and main-process error telemetry.
|
|
- Amplitude: Main-process analytics through IPC.
|
|
- Estimate scrubber API: External estimate validation/report flow.
|
|
- Local file system: Estimate file watcher, scan, and DBF decoding.
|
|
|
|
## Legacy Context
|
|
|
|
The repository started from Create React App but now uses Vite. Some docs and comments are old. Prefer `package.json` scripts and current code over README boilerplate.
|
|
|
|
The app uses a mixture of older class-era Redux patterns and current library versions. Preserve working conventions unless a task specifically asks for modernization.
|
|
|