Aller au contenu
Projet de développement SGBD

Exercices

Exercice : Application Portfolio Personnel

Objectif

Développer une application web complète permettant de gérer et d'afficher un portfolio professionnel. L'application comprendra un backoffice pour administrer le contenu et un frontoffice créatif pour présenter vos réalisations.

Partie 1 : Backoffice - Gestion du Contenu

1.1 Gestion des Projets

Chaque projet contient :

Informations principales :

  • Titre, slug (auto-généré), description courte, description détaillée (WYSIWYG)
  • Type (Site web, App mobile, API, Design, etc.), Statut (Brouillon/Publié/Archivé)
  • Date de réalisation, Client, Contexte (Scolaire/Stage/Freelance/Personnel), Durée, Rôle
  • Lien projet, Lien GitHub, Ordre d'affichage

Relations :

  • Technologies utilisées (relation many-to-many)
  • Images : 1 image principale + galerie (plusieurs images)

1.2 Gestion des Technologies

  • Nom, Catégorie (Backend/Frontend/BDD/DevOps/Design), Niveau (Débutant/Intermédiaire/Avancé/Expert)
  • Logo (upload), Couleur (hex), Ordre d'affichage

1.3 Gestion des Expériences

  • Poste, Entreprise, Lieu, Date début/fin, Description (WYSIWYG)
  • Type (Stage/CDI/CDD/Freelance/Alternance)

1.4 Gestion de la Formation

  • Diplôme, Établissement, Lieu, Date début/fin, Description

1.5 Informations Personnelles

  • Nom, Titre professionnel, Bio (WYSIWYG), Photo de profil
  • Email, Téléphone, Localisation, Disponibilité
  • CV (upload PDF)
  • Liens sociaux (LinkedIn, GitHub, Twitter, etc.)

Partie 2 : Fonctionnalités Techniques

2.1 Éditeur WYSIWYG

Intégrer un éditeur de texte riche pour les descriptions. Options suggérées :

  • Tiptap (moderne, headless, flexible mais plus de config)
  • Quill (simple, léger)
  • CKEditor 5 (complet)
  • TinyMCE (populaire)

Fonctionnalités minimales : formatage texte, titres, listes, liens, blocs de code.

2.2 Upload d'Images

  • Upload multiple avec progression
  • Validation (format, max 5MB)
  • Suppression individuelle avec confirmation
  • Réorganisation des images (bonus)

2.3 Pagination et Recherche

Pour la liste des projets :

  • Pagination (10-15 par page)
  • Recherche (titre, description, technologies)
  • Filtres (Statut, Type, Année)
  • Tri (date, ordre d'affichage, alphabétique)

2.4 Interface

Utiliser shadcn-vue pour créer une interface professionnelle (tableaux, formulaires, cards, dialogs, sidebar).

Partie 3 : Frontoffice - Affichage Public

3.1 Page d'Accueil

Présentation attractive : nom, titre, photo, phrase d'accroche, technologies principales, CTA vers projets/contact.

3.2 Page Projets

Grille de projets avec image, titre, description courte, technologies. Filtres par type/technologie. Lien vers détail.

3.3 Page Détail Projet

Affichage complet : galerie d'images, description détaillée, technologies, infos (client, durée, contexte), liens externes, navigation précédent/suivant.

3.4 Page À Propos

Bio, parcours académique (timeline), expériences (timeline), technologies avec niveaux visualisés, lien téléchargement CV.

3.5 Page Contact

Formulaire simple (nom, email, sujet, message) avec envoi par email Laravel Mail. Protection anti-spam (honeypot).

Partie 4 : Fonctionnalités Optionnelles

Ces fonctionnalités augmenteront la qualité du projet mais ne sont pas obligatoires :

4.1 Blog Technique

Section blog : articles avec titre, contenu (WYSIWYG), image, catégories/tags. Liste paginée + page détail.

4.2 Google Analytics

Intégration Google Analytics pour tracking des visites. Affichage de statistiques basiques dans le backoffice.

4.3 Optimisation SEO

  • Meta tags personnalisables (title, description)
  • Open Graph pour partage réseaux sociaux
  • URLs propres (slugs)
  • Images optimisées (compression, lazy loading)

Stack Technique

  • Backend : Laravel 12
  • Frontend : Vue.js 3 (Composition API) + Inertia.js
  • Starter Kit : Laravel Vue Starter Kit
  • UI : shadcn-vue + Tailwind CSS v4
  • Base de données : MySQL
  • Auth : Laravel built-in

Bonnes pratiques :

  • Utiliser Wayfinder pour les routes
  • Utiliser le composant <Form> d'Inertia
  • Code organisé, commits Git réguliers

Design du Frontoffice

Le design est totalement libre. C'est l'occasion de montrer votre créativité et votre savoir-faire. Le frontoffice doit être :

  • Original : Créez quelque chose d'unique qui vous représente
  • Responsive : Fonctionnel sur mobile, tablette, desktop
  • Professionnel : Soigné, moderne, sans fautes
  • Performant : Images optimisées, navigation fluide

Inspirez-vous de portfolios existants mais ne copiez pas. Ce portfolio vous servira pour vos candidatures !