Personal portfolio website showcasing my skills, projects, and experience.
Welcome to my Portfolio website built with React and TypeScript.
🌐 Live Site: https://chau-nm.github.io
- 🎨 Modern and responsive UI/UX design
- 🌍 Multi-language support (English/Vietnamese) with i18next
- 🎭 Smooth animations powered by GSAP
- 📱 Fully responsive design
- 🎯 Sections: Home, About, Skills, Projects, Repository, Contact
- 📧 Contact form integration with EmailJS
- 🌓 Theme switching (Light/Dark mode)
- 📄 CV download functionality
- Frontend Framework: React 18.3
- Language: TypeScript
- Styling: Sass/SCSS
- Animation: GSAP (GreenSock Animation Platform)
- Routing: React Router DOM
- Internationalization: i18next
- Build Tool: Create React App
- Deployment: GitHub Pages
git clone https://github.com/chau-nm/chau-nm.github.io.git
cd chau-nm.github.ioyarn install- Create file
src/mail/config.json - Copy content from
src/mail/config.dev.jsontosrc/mail/config.json - Update the config with your EmailJS credentials:
{
"mailService": "YOUR_MAIL_SERVICE_ID",
"mailThankYouTemplate": "YOUR_THANK_YOU_TEMPLATE_ID",
"mailFeedbackTemplate": "YOUR_FEEDBACK_TEMPLATE_ID",
"publicKey": "YOUR_PUBLIC_KEY"
}yarn startThe app will open at http://localhost:3000
yarn start- Start development serveryarn build- Build for productionyarn test- Run testsyarn deploy- Deploy to GitHub Pages
This project is automatically deployed to GitHub Pages via GitHub Actions when changes are pushed to the master branch.
The deployment workflow:
- Builds the React app
- Deploys to the
gh-pagesbranch usinggh-pages
src/
├── assets/ # Images, fonts, icons, CV
├── common/ # Common utilities and types
├── component/ # Reusable React components
├── feature/ # Feature-based components (Home, About, etc.)
├── hook/ # Custom React hooks
├── language/ # i18n translations
├── theme/ # Theme configuration
└── ...
This project is private and personal.