🎯 Features implemented: - Multi-language speech recognition (EN, FR, ES, DE) - CV upload and parsing with regex-escaped skills extraction - Authelia authentication integration for n8n webhook - Complete n8n workflow for AI question generation - Real-time language switching with enhanced UI - Professional authentication modal with dual login options 🔧 Technical stack: - Angular 18 with standalone components and signals - TypeScript with strict typing and interfaces - Authelia session-based authentication - n8n workflow automation with OpenAI integration - PDF.js for CV text extraction - Web Speech API for voice recognition 🛠️ Infrastructure: - Secure authentication flow with proper error handling - Environment-based configuration for dev/prod - Comprehensive documentation and workflow templates - Clean project structure with proper git ignore rules 🔒 Security features: - Cookie-based session management with CORS - Protected n8n webhooks via Authelia - Graceful fallback to local processing - Secure redirect handling and session persistence 🚀 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
149 lines
4.0 KiB
JSON
149 lines
4.0 KiB
JSON
{
|
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
|
"version": 1,
|
|
"newProjectRoot": "projects",
|
|
"projects": {
|
|
"interview-assistant": {
|
|
"projectType": "application",
|
|
"schematics": {
|
|
"@schematics/angular:component": {
|
|
"style": "scss"
|
|
}
|
|
},
|
|
"root": "",
|
|
"sourceRoot": "src",
|
|
"prefix": "app",
|
|
"architect": {
|
|
"build": {
|
|
"builder": "@angular/build:application",
|
|
"options": {
|
|
"browser": "src/main.ts",
|
|
"polyfills": [
|
|
"zone.js"
|
|
],
|
|
"tsConfig": "tsconfig.app.json",
|
|
"inlineStyleLanguage": "scss",
|
|
"assets": [
|
|
{
|
|
"glob": "**/*",
|
|
"input": "public"
|
|
}
|
|
],
|
|
"styles": [
|
|
"src/styles.scss"
|
|
]
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"budgets": [
|
|
{
|
|
"type": "initial",
|
|
"maximumWarning": "500kB",
|
|
"maximumError": "1MB"
|
|
},
|
|
{
|
|
"type": "anyComponentStyle",
|
|
"maximumWarning": "4kB",
|
|
"maximumError": "8kB"
|
|
}
|
|
],
|
|
"outputHashing": "all"
|
|
},
|
|
"development": {
|
|
"optimization": false,
|
|
"extractLicenses": false,
|
|
"sourceMap": true
|
|
}
|
|
},
|
|
"defaultConfiguration": "production"
|
|
},
|
|
"serve": {
|
|
"builder": "@angular/build:dev-server",
|
|
"configurations": {
|
|
"production": {
|
|
"buildTarget": "interview-assistant:build:production"
|
|
},
|
|
"development": {
|
|
"buildTarget": "interview-assistant:build:development"
|
|
}
|
|
},
|
|
"defaultConfiguration": "development"
|
|
},
|
|
"extract-i18n": {
|
|
"builder": "@angular/build:extract-i18n"
|
|
},
|
|
"test": {
|
|
"builder": "@angular/build:karma",
|
|
"options": {
|
|
"polyfills": [
|
|
"zone.js",
|
|
"zone.js/testing"
|
|
],
|
|
"tsConfig": "tsconfig.spec.json",
|
|
"inlineStyleLanguage": "scss",
|
|
"assets": [
|
|
{
|
|
"glob": "**/*",
|
|
"input": "public"
|
|
}
|
|
],
|
|
"styles": [
|
|
"src/styles.scss"
|
|
]
|
|
}
|
|
},
|
|
"cypress-run": {
|
|
"builder": "@cypress/schematic:cypress",
|
|
"options": {
|
|
"devServerTarget": "interview-assistant:serve"
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"devServerTarget": "interview-assistant:serve:production"
|
|
}
|
|
}
|
|
},
|
|
"cypress-open": {
|
|
"builder": "@cypress/schematic:cypress",
|
|
"options": {
|
|
"watch": true,
|
|
"headless": false
|
|
}
|
|
},
|
|
"ct": {
|
|
"builder": "@cypress/schematic:cypress",
|
|
"options": {
|
|
"devServerTarget": "interview-assistant:serve",
|
|
"watch": true,
|
|
"headless": false,
|
|
"testingType": "component"
|
|
},
|
|
"configurations": {
|
|
"development": {
|
|
"devServerTarget": "interview-assistant:serve:development"
|
|
}
|
|
}
|
|
},
|
|
"e2e": {
|
|
"builder": "@cypress/schematic:cypress",
|
|
"options": {
|
|
"devServerTarget": "interview-assistant:serve",
|
|
"watch": true,
|
|
"headless": false
|
|
},
|
|
"configurations": {
|
|
"production": {
|
|
"devServerTarget": "interview-assistant:serve:production"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"cli": {
|
|
"schematicCollections": [
|
|
"@cypress/schematic",
|
|
"@schematics/angular"
|
|
]
|
|
}
|
|
} |