mirror of
https://github.com/duongcamcute/tech-gadget-manager.git
synced 2026-03-03 02:37:02 +00:00
docs: add web demo section and cleanup remaining files
This commit is contained in:
@@ -1,83 +0,0 @@
|
||||
# Hướng Dẫn Phát Triển (Developer Guide)
|
||||
|
||||
Chào mừng bạn đến với **Tech Gadget Manager**! Tài liệu này sẽ giúp bạn thiết lập môi trường để phát triển tính năng mới cho dự án.
|
||||
|
||||
## 🛠️ Công Nghệ Sử Dụng
|
||||
|
||||
- **Framework**: Next.js 16 (App Router)
|
||||
- **Database**: SQLite + Prisma ORM
|
||||
- **State Management**: Zustand
|
||||
- **Styling**: Tailwind CSS
|
||||
- **UI Components**: Shadcn UI + Lucide React
|
||||
- **PWA**: `next-pwa`
|
||||
|
||||
## 🚀 Cài Đặt Môi Trường (Local Dev)
|
||||
|
||||
### 1. Yêu cầu
|
||||
- Node.js 18+
|
||||
- Git
|
||||
|
||||
### 2. Clone dự án
|
||||
|
||||
```bash
|
||||
git clone https://github.com/duongcamcute/tech-gadget-manager.git
|
||||
cd tech-gadget-manager
|
||||
```
|
||||
|
||||
### 3. Cài đặt dependencies
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### 4. Khởi tạo Database
|
||||
|
||||
Dự án sử dụng SQLite nên không cần cài đặt database server riêng.
|
||||
|
||||
```bash
|
||||
# Tạo file .env (nếu chưa có)
|
||||
echo 'DATABASE_URL="file:./dev.db"' > .env
|
||||
|
||||
# Chạy migration để tạo bảng
|
||||
npx prisma migrate dev
|
||||
```
|
||||
|
||||
### 5. Chạy ứng dụng
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
Truy cập: `http://localhost:3000`
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Cấu Trúc Thư Mục
|
||||
|
||||
- `src/app`: Chứa các Pages (Next.js App Router).
|
||||
- `src/components`: Các UI component nhỏ (Button, Input...).
|
||||
- `src/features`: Các module chức năng lớn (InventoryManager, Sidebar...).
|
||||
- `src/store`: Quản lý state toàn cục (useAuthStore...).
|
||||
- `src/lib`: Các hàm tiện ích (utils) và constants.
|
||||
- `prisma`: Schema database và file `dev.db`.
|
||||
|
||||
## 📦 Đóng Gói (Build)
|
||||
|
||||
Để kiểm tra bản build production:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
npm start
|
||||
```
|
||||
|
||||
## 🐳 Docker Build
|
||||
|
||||
Nếu bạn muốn test build Docker image tại máy:
|
||||
|
||||
```bash
|
||||
docker build -t tech-gadget-manager .
|
||||
docker run -p 3000:3000 tech-gadget-manager
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Chúc bạn code vui vẻ!** Nếu có thắc mắc, hãy tạo Issue trên Github.
|
||||
76
README.md
76
README.md
@@ -4,74 +4,72 @@
|
||||
|
||||

|
||||
|
||||
## 🌐 Web Demo
|
||||
|
||||
Trải nghiệm ngay phiên bản Demo trực tuyến tại đây:
|
||||
👉 **[Live Demo](https://tech-gadget-manager.vercel.app)**
|
||||
|
||||
> **⚠️ Lưu ý Web Demo**:
|
||||
> * Dữ liệu mẫu có thể được reset định kỳ.
|
||||
> * **Chế độ Read-Only**: Các tính năng Thêm/Sửa/Xóa sẽ bị khóa để đảm bảo an toàn.
|
||||
> * Tốc độ có thể chậm hơn bản tự host do giới hạn của gói Free.
|
||||
|
||||
---
|
||||
|
||||
## ✨ Giới Thiệu
|
||||
|
||||
Tech Gadget Manager là ứng dụng web giúp bạn tổ chức và quản lý tài sản công nghệ của mình.
|
||||
Tech Gadget Manager là giải pháp tự-host (self-hosted) giúp bạn kiểm soát toàn bộ tài sản công nghệ.
|
||||
|
||||
### Tính Năng Nổi Bật
|
||||
* 📱 **Giao diện hiện đại**: Tối ưu cho Mobile & Desktop (PWA).
|
||||
* 🏷️ **Quản lý Vị trí (Bag Mode)**: Biết chính xác món đồ đang ở túi nào.
|
||||
* ⚡ **Tra cứu nhanh**: Lọc theo công suất, độ dài, màu sắc...
|
||||
* 🤝 **Cho mượn**: Theo dõi ai mượn, ngày trả.
|
||||
* 🖨️ **QR Code**: In tem quản lý tài sản chuyên nghiệp.
|
||||
* 📱 **Mobile First**: Giao diện ứng dụng PWA mượt mà trên điện thoại.
|
||||
* 🏷️ **Bag Mode**: Quản lý đồ đạc theo từng Vị trí (Túi, Balo, Ngăn kéo).
|
||||
* ⚡ **Tra cứu**: Tìm kiếm theo thông số (W, mm, mAh), màu sắc.
|
||||
* 🤝 **Mượn/Trả**: Quản lý lịch sử cho mượn đồ.
|
||||
* 🖨️ **QR Code**: In tem định danh tài sản.
|
||||
* 🔐 **Bảo mật**: Admin an toàn, tự động khóa setup.
|
||||
|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
## 🚀 Cài Đặt (Docker)
|
||||
|
||||
Bạn có thể tự build và chạy Docker container từ source code này:
|
||||
Chạy 1 lệnh duy nhất để khởi tạo server:
|
||||
|
||||
1. **Build Image**:
|
||||
```bash
|
||||
docker build -t tech-gadget-manager .
|
||||
```
|
||||
```bash
|
||||
docker run -d \
|
||||
--name tech-gadget-manager \
|
||||
--restart unless-stopped \
|
||||
-p 3000:3000 \
|
||||
-v $(pwd)/db:/app/db \
|
||||
-e DATABASE_URL="file:./db/prod.db" \
|
||||
ghcr.io/duongcamcute/tech-gadget-manager:latest
|
||||
```
|
||||
|
||||
2. **Chạy Container**:
|
||||
```bash
|
||||
docker run -d \
|
||||
--name tech-gadget-manager \
|
||||
-p 3000:3000 \
|
||||
-v $(pwd)/db:/app/db \
|
||||
-e DATABASE_URL="file:./db/prod.db" \
|
||||
tech-gadget-manager
|
||||
```
|
||||
|
||||
3. **Truy cập**: `http://localhost:3000` (Tài khoản: `admin` / `admin`)
|
||||
* **Truy cập**: `http://localhost:3000`
|
||||
* **Tài khoản**: `admin` / `admin`
|
||||
|
||||
---
|
||||
|
||||
## 💻 Hướng Dẫn Dev (Phát Triển)
|
||||
## 💻 Hướng Dẫn Dev
|
||||
|
||||
Để chạy dự án trên máy tính cá nhân để chỉnh sửa code:
|
||||
|
||||
### Yêu Cầu
|
||||
* Node.js 20+
|
||||
* Git
|
||||
|
||||
### Các Bước
|
||||
1. **Clone Source**:
|
||||
```bash
|
||||
git clone https://github.com/duongcamcute/tech-gadget-manager.git
|
||||
cd tech-gadget-manager
|
||||
```
|
||||
|
||||
2. **Cài Đặt Library**:
|
||||
2. **Cài Đặt**:
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
3. **Khởi tạo Database**:
|
||||
```bash
|
||||
npx prisma migrate dev
|
||||
```
|
||||
|
||||
4. **Chạy Localhost**:
|
||||
3. **Chạy Local**:
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
Web sẽ chạy tại: `http://localhost:3000`
|
||||
Truy cập: `http://localhost:3000`
|
||||
|
||||
---
|
||||
*Project by DuongCamCute*
|
||||
*Created by [DuongCamCute](https://github.com/duongcamcute)*
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
app:
|
||||
container_name: tech-gadget-manager
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
restart: always
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
# Định nghĩa URL cho database SQLite
|
||||
# Lưu ý: file: phải trỏ tới đường dẫn bên trong container
|
||||
- DATABASE_URL=file:/app/db/prod.db
|
||||
- NODE_ENV=production
|
||||
volumes:
|
||||
# Map thư mục local ./data vào /app/db trong container
|
||||
# Đây là nơi file prod.db sẽ được tạo ra và lưu trữ
|
||||
- ./data:/app/db
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"git": {
|
||||
"deploymentEnabled": false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user