2.6 KiB
2.6 KiB
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.