feat: Implement Keycloak authentication and a basic CMS

Integrates Keycloak for secure administrator authentication using Arctic.
Introduces a full CMS dashboard for managing CV content, supporting multi-language editing for profile, experience, and education sections.

Refactors application routes for modularity and adds initial unit tests for database queries.

Also includes minor UI/UX refinements, animation setup, and local Keycloak docker-compose configuration.

Fixes:
- Corrected KeyCloak import.
- Restored missing getEducation function.
- Ensured proper HTTP redirects.
- Fixed PKCE code verifier length.
This commit is contained in:
Tuan-Dat Tran
2025-11-21 20:28:56 +01:00
parent 88aeaa9002
commit 1346d36f5d
14 changed files with 704 additions and 78 deletions

View File

@@ -54,8 +54,7 @@ export const ExperienceSection = ({ experience }: any) => (
<div class="relative border-l-2 border-gray-200 dark:border-gray-700 ml-3 pl-8 space-y-12">
{experience.map((exp: any) => (
<div class="relative group">
{/* Hover highlight on line - optional subtle effect */}
<div class="absolute -left-[33px] top-2 w-3 h-3 bg-gray-200 dark:bg-gray-700 rounded-full border-2 border-white dark:border-gray-900 group-hover:bg-blue-500 group-hover:scale-125 transition-all duration-300"></div>
<div class="grid md:grid-cols-[1fr_3fr] gap-4">
<div class="text-sm text-gray-500 dark:text-gray-400 pt-1 font-mono">