interview-assistant/package.json
Interview Assistant Developer 326a4aaa29 Initial commit: Real-Time Interview Assistant with Authelia Authentication
🎯 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>
2025-09-17 15:16:13 +00:00

66 lines
1.7 KiB
JSON

{
"name": "interview-assistant",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test",
"e2e": "ng e2e",
"cypress:open": "cypress open",
"cypress:run": "cypress run"
},
"prettier": {
"printWidth": 100,
"singleQuote": true,
"overrides": [
{
"files": "*.html",
"options": {
"parser": "angular"
}
}
]
},
"private": true,
"dependencies": {
"@angular/common": "^20.3.0",
"@angular/compiler": "^20.3.0",
"@angular/core": "^20.3.0",
"@angular/forms": "^20.3.0",
"@angular/platform-browser": "^20.3.0",
"@angular/router": "^20.3.0",
"dexie": "^4.2.0",
"pdfjs-dist": "^5.4.149",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "~0.15.0"
},
"devDependencies": {
"@angular-eslint/eslint-plugin": "^20.3.0",
"@angular-eslint/eslint-plugin-template": "^20.3.0",
"@angular-eslint/template-parser": "^20.3.0",
"@angular/build": "^20.3.1",
"@angular/cli": "^20.3.1",
"@angular/compiler-cli": "^20.3.0",
"@cypress/schematic": "^4.1.2",
"@types/dom-speech-recognition": "^0.0.6",
"@types/jasmine": "~5.1.0",
"@typescript-eslint/eslint-plugin": "^8.44.0",
"@typescript-eslint/parser": "^8.44.0",
"cypress": "^15.2.0",
"eslint": "^9.35.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.4",
"jasmine-core": "~5.9.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"prettier": "^3.6.2",
"typescript": "~5.9.2"
}
}