đóng vai trò là dev fullstack 20 năm kinh nghiệm hãy code cho tôi trang web với 1 người bán là admin với:
# Prompt thiết kế trang web bán sản phẩm crochet

Tôi cần bạn tạo một trang web bán sản phẩm crochet hoàn chỉnh với các yêu cầu sau:

## Yêu cầu tổng quan
- Trang web bán sản phẩm crochet cho doanh nghiệp cá nhân nhỏ
- Giao diện tương tự Etsy nhưng chỉ bán sản phẩm của 1 seller duy nhất
- Không cần chức năng đăng ký seller (chỉ có admin/owner quản lý)
- **2 loại sản phẩm chính:**
  1. **Digital Patterns**: File PDF thiết kế crochet để download
  2. **Handmade Products**: Sản phẩm crochet hoàn thiện để ship

## Công nghệ yêu cầu
### Frontend
- React với TypeScript
- Responsive design (mobile-first)
- UI/UX hiện đại, thân thiện với người dùng
- Tích hợp với backend API

### Backend
- Java (Spring Boot)
- RESTful API
- Database: MySQL hoặc PostgreSQL
- Authentication & Authorization
- File upload và storage

## Tính năng chính

### 1. Trang chủ
- Banner/slider giới thiệu
- 2 section chính: "Digital Patterns" và "Handmade Products"
- Sản phẩm nổi bật từ cả 2 loại
- Testimonials/reviews từ khách hàng
- Footer với thông tin liên hệ

### 2. Danh mục sản phẩm
**Chung cho cả 2 loại:**
- Toggle/filter để chọn loại sản phẩm (Patterns/Handmade)
- Phân loại theo: độ khó, loại đồ vật, kích thước
- Bộ lọc và sắp xếp (giá, độ phổ biến, mới nhất)
- Pagination và search functionality

**Riêng cho Digital Patterns:**
- Filter theo skill level (Beginner, Intermediate, Advanced)
- Filter theo tags (ví dụ: amigurumi, blanket, hat, scarf, baby, home-decor, seasonal, quick-project, etc.)
- Tag system với khả năng tìm kiếm và filter multiple tags
- Popular tags display

**Riêng cho Handmade Products:**
- Filter theo size/color available
- Material information
- Care instructions

### 3. Chi tiết sản phẩm
**Digital Patterns:**
- **Media Upload System:**
  - Upload tối đa 10 ảnh (với 1 ảnh làm thumbnail chính)
  - Upload 1 video demo sản phẩm (tối đa 140MB)
  - Image optimization và compression
  - Video format support (MP4, MOV, AVI)
  - Thumbnail generation cho video
- Detailed pattern description
- Technical specifications (skill level, finished size)
- Preview một phần pattern (sample pages)
- **Tags system**: Hiển thị các tags được gắn cho pattern
- File format và size information
- Instant download after purchase

**Handmade Products:**
- Product gallery (multiple angles)
- Size/color options
- Material và care information
- Shipping information
- Processing time
- Physical product shipping

**Chung:**
- Reviews và ratings
- Related products
- Add to cart/wishlist

### 4. Giỏ hàng và thanh toán
- Mixed cart (có thể chứa cả patterns và handmade)
- Shipping calculator (chỉ cho handmade products)
- Checkout process khác nhau:
  - **Digital**: Instant delivery via email
  - **Handmade**: Shipping address required
- Tích hợp PayPal và Visa/Mastercard payment
- Order confirmation và email notifications

### 5. Tài khoản khách hàng
- Đăng ký/đăng nhập
- Profile management
- Order history (phân biệt digital vs physical)
- **Digital Library**: Download purchased patterns
- **Shipping addresses**: Manage delivery addresses
- Wishlist
- Re-download purchased patterns

### 6. Admin panel
- Dashboard tổng quan
- **Product Management:**
  - Add/edit digital patterns (upload PDF files)
  - **Media Upload System:**
    - Upload và manage tối đa 10 ảnh per pattern
    - Designate thumbnail image
    - Upload video demo (max 140MB)
    - Image và video preview
    - Media compression tools
  - **Tag Management**: Tạo, sửa, xóa tags và gắn tags cho products
  - Add/edit handmade products (inventory management)
  - Bulk operations
  - **Tag Analytics**: Xem tags phổ biến nhất
- **Order Management:**
  - Digital orders (auto-fulfilled)
  - Physical orders (shipping tracking)
- **Inventory Management** (cho handmade products)
- Customer management
- Analytics và reports

## Tính năng bảo mật
- JWT authentication
- Password hashing (BCrypt)
- Input validation và sanitization
- CSRF protection
- Rate limiting
- HTTPS enforcement
- Secure file upload và storage
- **Media Upload Security:**
  - File type validation (images: JPG, PNG, WebP; videos: MP4, MOV, AVI)
  - File size limits (images: 5MB each, videos: 140MB)
  - Virus scanning cho uploaded files
  - Content validation
- Database query protection (prevent SQL injection)
- Download link expiration cho digital products

## Tích hợp thanh toán
- PayPal SDK integration
- Stripe cho Visa/Mastercard
- Secure payment processing
- Order status tracking
- Refund handling (khác nhau cho digital vs physical)

## Tính năng kỹ thuật
### Digital Products
- **Secure file storage (Budget-friendly options):**
  - Local server storage với encryption
  - Google Drive API (15GB free)
  - Dropbox API (2GB free, có thể upgrade)
  - OneDrive API (5GB free)
  - GitHub LFS (Large File Storage) cho open source projects
  - Cloudflare R2 (10GB free monthly)
  - Backblaze B2 (10GB free)
- **Media Management:**
  - Image upload (max 10 per pattern, designated thumbnail)
  - Video upload (max 140MB per pattern)
  - Image resizing và optimization
  - Video compression và format conversion
  - Progressive image loading
- Time-limited download links
- Download attempt tracking
- File format validation
- Watermarking (optional)
- File compression để tiết kiệm dung lượng

### Physical Products
- Inventory management
- Shipping calculation
- Tracking number integration
- Stock alerts

### Chung
- Email service (confirmations, downloads, shipping updates)
- **Media Processing:**
  - Image optimization và compression
  - Video compression và format conversion
  - Thumbnail generation
  - Progressive loading
  - CDN integration cho media delivery
- Caching strategy
- Error handling và logging
- API documentation

## Tính năng đặc biệt
- **Hybrid Orders**: Xử lý orders có cả digital và physical items
- **Auto-fulfillment**: Tự động gửi digital products sau thanh toán
- **Reorder functionality**: Dễ dàng mua lại sản phẩm đã từng mua
- **Bundle deals**: Có thể tạo combo pattern + handmade product

## Yêu cầu thiết kế
- Clean, modern design phù hợp với crochet/handicraft theme
- Clear distinction giữa digital và physical products
- Intuitive navigation
- Mobile responsive
- Loading states và error messages
- Accessibility compliant
- Visual indicators cho loại sản phẩm (digital vs handmade)

## Database Schema cần có
- Products table (với product_type: DIGITAL/HANDMADE)
- **Tags table**: Lưu trữ các tags
- **Product_tags table**: Mapping giữa products và tags
- **Product_images table**: Lưu trữ thông tin ảnh (với thumbnail flag)
- **Product_videos table**: Lưu trữ thông tin video
- Digital_files table (cho pattern files)
- Inventory table (cho handmade products)
- Orders table (với fulfillment_status)
- Order_items table
- Downloads table (tracking digital downloads)
- Shipping_addresses table

## Deliverables mong muốn
1. Complete source code cho cả frontend và backend
2. Database schema và migration scripts
3. API documentation
4. Setup và deployment instructions
5. Testing examples
6. File storage configuration guide
7. Payment integration guide

Hãy tạo cấu trúc project đầy đủ với code mẫu cho các tính năng chính, đặc biệt chú trọng vào việc xử lý 2 loại sản phẩm khác nhau, tính bảo mật và trải nghiệm người dùng.