Hãy lựa chọn ngôn ngữ mà bạn hiểu (Choose a language that you can understand)
Chào mừng bạn đến với những thứ tạo ra "Nơi chứa đựng các thông tin" của Harry (Bảo Huỳnh) aka source code.
- Trang chủ: giới thiệu nhanh và social links.
- Về Bảo: hành trình, kỹ năng, hoạt động, fun facts.
- Các dự án: danh sách dự án kèm modal chi tiết.
- Tài liệu học tập: danh mục các tài liệu tổng hợp lấy từ Google Drive cá nhân được lưu trong file CSV & tải từ API nội bộ.
- Liên hệ: thông tin liên hệ form liên hệ gửi email qua Web3Forms.
- Hỗ trợ song ngữ Việt/Anh và lưu ngôn ngữ đã chọn trên trình duyệt.
- Thiết kế responsive cho cả mobile, tablet và desktop
- Animation chuyển trang và hiệu ứng tương tác mượt bằng Framer Motion.
- Dữ liệu tài liệu học tập được tách riêng, dễ cập nhật bằng CSV/XLSX.
- Form liên hệ tích hợp Web3Forms, gửi thông tin nhanh mà không cần backend riêng.
- Tối ưu trải nghiệm người dùng với các thành phần như điều hướng nổi, đồng hồ thời gian thực, nút quay lại đầu trang...
- Next.js 16 (App Router)
- React 19
- Tailwind CSS 4
- Framer Motion
- React Icons + Lucide
- XLSX (đọc CSV/XLSX cho materials API)
- Node.js 18.18+ (khuyến nghị Node.js 20 LTS)
- npm 9+
npm install
npm run devMở trình duyệt tại http://localhost:3000.
npm run dev # Chạy môi trường development
npm run build # Build production
npm run start # Chạy production sau khi build
npm run lint # Kiểm tra lintTạo file .env.local ở root dự án:
NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=your_web3forms_access_keyGhi chú:
- Trang Contact dùng
NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY. - Nếu thiếu key, UI sẽ hiển thị cảnh báo và không gửi form.
app/
page.jsx
about/page.jsx
work/page.jsx
materials/page.jsx
contact/page.jsx
api/materials/route.js
components/
data/
i18n/messages.js
materials.csv
public/
image/
favicon.png
Hãy truy cập https://harrybao.is-a.dev/ để tìm hiểu về tôi.
Nếu bạn muốn tự mình deploy một dự án của riêng bạn:
- Đẩy mã nguồn của bạn lên một repository trên GitHub.
- Kết nối repository đó với Vercel.
- Thêm các biến môi trường (environment variables) trong dashboard của Vercel nếu có.
- Vercel sẽ xử lý phần còn lại. Nó sẽ tự động deploy mỗi khi bạn push code.
- Harry - Huỳnh Nguyễn Quốc Bảo
- GitHub: https://github.com/Harry1720
Chân thành cảm ơn bạn đã ghé thăm! Nếu thấy thú vị, hãy dành 1 ngôi sao (star) cho repository này nhé!
Welcome to source code of Harry's personal information "hub"!!!.
- Home page: quick introduction and social links.
- About Harry: journey, skills, activities, and fun facts.
- Projects: project list with detailed modal view.
- Study Materials: curated materials from personal Google Drive, stored in CSV and served via internal API.
- Contact: contact information and contact form powered by Web3Forms.
- Bilingual Vietnamese/English support with saved language preference in browser storage.
- Responsive design for mobile, tablet, and desktop
- Smooth page transitions and interaction effects with Framer Motion.
- Study materials data is separated for easy updates via CSV/XLSX.
- Contact form integrated with Web3Forms, no custom backend required.
- Enhanced UX with floating navigation, real-time clock, and back-to-top button...
- Next.js 16 (App Router)
- React 19
- Tailwind CSS 4
- Framer Motion
- React Icons + Lucide
- XLSX (for reading CSV/XLSX in the materials API)
- Node.js 18.18+ (Node.js 20 LTS recommended)
- npm 9+
npm install
npm run devOpen http://localhost:3000 in your browser.
npm run dev # Start development server
npm run build # Build production bundle
npm run start # Run production server
npm run lint # Run lint checksCreate .env.local in the project root:
NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY=your_web3forms_access_keyNotes:
- The Contact page uses
NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY. - If the key is missing, the UI will show a warning and the form will not be submitted.
app/
page.jsx
about/page.jsx
work/page.jsx
materials/page.jsx
contact/page.jsx
api/materials/route.js
components/
data/
i18n/messages.js
materials.csv
public/
image/
favicon.png
Visit https://harrybao.is-a.dev/ to see the live website.
If you want to deploy your own:
- Push your code to a GitHub repository.
- Connect the repository to Vercel.
- Add your environment variables in the Vercel dashboard (if needed).
- Vercel handles the rest — automatic deployments on every push.
- Harry - Huynh Nguyen Quoc Bao
- GitHub: https://github.com/Harry1720
Thank you for visiting! If you find this project interesting, please consider giving this repository a star.
