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:
87
README.md
87
README.md
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user