# VisaService - Website Dịch Vụ Visa

Website dịch vụ visa chuyên nghiệp được xây dựng với Next.js 15, TypeScript và Tailwind CSS. Hỗ trợ tư vấn visa cho hơn 50 quốc gia với tỷ lệ thành công 99%.

## 🚀 Tính Năng

- **8 Trang Chính**: Trang chủ, Giới thiệu, Dịch vụ, Visa, Quốc gia, Bảng giá, Blog, Liên hệ
- **Hệ Thống Đặt Lịch**: Đặt lịch tư vấn với chuyên gia
- **Responsive Design**: Tối ưu cho mọi thiết bị
- **JSON-Based Content**: Dễ dàng quản lý nội dung
- **Interactive Components**: Form, accordion, filter, modal
- **SEO Optimized**: Metadata và structure tối ưu

## 🛠️ Công Nghệ Sử Dụng

- **Framework**: Next.js 15 (App Router)
- **Language**: TypeScript
- **Styling**: Tailwind CSS
- **Icons**: Emoji icons
- **Deployment**: Docker support

## 📁 Cấu Trúc Thư Mục

```
app/
├── components/          # Shared components
│   ├── Header.tsx      # Navigation header
│   └── Footer.tsx      # Site footer
├── about/              # Trang giới thiệu
│   ├── about.json      # Dữ liệu về công ty
│   └── page.tsx        # Component trang
├── services/           # Trang dịch vụ
│   ├── services.json   # Dữ liệu dịch vụ
│   └── page.tsx        # Component trang
├── visa/               # Trang visa
│   ├── visa.json       # Dữ liệu các loại visa
│   └── page.tsx        # Component trang
├── countries/          # Trang quốc gia
│   ├── countries.json  # Dữ liệu quốc gia
│   └── page.tsx        # Component trang
├── pricing/            # Trang bảng giá
│   ├── pricing.json    # Dữ liệu giá cả
│   └── page.tsx        # Component trang
├── blog/               # Trang blog
│   ├── blog.json       # Dữ liệu bài viết
│   └── page.tsx        # Component trang
├── contact/            # Trang liên hệ
│   ├── contact.json    # Thông tin liên hệ
│   └── page.tsx        # Component trang
├── appointment/        # Trang đặt lịch
│   ├── appointment.json # Dữ liệu booking
│   └── page.tsx        # Component trang
├── layout.tsx          # Root layout
├── page.tsx            # Trang chủ
└── globals.css         # Global styles
```

## 🚀 Hướng Dẫn Chạy Dự Án

### Yêu Cầu Hệ Thống

- Node.js 18+
- npm, yarn, hoặc pnpm

### Cài Đặt và Chạy

1. **Clone repository**

```bash
git clone <repository-url>
cd visa-service-website
```

2. **Cài đặt dependencies**

```bash
npm install
# hoặc
yarn install
# hoặc
pnpm install
```

3. **Chạy development server**

```bash
npm run dev
# hoặc
yarn dev
# hoặc
pnpm dev
```

4. **Mở trình duyệt**
   Truy cập [http://localhost:3000](http://localhost:3000) để xem website

### Scripts Có Sẵn

```bash
npm run dev          # Chạy development server
npm run build        # Build production
npm run start        # Chạy production server
npm run lint         # Kiểm tra code style
```

## 🐳 Chạy Với Docker

### Development với Docker

```bash
# Build và chạy container
docker-compose up --build

# Chạy ở background
docker-compose up -d

# Dừng container
docker-compose down
```

### Production với Docker

```bash
# Build production image
docker build -t visa-service .

# Chạy container
docker run -p 3000:3000 visa-service
```

## 📝 Tùy Chỉnh Nội Dung

### Cập Nhật Dữ Liệu

Mỗi trang có file JSON riêng chứa dữ liệu:

- `about/about.json` - Thông tin công ty
- `services/services.json` - Danh sách dịch vụ
- `visa/visa.json` - Các loại visa
- `countries/countries.json` - Quốc gia hỗ trợ
- `pricing/pricing.json` - Bảng giá dịch vụ
- `blog/blog.json` - Bài viết blog
- `contact/contact.json` - Thông tin liên hệ
- `appointment/appointment.json` - Cấu hình đặt lịch

### Thêm Trang Mới

1. Tạo thư mục mới trong `app/`
2. Tạo file `data.json` chứa dữ liệu
3. Tạo file `page.tsx` với React component
4. Cập nhật navigation trong `Header.tsx`

### Tùy Chỉnh Styling

- Sử dụng Tailwind CSS classes
- Tùy chỉnh theme trong `tailwind.config.js`
- Global styles trong `app/globals.css`

## 🌐 Deployment

### Vercel (Khuyến nghị)

1. Push code lên GitHub
2. Kết nối repository với Vercel
3. Deploy tự động

### Netlify

1. Build project: `npm run build`
2. Upload thư mục `out/` lên Netlify

### VPS/Server

1. Build project: `npm run build`
2. Chạy: `npm run start`
3. Sử dụng PM2 hoặc Docker cho production

## 📱 Responsive Design

Website được tối ưu cho:

- **Mobile**: < 768px
- **Tablet**: 768px - 1024px
- **Desktop**: > 1024px

## 🔧 Cấu Hình Môi Trường

Tạo file `.env.local` (tùy chọn):

```env
NEXT_PUBLIC_SITE_URL=http://localhost:3000
NEXT_PUBLIC_CONTACT_EMAIL=info@visaservice.com
NEXT_PUBLIC_PHONE=1900-1234
```

## 🤝 Đóng Góp

1. Fork repository
2. Tạo feature branch: `git checkout -b feature/new-feature`
3. Commit changes: `git commit -m 'Add new feature'`
4. Push branch: `git push origin feature/new-feature`
5. Tạo Pull Request

## 📄 License

MIT License - xem file [LICENSE](LICENSE) để biết thêm chi tiết.

## 📞 Hỗ Trợ

- **Email**: info@visaservice.com
- **Phone**: 1900 1234
- **Website**: [visaservice.com](https://visaservice.com)

---

**Phát triển bởi**: VisaService Team  
**Phiên bản**: 1.0.0  
**Cập nhật**: January 2025
