← Retour aux projets

Portfolio

DockerMinIOPostgreSQLSvelteTypeScript
Portfolio

Site portfolio personnel bilingue (FR/EN) développé avec SvelteKit, présentant mes projets et mon parcours, avec un panneau d'administration complet pour gérer tout le contenu.

Aperçu

Portfolio personnel développé avec SvelteKit (Svelte 5), conçu comme une application complète associant un site public bilingue et une interface d'administration sur mesure.

Fonctionnalités

  • Pages publiques : accueil, liste et détail des projets, parcours (expériences et formations), formulaire de contact

  • Site entièrement bilingue français/anglais

  • Panneau d'administration sécurisé (authentification par session, hachage Argon2) pour gérer projets, technologies, parcours, profil et messages

  • Éditeur de texte enrichi (Tiptap) pour les descriptions détaillées, avec assainissement du HTML (sanitize-html)

  • Upload d'images vers un stockage compatible S3 (MinIO)

  • Limitation de débit sur la connexion admin et le formulaire de contact

  • Notification par e-mail des nouveaux messages de contact

Stack technique

  • SvelteKit / Svelte 5, TypeScript

  • Tailwind CSS 4, Flowbite Svelte

  • PostgreSQL avec Drizzle ORM

  • Zod pour la validation des données

  • Vitest (tests unitaires) et Playwright (tests end-to-end)

Déploiement

  • Conteneurisé avec Docker (build multi-étapes, adapter-node)

  • Déployé derrière Traefik (TLS) sur un homelab personnel

  • Intégration et déploiement continus via GitLab CI/CD