No description
Better Auth Configuration: - Database adapter for PostgreSQL with custom schema mapping - Email/password authentication enabled - 7-day session expiration with 24-hour update frequency - Custom field mappings for auth_user, auth_session, auth_account tables - Server-side auth helpers: getSession(), requireAuth() - Client-side React hooks: signIn, signOut, signUp, useSession Authentication Pages: - /login: Email/password login with error handling - /forgot-password: Password reset request flow - /account-request: New user registration form - Captures: name, email, phone, company, Epicor ID, message - Creates quest_account_request record for admin approval - Success confirmation with next steps API Routes: - /api/auth/[...all]: Better Auth handler for all auth operations - /api/account-request: Account request submission endpoint UI Components: - Added Textarea component from shadcn/ui - Form validation and loading states - Toast notifications for user feedback - Responsive card-based layouts Session management and enhanced context (company, permissions) will be added in F-008 middleware implementation. 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