Updates dependencies and implements portfolio

Updates eslint and typescript-eslint dependencies.

Migrates to a new portfolio structure with components, styling, route management, and internationalization.

Adds project display with multiple project types using custom components.

Adds image assets to be displayed in experience sections
This commit is contained in:
Louis
2025-10-29 00:13:50 +01:00
parent 3e3a6dd125
commit e91f55b80d
19 changed files with 3929 additions and 199 deletions

View File

@@ -1,30 +1,75 @@
# React + TypeScript + Vite
# Portfolio
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Personal portfolio website showcasing my projects and skills as a Full Stack Developer.
Currently, two official plugins are available:
## Tech Stack
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
- React 18 with TypeScript
- Vite for fast development and build
- Tailwind CSS for styling
- Motion for animations
- React Router for navigation
- i18next for internationalization (French/English)
## Expanding the ESLint configuration
## Features
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Responsive design with mobile-first approach
- Dark/Light theme with system preference support
- Animated page transitions and interactions
- Multi-language support
- Project showcase with detailed views
- Skills and experience sections
- Contact information
- Configure the top-level `parserOptions` property like this:
## Development
```js
export default {
// other rules...
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: ['./tsconfig.json', './tsconfig.node.json'],
tsconfigRootDir: __dirname,
},
}
Install dependencies:
```bash
npm install
```
- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked`
- Optionally add `plugin:@typescript-eslint/stylistic-type-checked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list
Start development server:
```bash
npm run dev
```
Build for production:
```bash
npm run build
```
Preview production build:
```bash
npm run preview
```
## Project Structure
```
src/
├── components/ # React components
├── i18n/ # Translation files (en/fr)
├── icons/ # SVG icon components
└── styles/ # Global styles and CSS
```
## Internationalization
Translations are modularized by section in JSON files under `src/i18n/en/` and `src/i18n/fr/`. Each section (nav, hero, about, experience, etc.) has its own file for easy maintenance.
## Theme System
The site supports three theme modes:
- Light mode
- Dark mode
- System preference (auto-detect)
Theme preference is persisted in localStorage.
## License
All rights reserved.