Commit Graph

62 Commits

Author SHA1 Message Date
jeremy bayse
d6e5b44e47 Admin: implementation of the 'is_selected' feature for candidates for interviews 2026-04-16 19:08:52 +02:00
jeremy bayse
c4ab5c97b2 Admin: Super Admin can bypass the 7-day AI analysis restriction 2026-04-16 18:55:53 +02:00
jeremy bayse
84a9c6bb14 Fix: New registered candidates visibility (profile creation and tenant scope adjustment) 2026-04-16 18:31:23 +02:00
jeremy bayse
957947cc0b fix: quiz questions not showing - reload quiz freshly in show(), fix v-if guard in QuizInterface 2026-04-14 19:55:05 +02:00
jeremy bayse
6e4eb62553 fix: bypass tenant scope in AttemptController::destroy - null quiz title caused 500 when admin deletes attempt 2026-04-14 19:51:06 +02:00
jeremy bayse
c74d8e14ec fix: null quiz crash in admin candidate show - load attempts.quiz withoutGlobalScopes + null guard in Vue template 2026-04-14 19:49:12 +02:00
jeremy bayse
e93a17f324 refactor: fix BelongsToTenant trait to exempt candidates globally - removes all withoutGlobalScopes() workarounds 2026-04-14 19:38:42 +02:00
jeremy bayse
49ee91c601 fix: bypass tenant scope in recalculateScore - null quiz when candidate finishes quiz 2026-04-14 19:35:26 +02:00
jeremy bayse
479a7e35d1 fix: bypass tenant scope in AttemptController::show - candidates (no tenant_id) were getting 404 on quiz start 2026-04-14 19:24:29 +02:00
jeremy bayse
de6938d2e6 fix: bypass BelongsToTenant global scope when loading candidate quizzes on dashboard - candidates have no tenant_id 2026-04-14 19:20:20 +02:00
jeremy bayse
91213cc371 fix: sync quizzes unconditionally - was not removing quizzes when quiz_ids was empty 2026-04-14 19:15:15 +02:00
jeremy bayse
af4502859b fix: QuizInterface crash on undefined text_content - add null guards and safe optional chaining 2026-04-14 19:09:58 +02:00
jeremy bayse
107e2d0a1d design: darken nav bar elements for high contrast - Dashboard and NavLink text fix 2026-04-14 19:08:06 +02:00
jeremy bayse
71672509b6 design: fix candidate layout with full light theme, no dark mode dependencies, high contrast throughout 2026-04-14 19:06:17 +02:00
jeremy bayse
351bdda2a1 design: complete UI harmonization with full dark mode support and high contrast for candidate dashboard 2026-04-14 19:02:38 +02:00
jeremy bayse
21d4aaee59 design: premium candidate dashboard with high contrast and better layout 2026-04-14 18:59:09 +02:00
jeremy bayse
ec1fe91b35 feat: link quizzes to job positions and filter candidate dashboard accordingly 2026-04-14 18:30:13 +02:00
jeremy bayse
8c577cfaa7 fix: display flash messages on admin users index to show generated passwords 2026-04-14 18:24:44 +02:00
jeremy bayse
4a137fc511 feat: implement admin user management interface and routes for CRUD operations and password resets 2026-04-14 18:17:33 +02:00
jeremy bayse
e68108a2b1 feat: implement candidate details page with Chart.js radar visualization and AI analysis integration 2026-04-14 18:13:17 +02:00
jeremy bayse
4810ca9d9c feat: allow super admin to update candidate tenant on profile page 2026-03-30 17:03:20 +02:00
jeremy bayse
7ece2036c1 chore: track version in VERSION file and increment to 1.0.2 2026-03-29 11:52:41 +02:00
jeremy bayse
d0ecfa3e96 feat: add versioning system and display in footer (v1.0.1) 2026-03-29 11:52:08 +02:00
jeremy bayse
38fe4a22d6 feat: automatic tenant_id sync for candidates from job position 2026-03-29 11:25:53 +02:00
jeremy bayse
a3057aae6f fix: allow super_admin role on users table 2026-03-29 11:05:45 +02:00
jeremy bayse
2e423445f5 feat: add visual indicator for non-production environments 2026-03-29 10:55:52 +02:00
jeremy bayse
f53d5770df feat: multi-tenant SaaS implementation - admin interface, tenant isolation, and UI updates 2026-03-28 18:38:22 +01:00
jeremy bayse
7d94be7a8c feat: add app backup functionality for admins 2026-03-28 07:59:17 +01:00
jeremy bayse
03006051a9 UI: use modal for AI analysis errors 2026-03-25 19:19:30 +01:00
jeremy bayse
837bf367e9 AI Config: default to Gemini and filter providers by API key 2026-03-25 19:08:14 +01:00
jeremy bayse
7a05b7e6b3 AI Analysis: enforce 7-day rate limit per candidate 2026-03-25 19:02:26 +01:00
jeremy bayse
40c8aa2e5a UI: display AI provider used for analysis 2026-03-25 18:53:46 +01:00
jeremy bayse
30918870a2 AI Analysis: switch to gemini-2.5-flash based on diagnostics 2026-03-25 18:06:44 +01:00
jeremy bayse
5a8d9b494b AI Analysis: simplify Gemini request to fix payload errors 2026-03-25 18:04:29 +01:00
jeremy bayse
0a82bf5017 AI Analysis: fix Gemini payload formatting (use snake_case) 2026-03-25 18:03:14 +01:00
jeremy bayse
bee5215a5b AI Analysis: switch Gemini to v1 stable API 2026-03-25 07:53:40 +01:00
jeremy bayse
78245f2bee AI Analysis: add verbose logging for Gemini diagnostics 2026-03-25 07:52:56 +01:00
jeremy bayse
cd70edb483 AI Analysis: fix CSRF and use axios for reliability 2026-03-25 07:46:39 +01:00
jeremy bayse
4660c94869 AI Analysis: fix route method (switch to POST) 2026-03-25 07:42:57 +01:00
jeremy bayse
e3b1a2583f AI Analysis: add support for multiple providers (OpenAI, Claude, Gemini) 2026-03-25 07:29:39 +01:00
jeremy bayse
e02c6849fe AI Analysis: enable sorting on match score 2026-03-23 00:38:36 +01:00
jeremy bayse
10b866fc47 AI Analysis: manual tweaks by user 2026-03-23 00:11:55 +01:00
jeremy bayse
937857a842 AI Analysis: add custom AI prompt to job positions 2026-03-22 23:24:20 +01:00
jeremy bayse
949423b1ae AI Analysis: clean extracted text to prevent JSON encoding errors 2026-03-22 23:20:42 +01:00
jeremy bayse
e6df75c1ff AI Analysis: configurable model and increased timeout 2026-03-22 23:19:07 +01:00
jeremy bayse
de0392bbe7 AI Analysis: increase timeout to 120s and add logging 2026-03-22 23:18:32 +01:00
jeremy bayse
4459cbde69 AI Analysis: show match score on index and dashboard 2026-03-22 22:38:59 +01:00
jeremy bayse
26d723f239 AI Analysis: move section before notes 2026-03-22 22:34:44 +01:00
jeremy bayse
33fcdcac3d AI Analysis: persist analysis on candidate profile 2026-03-22 22:32:10 +01:00
jeremy bayse
6c1f6af523 AI Analysis: Service and UI implementation 2026-03-22 22:25:43 +01:00