COLORJET_ERP_UNIFIED_PLATFORM_v2.2.0_FIREBASE_SYNC_READY/ ├── assets/ │ └── original/ │ └── COLORJET-original-logo.jpg ├── backend/ │ ├── dist/ │ │ ├── middleware/ │ │ │ ├── auth.js │ │ │ └── auth.js.map │ │ ├── routes/ │ │ │ ├── auth.js │ │ │ ├── auth.js.map │ │ │ ├── business.js │ │ │ ├── business.js.map │ │ │ ├── customers.js │ │ │ ├── customers.js.map │ │ │ ├── dashboard.js │ │ │ ├── dashboard.js.map │ │ │ ├── engineers.js │ │ │ ├── engineers.js.map │ │ │ ├── enterprise.js │ │ │ ├── enterprise.js.map │ │ │ ├── health.js │ │ │ ├── health.js.map │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── notifications.js │ │ │ ├── notifications.js.map │ │ │ ├── stock.js │ │ │ ├── stock.js.map │ │ │ ├── sync.js │ │ │ ├── sync.js.map │ │ │ ├── tickets.js │ │ │ ├── tickets.js.map │ │ │ ├── uploads.js │ │ │ ├── uploads.js.map │ │ │ ├── users.js │ │ │ └── users.js.map │ │ ├── scripts/ │ │ │ ├── create-owner.js │ │ │ ├── create-owner.js.map │ │ │ ├── import-colorjet-backup.js │ │ │ ├── import-colorjet-backup.js.map │ │ │ ├── import-item-ledger.js │ │ │ └── import-item-ledger.js.map │ │ ├── services/ │ │ │ ├── audit.js │ │ │ ├── audit.js.map │ │ │ ├── notification-delivery.js │ │ │ ├── notification-delivery.js.map │ │ │ ├── push.js │ │ │ ├── push.js.map │ │ │ ├── tickets.js │ │ │ └── tickets.js.map │ │ ├── utils/ │ │ │ ├── http.js │ │ │ └── http.js.map │ │ ├── app.js │ │ ├── app.js.map │ │ ├── config.js │ │ ├── config.js.map │ │ ├── db.js │ │ ├── db.js.map │ │ ├── index.js │ │ ├── index.js.map │ │ ├── security.js │ │ ├── security.js.map │ │ ├── socket.js │ │ ├── socket.js.map │ │ ├── types.js │ │ └── types.js.map │ ├── src/ │ │ ├── middleware/ │ │ │ └── auth.ts │ │ ├── routes/ │ │ │ ├── auth.ts │ │ │ ├── business.ts │ │ │ ├── customers.ts │ │ │ ├── dashboard.ts │ │ │ ├── engineers.ts │ │ │ ├── enterprise.ts │ │ │ ├── health.ts │ │ │ ├── index.ts │ │ │ ├── notifications.ts │ │ │ ├── stock.ts │ │ │ ├── sync.ts │ │ │ ├── tickets.ts │ │ │ ├── uploads.ts │ │ │ └── users.ts │ │ ├── scripts/ │ │ │ ├── create-owner.ts │ │ │ ├── import-colorjet-backup.ts │ │ │ └── import-item-ledger.ts │ │ ├── services/ │ │ │ ├── audit.ts │ │ │ ├── notification-delivery.ts │ │ │ ├── push.ts │ │ │ └── tickets.ts │ │ ├── utils/ │ │ │ └── http.ts │ │ ├── app.ts │ │ ├── config.ts │ │ ├── db.ts │ │ ├── index.ts │ │ ├── security.ts │ │ ├── socket.ts │ │ └── types.ts │ ├── Dockerfile │ ├── package-lock.json │ ├── package.json │ └── tsconfig.json ├── cpanel-compat/ │ └── README.md ├── data/ │ └── migration-input/ │ ├── colorjet-item-ledger-2026-07-02.csv │ ├── colorjet-service-pro-backup-2026-07-02.json │ └── README.md ├── database/ │ ├── 0001_schema_postgres.sql │ ├── 0002_role_permissions.sql │ ├── 0003_enterprise_required_tables.sql │ └── 0004_push_notification_devices.sql ├── deploy/ │ └── nginx/ │ └── default.conf ├── docker/ │ └── nginx/ │ └── colorjet.conf ├── docs/ │ ├── API_DOCUMENTATION.md │ ├── BUG_FIX_LOG.md │ ├── BUILD_STATUS.json │ ├── DATA_MIGRATION_GUIDE.md │ ├── DATA_MIGRATION_GUIDE_BN.md │ ├── DATABASE_SCHEMA.md │ ├── DEPLOYMENT_VPS_BN.md │ ├── FIREBASE_ANDROID_INTEGRATION.md │ ├── IMPLEMENTATION_STATUS_BN.md │ ├── KPI_DEFINITIONS.md │ ├── MOBILE_BUILD_GUIDE.md │ ├── OPENAPI_MINIMAL.json │ ├── PLAY_CONSOLE_RELEASE_GUIDE.md │ ├── PLAY_CONSOLE_RELEASE_GUIDE_BN.md │ ├── README_DEPLOYMENT.md │ ├── ROLE_PERMISSION_MATRIX.md │ ├── ROUTE_MAP.md │ ├── SOURCE_AUDIT_BN.md │ ├── SOURCE_EXTRACTION_INDEX.md │ ├── SYNC_ARCHITECTURE.md │ └── TEST_RESULTS.md ├── mobile-engineer/ │ ├── app/ │ │ ├── (tabs)/ │ │ │ ├── _layout.tsx │ │ │ ├── home.tsx │ │ │ ├── profile.tsx │ │ │ ├── schedule.tsx │ │ │ └── tickets.tsx │ │ ├── execute/ │ │ │ └── [id].tsx │ │ ├── ticket/ │ │ │ └── [id].tsx │ │ ├── _layout.tsx │ │ ├── change-password.tsx │ │ ├── index.tsx │ │ └── login.tsx │ ├── assets/ │ │ └── images/ │ │ └── COLORJET-original-logo.jpg │ ├── components/ │ │ ├── SignaturePad.tsx │ │ └── UI.tsx │ ├── src/ │ │ ├── api.ts │ │ ├── config.ts │ │ ├── notifications.ts │ │ ├── offlineQueue.ts │ │ ├── session.ts │ │ └── theme.ts │ ├── .env.example │ ├── app.json │ ├── eas.json │ ├── google-services.json │ ├── package-lock.json │ ├── package.json │ └── tsconfig.json ├── scripts/ │ ├── quality_gate.sh │ ├── validate_firebase_config.py │ ├── validate_project.py │ └── vps_deploy.sh ├── shared-types/ │ └── colorjet.ts ├── source-audit/ │ └── source_inventory.json ├── web-admin/ │ ├── dist/ │ │ ├── assets/ │ │ │ ├── COLORJET-original-logo.jpg │ │ │ ├── index-1jRn6IPt.js │ │ │ └── index-DIc3KnhJ.css │ │ └── index.html │ ├── public/ │ │ └── assets/ │ │ └── COLORJET-original-logo.jpg │ ├── src/ │ │ ├── api.ts │ │ ├── App.tsx │ │ ├── main.tsx │ │ ├── styles.css │ │ └── vite-env.d.ts │ ├── Dockerfile │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ ├── tsconfig.node.tsbuildinfo │ ├── tsconfig.tsbuildinfo │ ├── vite.config.d.ts │ ├── vite.config.js │ └── vite.config.ts ├── .env.example ├── .gitignore ├── docker-compose.yml ├── ENV.example ├── package.json ├── README_BN.md └── README_DEPLOYMENT.md