Bienvenue sur le dรฉpรดt de mon Portfolio Interactif. Ce projet est une vitrine de mes compรฉtences, combinant une expรฉrience utilisateur immersive en 3D avec une interface web moderne et accessible.
๐ Dรฉmo en ligne : ange-grimaud.fr
Ce portfolio a รฉtรฉ conรงu pour offrir deux expรฉriences de navigation distinctes :
- ๐ Mode Expรฉrience (3D) : Une expรฉrience immersive oรน l'utilisateur navigue dans un environnement 3D (dรฉveloppรฉ avec Three.js et React Three Fiber). Chaque รฉlรฉment du dรฉcor reprรฉsente une section de mon parcours.
- ๐ Mode Classique : Une interface web traditionnelle, รฉpurรฉe et rรฉactive, pour une lecture rapide et efficace des informations.
L'objectif est de dรฉmontrer une maรฎtrise technique ร la fois dans le dรฉveloppement web "classique" et dans la crรฉation d'expรฉriences graphiques avancรฉes.
- Switch Mode : Passez instantanรฉment du mode 3D au mode Classique.
- Support Mobile : Interface responsive adaptรฉe aux รฉcrans tactiles.
- Dark/Light Mode : Gestion des thรจmes intรฉgrรฉe.
- Multilingue : Changement de langue dynamique & intรฉgrale.
- Animations : Transitions fluides entre les pages et les รฉtats.
Ce projet utilise les derniรจres technologies de l'รฉcosystรจme React :
- React 19 : Bibliothรจque UI principale.
- Vite : Bundler ultra-rapide pour le dรฉveloppement.
- Zustand : Gestionnaire d'รฉtat global lรฉger et performant.
- Three.js : Moteur 3D.
- React Three Fiber : Rรฉconciliateur React pour Three.js.
- @react-three/drei : Collection d'aides et d'abstractions pour R3F.
- @react-three/postprocessing : Effets de post-traitement.
- Framer Motion : Bibliothรจque d'animations pour React.
- CSS : Gestion des styles globaux et dynamiques.
- ESLint : Linter pour assurer la qualitรฉ du code.
L'architecture du projet est organisรฉe par fonctionnalitรฉs (features) pour une meilleure maintenabilitรฉ :
โโโ ๐ public
โ โโโ ๐ character
โ โ โโโ ๐ animations.glb
โ โ โโโ ๐ idle.glb
โ โ โโโ ๐ skin.glb
โ โโโ ๐ cursors
โ โ โโโ ๐ arrow.cur
โ โ โโโ ๐ hand.cur
โ โโโ ๐ fonts
โ โ โโโ ๐ PersonalFont.ttf
โ โโโ ๐ images
โ โ โโโ ๐ผ๏ธ ange.jpeg
โ โ โโโ ๐ผ๏ธ kimono.png
โ โโโ ๐ models
โ โ โโโ ๐ buildings
โ โ โ โโโ ๐ fountain.glb
โ โ โ โโโ ๐ house.glb
โ โ โ โโโ ๐ runeStone.glb
โ โ โ โโโ ๐ tower.glb
โ โ โ โโโ ๐ treeStump.glb
โ โ โโโ ๐ nature
โ โ โ โโโ ๐ bush.glb
โ โ โ โโโ ๐ rock.glb
โ โ โ โโโ ๐ tree.glb
โ โ โโโ ๐ props
โ โ โโโ ๐ sign.glb
โ โโโ ๐ pdf
โ โ โโโ ๐ CV_Ange_GRIMAUD.pdf
โ โโโ ๐ sounds
โ โ โโโ ๐ต background_music.mp3
โ โโโ ๐ textures
โ โ โโโ ๐ผ๏ธ grass.jpg
โ โโโ ๐ CNAME
โโโ ๐ src
โ โโโ ๐ components
โ โ โโโ ๐ books
โ โ โ โโโ ๐ ProjectPage.jsx
โ โ โ โโโ ๐ SkillsPage.jsx
โ โ โ โโโ ๐ TextPage.jsx
โ โ โโโ ๐ classic
โ โ โ โโโ ๐ ContactCard.jsx
โ โ โ โโโ ๐ ProjectCard.jsx
โ โ โ โโโ ๐ SkillBar.jsx
โ โ โโโ ๐ common
โ โ โ โโโ ๐ KeyCap.jsx
โ โ โ โโโ ๐ LanguageSwitchButton.jsx
โ โ โ โโโ ๐ ThemeSwitch.jsx
โ โ โโโ ๐ layout
โ โ โโโ ๐ LoadingScreen.jsx
โ โ โโโ ๐ UI.jsx
โ โโโ ๐ data
โ โ โโโ ๐ content.js
โ โโโ ๐ features
โ โ โโโ ๐ classic
โ โ โ โโโ ๐ ClassicPortfolio.jsx
โ โ โโโ ๐ menu
โ โ โ โโโ ๐ MainMenu.jsx
โ โ โโโ ๐ world
โ โ โโโ ๐ Effects.jsx
โ โ โโโ ๐ Environment.jsx
โ โ โโโ ๐ GameScene.jsx
โ โ โโโ ๐ Player.jsx
โ โ โโโ ๐ World.jsx
โ โโโ ๐ hooks
โ โ โโโ ๐ useIsMobile.js
โ โโโ ๐ store
โ โ โโโ ๐ useStore.js
โ โโโ ๐ styles
โ โ โโโ ๐จ index.css
โ โโโ ๐ App.jsx
โ โโโ ๐ main.jsx
โโโ โ๏ธ .gitignore
โโโ ๐ README.md
โโโ ๐ eslint.config.js
โโโ ๐ index.html
โโโ โ๏ธ package-lock.json
โโโ โ๏ธ package.json
โโโ ๐ vite.config.jsPour lancer ce projet localement, suivez ces รฉtapes :
- Node.js (v18+ recommandรฉ)
- npm ou yarn
-
Cloner le dรฉpรดt
git clone https://github.com/Letrude/letrude.github.io.git cd letrude.github.io -
Installer les dรฉpendances
npm install
-
Lancer le serveur de dรฉveloppement
npm run dev
L'application sera accessible ร l'adresse
http://localhost:5173. -
Construire pour la production
npm run build
Ange GRIMAUD - Dรฉveloppeur Fullstack
- ๐ง Email : ange.grimaud@etu.uca.fr
- ๐ผ LinkedIn : Ange GRIMAUD
- ๐ GitHub : letrude
Fait avec โค๏ธ et beaucoup de cafรฉ โ