Marketplace phi tập trung cho việc giao và nhận công việc, thanh toán tức thì bằng USDC.
- 🎯 Tôi muốn giao việc (Client)
- 💼 Tôi muốn nhận việc (Worker)
- 🛠️ Tôi là developer (Setup)
- ❓ Gặp vấn đề? (FAQ)
Mục tiêu: Đăng task → Đợi worker làm → Kiểm tra → Thanh toán USDC
1. Đăng nhập 2. Tạo task 3. Đợi worker 4. Kiểm tra 5. Thanh toán
↓ ↓ submit kết quả 💰 USDC
Login Publish ↓ ↓ tự động
Notification Accept/Reject
🌐 Qua Website (Dễ nhất)
Mở http://localhost:3001, click "Login", nhập:
- Email:
client1@paytask.com - Password:
password123
📮 Qua Postman
Request: Auth → POST Login
{
"email": "client1@paytask.com",
"password": "password123"
}🌐 Qua Website
- Click nút "Create Task"
- Điền form:
- Title: "Nhập liệu 100 sản phẩm"
- Description: Mô tả công việc chi tiết
- Category: "Data Entry"
- Reward:
50(USDC) - Quantity:
1 - Deadline: Chọn ngày
- Click "Create" → Task ở trạng thái
draft - Click "Publish Task" → Chuyển sang
open - ✅ Worker bắt đầu thấy task của bạn!
📮 Qua Postman
Request 1: Tasks → POST Create Task
{
"title": "Nhập liệu 100 sản phẩm",
"description": "Nhập dữ liệu từ file Excel",
"category": "Data Entry",
"reward": 50,
"qty": 1,
"deadline": "2025-12-31T23:59:59Z"
}Request 2: Tasks → POST Publish Task
- Params:
taskIdtừ response ở trên
Worker sẽ:
- Tìm thấy task của bạn
- Click "Accept" → Bắt đầu làm
- Upload file kết quả
- Click "Submit" → Bạn nhận notification 🔔
Bạn nhận được:
- 🔔 Notification: "New submission from Diana"
- 📧 Email alert (nếu bật)
🌐 Qua Website
- Click vào notification
- Xem submission details:
- 📥 Download file để kiểm tra
- ✅ QA Checks: Auto-validate
- 👤 Worker info: Rating, reputation
- Quyết định:
- ✅ Accept & Pay → Thanh toán ngay
- ❌ Reject → Yêu cầu làm lại
Nếu Accept:
Hệ thống tự động:
- 💰 Chuyển
50 USDCtừ settlement → worker wallet - ✅ Update status:
submitted→accepted - 🏆 Update task:
active→completed - 🔔 Gửi notification cho worker kèm payment signature
📮 Qua Postman
Request: Reviews → POST Accept Submission
{
"submissionId": "<SUBMISSION_ID>",
"feedback": "Perfect! Thank you!"
}Đánh giá worker để giúp cộng đồng:
- ⭐ Rating: 1-5 sao
- 💬 Comment: Feedback chi tiết
Mục tiêu: Tìm task → Accept → Làm việc → Submit → Nhận USDC
1. Tìm task 2. Accept 3. Upload 4. Submit 5. Nhận tiền
↓ ↓ file ↓ 💰 USDC
Discover Assigned ↓ Waiting tự động
↓ ↓ Done Review vào wallet
Filter Start work
🌐 Qua Website
Mở http://localhost:3001, click "Login", nhập:
- Email:
worker1@paytask.com - Password:
password123
🌐 Qua Website
- Click "Discover Tasks"
- Dùng filter:
- 📂 Category: Data Entry, Surveys...
- 💰 Min Reward: 10 USDC
- 📅 Deadline: Còn thời gian
- Click vào task → Xem details:
- 📋 Requirements
- 💵 Reward amount
- ⏰ Deadline
- 👤 Client info
📮 Qua Postman
Request: Tasks → GET Discover Tasks
Query params:
category=Data EntryminReward=10limit=20
🌐 Qua Website
- Ở trang task detail
- Click "Accept Task"
- Confirm → Chuyển đến task flow page
- ✅ Bắt đầu làm việc!
📮 Qua Postman
Request: Assignments → POST Accept Assignment
{
"taskId": "<TASK_ID>",
"workerId": "<YOUR_USER_ID>"
}Lưu assignmentId từ response!
🌐 Qua Website (Task Flow Page)
- 📖 Đọc kỹ instructions
- 💻 Hoàn thành công việc
- 📁 Chuẩn bị file (PDF, ZIP, DOC...)
- Click "Upload File"
- Chọn file → Đợi upload
- ✅ File URL hiển thị
📮 Qua Postman
Request: Submissions → POST Upload File
- Body: form-data
- Key:
file - Value: Chọn file từ máy
🌐 Submit Work
- Kiểm tra lại file URL
- Click "Submit Work"
- Confirm
- ✅ Đợi client review
💰 Nhận Tiền (Tự động)
Khi client accept:
- 🔔 Notification: "Your submission accepted!"
- 💰
50 USDC→ Wallet của bạn - 📝 Payment signature (có thể verify trên Solana Explorer)
Kiểm tra số dư:
- Web: Click avatar → "My Wallet"
- Postman:
Users → GET My Profile→ xemwallet.balance
- Node.js 18+
- PostgreSQL 14+
- Redis 7+
- npm/yarn
# 1. Clone repo
git clone https://github.com/PayTaskdz/PayTask.git
cd PayTask
# 2. Install backend
npm install
# 3. Setup database
cp .env.example .env
# Sửa .env với thông tin DB của bạn
npx prisma migrate dev
npx prisma db seed
# 4. Start backend
npm run dev
# ✅ Backend: http://localhost:3000
# 5. Install frontend (Terminal mới)
cd frontend/frontendpaytask
npm install
# 6. Start frontend
npm run dev
# ✅ Frontend: http://localhost:3001Mở browser:
- Frontend: http://localhost:3001
- API Docs: http://localhost:3000/api-docs
- Health: http://localhost:3000/health
- Mở Postman
- Import 2 files:
PayTask-API-Fixed.postman_collection.jsonPayTask-Development.postman_environment.json
- Chọn environment: "PayTask Development"
- ✅ Sẵn sàng test!
Clients:
client1@paytask.com/password123(Alice)client2@paytask.com/password123(Bob)
Workers:
worker1@paytask.com/password123(Diana - ⭐⭐⭐⭐)worker2@paytask.com/password123(Eve - ⭐⭐⭐)
Lý do: Chưa đăng nhập
Fix:
- Login lại
- Check localStorage có
accessToken - Postman: Check
{{authToken}}variable
Lý do: Không có quyền
Fix:
- Client chỉ accept/reject task của mình
- Worker chỉ submit assignment của mình
- Check đúng role
Lý do: TaskId sai hoặc đã xóa
Fix:
- Check lại taskId
GET /api/tasks/:idđể verify- Dùng Discover để tìm task mới
Lý do: Chưa accept task
Fix:
- Accept task trước (
POST /api/assignments/accept) - Lưu
assignmentIdtừ response - Dùng assignmentId để submit
Lý do: Đã submit rồi
Fix:
- Mỗi assignment chỉ submit 1 lần
- Đợi client reject → Submit lại
Lý do: Solana blockchain chậm
Fix:
- Đợi 10-15 giây
- Payment execute riêng, không timeout DB
- Check notification xem payment status
Lý do: Frontend config sai
Fix:
File .env.local:
# ✅ ĐÚNG
NEXT_PUBLIC_API_URL=http://localhost:3000
# ❌ SAI
NEXT_PUBLIC_API_URL=http://localhost:3000/apinpx prisma migrate reset
npx ts-node prisma/seed.tsnpx prisma studio
# Mở http://localhost:5555redis-cli
> FLUSHALL┌─────────────────────────────────────────────────────────────┐
│ PAYTASK WORKFLOW │
└─────────────────────────────────────────────────────────────┘
CLIENT WORKER
│ │
│ [1] Create Task (draft) │
│ │
│ [2] Publish Task (open) ────────────────────────► │
│ │
│ [3] Discover Tasks │
│ ↓ │
│ [4] Accept Task │
│ (in_progress) │
│ ↓ │
│ [5] Upload File │
│ ↓ │
│ ◄────────────────────────── [6] Submit Work │
│ Notification 🔔 (submitted) │
│ │
│ [7] Review Submission │
│ - Download file │
│ - Check quality │
│ │
│ [8] Accept & Pay ────────────────────────────────► │
│ 💰 Transfer USDC Notification 🔔
│ (accepted) 💰 USDC received
│ │
│ [9] Rate Worker │
│ ◄──────────────────────────────────────────────── │
│ [10] Rate Client │
│ │
✅ Complete ✅ Complete
Status Flow:
Task: draft → open → active → completed
Assignment: in_progress → submitted → completed
Submission: submitted → accepted/rejected
- COMPLETE_GUIDE.md - Tài liệu đầy đủ
- TASK_FLOW_INTEGRATION.md - Task flow chi tiết
- NOTIFICATION_API.md - Notification system
- Swagger UI: http://localhost:3000/api-docs
- Postman Collection: Interactive testing
- Prisma Studio: http://localhost:5555
- Luôn check status - Task/Assignment/Submission đều có status riêng
- Dùng Postman - Pre-request scripts tự set token
- Theo dõi notifications - Mọi action quan trọng đều có thông báo
- Check wallet balance -
GET /api/users/me - Payment signature - Verify trên Solana Explorer
- ✅ JWT authentication
- ✅ CORS configured
- ✅ File validation
- ✅ Rate limiting
- ✅ Wallet encryption
- ✅ Transaction timeout protection
- Client? → Quay lại hướng dẫn Client
- Worker? → Quay lại hướng dẫn Worker
- Developer? → Quay lại Setup
- Cần help? → support@paytask.com
Happy PayTasking! 🎉
Last Updated: October 31, 2025