How jkwhar/repairtracker works
RepairTracker is an internal Chromebook repair-ticket web app: technicians sign in, look up a device by barcode or query, review its repair history, and record a repair with outcomes, parts, and optional photos. Admins manage users, devices, parts, and outcomes, and can inspect reports and audit activity. The frontend uses PocketBase for authentication, records, and file storage; PocketBase hooks write audit entries. The README describes the stack and intended capabilities, while sampled source confirms selected auth, admin, and audit behavior; unsampled wiring is represented only where the tree and product description support it.
Main entry points: pocketbase.ts PocketBase client · layout.tsx Admin console · RepairForm.tsx Repair intake · repairs.ts Repair API
Components 32
Technician workflow
- Sign in
frontend/src/app/login/page.tsx - Repair workspace
frontend/src/app/repairs/page.tsx - Barcode scan
frontend/src/components/repair/BarcodeScanner.tsx - Repair history
frontend/src/components/repair/RepairHistory.tsx - Repair intake
frontend/src/components/repair/RepairForm.tsx - Outcome selection
frontend/src/components/repair/OutcomeSelector.tsx - Parts selection
frontend/src/components/repair/PartSelector.tsx - Photo upload
frontend/src/components/repair/PhotoUpload.tsx
Administration
- Admin console
frontend/src/app/admin/layout.tsx - User management
frontend/src/components/admin/UserManager.tsx - Parts inventory
frontend/src/components/admin/PartManager.tsx - Outcome management
frontend/src/components/admin/OutcomeManager.tsx - Device management
frontend/src/app/admin/devices/page.tsx - CSV import
frontend/src/components/admin/CsvUploader.tsx - Reports
frontend/src/app/admin/reports/page.tsx - Audit review
frontend/src/app/admin/audit/page.tsx
Frontend services
- Auth state
frontend/src/hooks/useAuth.ts - Authentication
frontend/src/lib/auth.ts - Scan handling
frontend/src/hooks/useBarcodeScanner.ts - Device lookup
frontend/src/hooks/useDevice.ts - Device API
frontend/src/lib/api/devices.ts - Repair data
frontend/src/hooks/useRepairs.ts - Repair API
frontend/src/lib/api/repairs.ts - Users API
frontend/src/lib/api/users.ts - Parts API
frontend/src/lib/api/parts.ts - Outcomes API
frontend/src/lib/api/outcomes.ts - Audit API
frontend/src/lib/api/audit.ts - PocketBase client
frontend/src/lib/pocketbase.ts
PocketBase backend
- PocketBase service
- Audit hooks
pocketbase/pb_hooks/audit.pb.js - Photo storage
Other components
- Technician
Connections 41
- Technician → Sign in: signs in
- Sign in → Auth state: submits credentials
- Auth state → Authentication: calls
- Authentication → PocketBase client: uses
- PocketBase client → PocketBase service: authenticates
- Technician → Repair workspace: opens repairs
- Repair workspace → Barcode scan: uses
- Barcode scan → Scan handling: handles input
- Repair workspace → Device lookup: looks up device
- Device lookup → Device API: calls
- Device API → PocketBase client: queries
- Repair workspace → Repair history: shows history
- Repair history → Repair data: loads repairs
- Repair data → Repair API: calls
- Repair API → PocketBase client: reads repairs
- Technician → Repair intake: records repair
- Repair intake → Outcome selection: selects outcome
- Repair intake → Parts selection: selects parts
- Repair intake → Photo upload: attaches photos
- Repair intake → Repair API: saves repair
- Repair API → PocketBase client: writes repair
- Repair API → Photo storage: uploads files
- Technician → Admin console: opens admin
- Admin console → User management: manages users
- Admin console → Parts inventory: manages stock
- Admin console → Outcome management: manages outcomes
- Admin console → Device management: manages devices
- Admin console → CSV import: imports data
- Admin console → Reports: views reports
- Admin console → Audit review: reviews activity
- User management → Users API: calls
- Parts inventory → Parts API: calls
- Outcome management → Outcomes API: calls
- Users API → PocketBase client: uses
- Parts API → PocketBase client: uses
- Outcomes API → PocketBase client: uses
- Audit review → Audit API: loads logs
- Audit API → PocketBase client: uses
- PocketBase client → PocketBase service: accesses records
- PocketBase service → Audit hooks: dispatches events
- Audit hooks → PocketBase service: writes audit logs