Cong123779 commited on
Commit
e5c5d77
·
verified ·
1 Parent(s): 7c46a3a

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +103 -0
README.md CHANGED
@@ -37,3 +37,106 @@ ADMIN_USERNAME=admin
37
  ADMIN_PASSWORD=...
38
  NODE_ENV=production
39
  ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  ADMIN_PASSWORD=...
38
  NODE_ENV=production
39
  ```
40
+
41
+ ---
42
+
43
+ # 🌐 Lyvuha.com — Hệ Thống Portfolio & Giới Thiệu Sản Phẩm
44
+
45
+ Trang giới thiệu sản phẩm và portfolio công nghệ của **Lý Vũ Hà** (lyvuha.com), xây dựng trên kiến trúc Full-stack hiện đại, bảo mật và hiệu năng cao.
46
+
47
+ ## 🚀 Kiến Trúc Hệ Thống (Architecture)
48
+
49
+ Hệ thống được thiết kế chạy 100% online trên các hạ tầng đám mây tối ưu chi phí và mở rộng tốt:
50
+
51
+ ```mermaid
52
+ graph TD
53
+ User([Người dùng]) -->|Truy cập HTTPS| Frontend[Vercel Frontend - React + Vite]
54
+ Frontend -->|Gọi API| Backend[Hugging Face Space - Node.js + Express + Docker]
55
+ Backend -->|Truy vấn dữ liệu| DB[Supabase - Managed PostgreSQL Database]
56
+ Backend -->|Fallback khi Dev local| SQLite[Local SQLite database.sqlite]
57
+ ```
58
+
59
+ - **Frontend**: Single Page Application (SPA) viết bằng **React** và **Vite**, deploy tĩnh lên **Vercel** tại domain chính `https://lyvuha.com`.
60
+ - **Backend**: **Node.js** + **Express** server chạy dưới dạng container Docker trên **Hugging Face Spaces** (Port 7860).
61
+ - **Database**: **Supabase PostgreSQL** cho môi trường production để lưu trữ dữ liệu các sản phẩm/tin nhắn một cách bền vững.
62
+ - **Bộ chuyển đổi cơ sở dữ liệu kép (Dual-mode Database Adapter)**: Tự động chuyển đổi giữa **PostgreSQL** (production) và **SQLite** (development local) tùy thuộc vào sự có mặt của `DATABASE_URL` trong môi trường.
63
+
64
+ ---
65
+
66
+ ## ✨ Các Tính Năng Chính (Core Features)
67
+
68
+ 1. **Portfolio & Danh Sách Sản Phẩm**: Hiển thị các dự án công nghệ, IoT, AI, DevOps đã làm.
69
+ 2. **Admin Dashboard (Trang Quản Trị)**:
70
+ - Thêm, sửa, xoá dự án trực quan (CRUD).
71
+ - Xem hòm thư liên hệ, đánh dấu đã đọc hoặc xoá thư.
72
+ - Bảo mật đầu cuối bằng mã hoá **JWT (JSON Web Token)**.
73
+ 3. **Form Liên Hệ (Contact Form)**: Gửi tin nhắn trực tiếp tới cơ sở dữ liệu và gửi thông báo qua email cá nhân/công việc (`havucong25@gmail.com` và `havucong@lyvuha.com`).
74
+ 4. **Giao Diện Premium**: Thiết kế hiện đại dạng Dark mode, Neon cyan-to-purple gradient, glassmorphism cao cấp, tương thích mọi thiết bị (Responsive).
75
+
76
+ ---
77
+
78
+ ## 🛠️ Hướng Dẫn Phát Triển Local (Local Development)
79
+
80
+ ### 1. Cài đặt môi trường
81
+ Cài đặt dependencies cho cả Backend và Frontend:
82
+ ```bash
83
+ # Backend dependencies
84
+ cd backend && npm install
85
+
86
+ # Frontend dependencies
87
+ cd ../frontend && npm install
88
+ ```
89
+
90
+ ### 2. File cấu hình môi trường local (`backend/.env`)
91
+ Tạo file `backend/.env` với nội dung mẫu:
92
+ ```env
93
+ PORT=5000
94
+ JWT_SECRET=your_jwt_secret_key
95
+ ADMIN_USERNAME=admin
96
+ ADMIN_PASSWORD=your_password
97
+ NODE_ENV=development
98
+ ```
99
+ *Lưu ý: Nếu không có `DATABASE_URL`, hệ thống sẽ tự động tạo file cơ sở dữ liệu `database.sqlite` ở thư mục gốc backend để phát triển local.*
100
+
101
+ ### 3. Chạy chế độ Development
102
+ Chạy cả frontend và backend đồng thời qua proxy:
103
+ ```bash
104
+ # Terminal 1: Chạy Backend
105
+ cd backend && npm run dev
106
+
107
+ # Terminal 2: Chạy Frontend
108
+ cd frontend && npm run dev
109
+ ```
110
+ Truy cập: `http://localhost:3000` (Frontend) proxy tới `http://localhost:5000` (Backend).
111
+
112
+ ---
113
+
114
+ ## 📦 Hướng Dẫn Deploy (Deployment Guide)
115
+
116
+ ### 1. Deploy Backend (Hugging Face Spaces)
117
+ 1. Tạo một **Space** mới trên Hugging Face với SDK là **Docker**.
118
+ 2. Đẩy toàn bộ mã nguồn lên Space (bỏ qua `node_modules` và file `.env`).
119
+ 3. Truy cập **Settings** -> **Variables and secrets** của Space đó và cấu hình:
120
+ - `DATABASE_URL`: Đường dẫn kết nối PostgreSQL của Supabase.
121
+ - `JWT_SECRET`: Chuỗi khóa bảo mật JWT.
122
+ - `ADMIN_USERNAME`: Tài khoản admin mong muốn.
123
+ - `ADMIN_PASSWORD`: Mật khẩu admin mong muốn.
124
+ - `NODE_ENV`: `production`.
125
+
126
+ ### 2. Deploy Frontend (Vercel)
127
+ 1. Cập nhật URL backend của bạn trong `frontend/.env.production`:
128
+ ```env
129
+ VITE_API_URL=https://your-space-name.hf.space
130
+ ```
131
+ 2. Build và deploy bằng Vercel CLI hoặc GitHub Integration:
132
+ ```bash
133
+ cd frontend
134
+ npm run build
135
+ npx vercel --prod
136
+ ```
137
+ 3. Cấu hình domain `lyvuha.com` trỏ về dự án Vercel.
138
+
139
+ ---
140
+
141
+ *Hệ thống được phát triển và tối ưu hóa bởi Antigravity AI.*
142
+