No description
Quest Domain Complete (F-004): - quest_account_request: new user registration requests - quest_notification + alert reads: notification/alert system - quest_email_event + subscriptions: email event management - quest_email_log: email tracking - quest_plant + inventory_type + inventory_plant: plant/inventory configuration - quest_processed_order_acknowledgement_email: duplicate prevention Remaining Domains Complete (F-005): Shipment Requests: - ship_request + ship_request_detail: shipment request cart workflow Allocation Requests: - alloc_request + alloc_request_detail + alloc_plant: coil allocation workflow Invoice Management: - inv_upload + inv_upload_entry + inv_upload_status: invoice upload/processing Finance/AP: - finance_ap_check_processing_batch + status: AP check processing Paint Schedule: - paint_plant + paint_line + paint_line_type + paint_plant_line + paint_schedule Documentation: - doc_category + doc_article + doc_article_permission_group: knowledge base Wave/EDI: - wave_process + wave_process_history: EDI processing Task Scheduler: - lts_task + lts_task_type + lts_task_schedule + lts_task_execution Total: 60+ tables, 600+ columns across all domains. All migrations applied successfully. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| .vscode | ||
| docs | ||
| prisma | ||
| src | ||
| tests | ||
| traefik | ||
| .dockerignore | ||
| .env.example | ||
| .eslintrc.json | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc | ||
| CLAUDE.md | ||
| components.json | ||
| create-files.sh | ||
| docker-compose.yml | ||
| Dockerfile | ||
| init-databases.sh | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| postcss.config.mjs | ||
| README.md | ||
| setup.sh | ||
| tailwind.config.ts | ||
| TASKS.md | ||
| tsconfig.json | ||
| vitest.config.ts | ||
Vorteq Quest Portal
Modern customer portal for Vorteq Coil, built with Next.js 15, TypeScript, and PostgreSQL.
Tech Stack
- Framework: Next.js 15 with App Router
- Language: TypeScript (strict mode)
- Database (App): PostgreSQL 16 with Prisma ORM
- Database (Epicor): SQL Server (read-only via mssql package)
- Auth: Better Auth
- UI: shadcn/ui + Tailwind CSS
- Cache/Queue: Redis 7 + BullMQ
- Email: Microsoft Graph API
- Infrastructure: Docker + Traefik + Forgejo CI/CD
Getting Started
Prerequisites
- Node.js 22 LTS
- Docker & Docker Compose
- Access to Epicor SQL Server
Development Setup
-
Install dependencies:
npm install -
Set up environment variables:
cp .env.example .env # Edit .env with your configuration -
Initialize database:
npm run db:push npm run db:seed -
Run development server:
npm run dev
Available Scripts
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run typecheck- Run TypeScript compiler checknpm test- Run unit testsnpm run test:e2e- Run E2E testsnpm run db:push- Push Prisma schema to databasenpm run db:migrate- Create migrationnpm run db:seed- Seed database
Project Structure
See CLAUDE.md for detailed project structure and coding conventions.
Documentation
- Project Instructions:
CLAUDE.md - Task Tracking:
TASKS.md - PRD:
docs/Vorteq_Quest_PRD_v1.0.docx - Legacy Documentation:
docs/directory
Infrastructure
- Production: https://quest.vorteq.wulf.cloud
- Development: https://dev.quest.vorteq.wulf.cloud
- Testing: https://testing.vorteq.wulf.cloud
- Traefik Dashboard: https://traefik.vorteq.wulf.cloud
License
Proprietary - Vorteq Coil