Web App, Mobile App TRYBUY chính thức ra mắt (FE: vite, react, BE: Nestjs, Aws...)

Nội dung bài viết

Video học lập trình mỗi ngày

Thật ra tôi nghĩ ai cũng đều biết đến Chợ Tốt, một mô hình cực kỳ thành công. Chính bản thân tôi cũng hay lên đó xem những món đồ công nghệ mà họ thường rao bán, nhưng thú thật là quá nhiều món.

Tôi muốn là có cái ứng dụng nào mà chỉ tập trung vào một ngách, giống như việc mỗi con đường trên SG này đều chỉ bán một món. Chợ SOÁI KÌNH LÂM - CHUYÊN VỀ VẢI, hay anh em đến khu vực Kim Biên (đường Vạn Tường, Quận 5) nổi tiếng về hóa chất...

Vì vậy chúng ta xây dựng một "sân chơi" dành riêng cho dân lập trình và quan trọng là tự tay xây dựng chúng đó là TRYBUY.

Intro: TryBuy

Đây là một dự án với ý tưởng đơn giản nhưng cực kỳ thực tế: xây dựng một sàn thương mại điện tử, một mạng xã hội dành riêng cho anh em lập trình viên chúng ta. Nơi đây sẽ là "chợ" để mua bán, trao đổi những món "vũ khí" đã làm nên tên tuổi của bạn: từ chiếc PC, con Laptop đã cùng bạn qua bao mùa deadline, cho đến cái bàn phím cơ gõ "sướng" cả tay khà khà...

Noted: Anh em có thể lấy Source cuối bài viết...

Architect: TryBuy

Trước tiên, hãy nói về kiến trúc của TRYBUY. Nếu bạn đã đồng hành cùng tôi qua Series NestJS Backend từ Section 1 đến 30, thì có lẽ các chức năng này quá quen thuộc, và giờ đây chỉ ghép lại và hoàn thành nó mà thôi.

Mỗi khái niệm mà chúng ta đã cùng nhau "mổ xẻ": từ JWT bảo mật, hệ thống phân quyền RBAC mạnh mẽ, tối ưu hiệu năng với Redis, cho đến tìm kiếm thông minh bằng Elasticsearch... tất cả chúng không còn là những bài học lý thuyết rời rạc. Giờ đây, chúng là những mảnh ghép hoàn hảo, sẵn sàng tạo nên một bức tranh tổng thể.

Mỗi bước đi nhỏ đã qua, giờ đây đã trở thành một con đường quen thuộc.

Đây là kiến trúc của TRYBUY, một mô hình hiện đại (cắt ra từ section 30 Nestjs backend), có khả năng mở rộng và được tin dùng bởi rất nhiều công ty công nghệ lớn hiện nay:

Các thành phần trong kiến trúc này chúng ta đã giải thích rất rõ và thực hành rất nhiều. Vì vậy, hôm nay, chúng ta sẽ không nói lại lý thuyết nữa, mà sẽ bắt tay vào việc biến sơ đồ này thành một sản phẩm mà chính tự tay anh em mình build đúng không?

Completes: TryBuy

Một số UI và API đã hoàn thiện và được đưa vào sử dụng các bạn có thể xem trực tiếp tại đây: trybuy , và hình ảnh được cắt ra từ dự án

Homepage

DetailsPage

Loginpage

RegisterPage

OTP EMAIL

Verify

Features: TryBuy


### I. Nhóm Tính Năng Nền Tảng (Core Platform Features)

#### 1. Hệ thống Xác thực & Người dùng
- **Đăng ký:**
  - Hỗ trợ đăng ký bằng Email & Mật khẩu với quy trình xác thực OTP.
  - Tích hợp đăng nhập/đăng ký nhanh qua **GitHub**.
- **Quản lý Hồ sơ:**
  - Cập nhật thông tin cá nhân (Nickname, avatar, bio, liên kết xã hội).
  - Trang hồ sơ công khai hiển thị các bài đăng và lịch sử.
  - Quản lý và thay đổi mật khẩu.
- **Hệ thống Phân quyền (RBAC):**
  - Các vai trò được định nghĩa rõ ràng: `Member`, `Verified Member`, `Moderator`, `Admin`.

#### 2. Hệ thống Bài đăng Sản phẩm
- **Tạo bài đăng:**
  - Form đăng bài chi tiết, giao diện hiện đại.
  - Hỗ trợ định dạng **Markdown** trong mô tả.
  - Upload nhiều hình ảnh.
  - Tùy chọn khai báo các sự cố sản phẩm đã gặp.
- **Hệ thống Kiểm duyệt:**
  - Bài đăng của `Member` sẽ ở trạng thái **"Chờ duyệt"**.
  - Bài đăng của `Verified Member` sẽ được **hiển thị ngay lập tức**.

---

### II. Nhóm Tính Năng "Chợ" - Tăng Cường Trải Nghiệm Mua Bán

#### 3. Tương tác & Giao tiếp Trực tiếp
- **Hệ thống Nhắn tin (Live Chat):**
  - `(Tính năng cốt lõi, yêu cầu Real-time)`
  - Chat trực tiếp giữa người mua và người bán.
  - Hỗ trợ gửi ảnh, thương lượng giá.
  - Lịch sử chat được lưu lại.
- **Mục "Hỏi & Đáp" công khai:**
  - Khu vực bình luận công khai dưới mỗi bài đăng để hỏi về sản phẩm.
  - Người bán và cộng đồng có thể tham gia trả lời.

#### 4. Hệ thống Tìm kiếm & Khám phá Nâng cao
- **Tích hợp Elasticsearch:**
  - Hỗ trợ tìm kiếm **Full-text** thông minh trên tiêu đề và mô tả.
  - Gợi ý từ khóa và tự động hoàn thành (Autocomplete).
- **Tìm kiếm theo Vị trí:**
  - Lọc sản phẩm theo thành phố, quận/huyện.
- **Lưu lại Tìm kiếm & Thông báo:**
  - Cho phép người dùng lưu lại bộ lọc tìm kiếm.
  - Tự động thông báo khi có sản phẩm mới phù hợp.

#### 5. Hệ thống Uy tín & Đảm bảo An toàn
- **Xác thực Tài khoản (KYC):**
  - Tùy chọn xác thực danh tính để nhận huy hiệu **"Người bán Tin cậy"**.
- **Đánh giá Người dùng (Sau giao dịch):**
  - Người mua và người bán đánh giá lẫn nhau (rating 5 sao & bình luận).
  - Điểm uy tín được hiển thị công khai trên hồ sơ.
- **Lịch sử Giao dịch:**
  - Hiển thị số lượng giao dịch thành công trên hồ sơ người dùng.
- **Cơ chế Báo cáo & Giải quyết Khiếu nại:**
  - Nút báo cáo nội dung hoặc người dùng vi phạm.
  - Hệ thống ticket để Moderator xử lý.

---

### III. Nhóm Tính Năng "Mạng Xã Hội" - Xây Dựng Cộng Đồng

#### 6. Tương tác Xã hội Nâng cao
- **Like/Unlike, Bình luận, Bookmark:**
  - `(Tính năng Like yêu cầu hiệu năng cao)`
- **Theo dõi (Follow):**
  - Theo dõi người bán uy tín.
  - **Trang "Feed cá nhân"** hiển thị bài đăng từ những người được theo dõi.
- **Tạo Bộ sưu tập (Collections):**
  - Người dùng có thể nhóm các sản phẩm vào các bộ sưu tập công khai (VD: "Góc setup WFH").

#### 7. Hệ thống Thông báo (Notifications)
- **Thông báo Real-time (Icon chuông):**
  - Cập nhật về tin nhắn mới, bình luận, lượt thích, người theo dõi, trạng thái bài đăng...
- **Thông báo qua Email/Push Notification:**
  - Dành cho các cập nhật quan trọng.

---

### IV. Nhóm Tính Năng Mở rộng & Kiếm tiền (Monetization)

#### 8. Dịch vụ & Tiện ích Cao cấp
- **Đẩy tin (Promote Post):**
  - Người bán trả phí để bài đăng được hiển thị ở vị trí ưu tiên.
- **Gói "Pro Seller":**
  - Gói thuê bao dành cho người bán chuyên nghiệp với các tính năng nâng cao:
    - Thống kê chi tiết về lượt xem, lượt liên hệ.
    - Huy hiệu "Shop Chuyên nghiệp".
    - Giới hạn đăng bài và số lượng ảnh cao hơn.
- **Tích hợp Giao hàng:**
  - Liên kết với các đối tác vận chuyển để tạo và theo dõi đơn hàng ngay trên nền tảng.
- **Thanh toán Đảm bảo (Escrow):**
  - TRYBUY đóng vai trò trung gian giữ tiền, chỉ thanh toán cho người bán khi người mua đã xác nhận nhận hàng, đảm bảo an toàn cho cả hai bên.

API: TryBuy

Hiện tại chúng ta có các tính năng sau khi đã phát triển ở giai đoạn đầu và đã XONG!

### =============================================
### ENV
### =============================================
# Các biến này sẽ được sử dụng trong toàn bộ file
@baseUrl = http://localhost:3000
@accessToken = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRpcHNnb2xhbmciLCJzdWIiOjYsImlhdCI6MTc1NTE0NTE2NCwiZXhwIjoxNzU1MjMxNTY0fQ.ZCUXPe9mQw6Xl5SAEVGd6Y8nCYDnQGBRKKzXqfCiXEQ


### =============================================
### VERIFY EMAIL: AWS SEND OTP
### =============================================
POST {{baseUrl}}/auth/send-otp
Content-Type: application/json

{
    "email": "services.tipjs@gmail.com"
}

### =============================================
### USER: REGISTER
### =============================================
POST {{baseUrl}}/auth/register 
Content-Type: application/json

{
    "username": "services",
    "nickname": "services",
    "email": "services.tipjs@gmail.com",
    "password": "@@@Abc123",
    "otp": "308637"
}

### =============================================
### USER: LOGIN
### =============================================
POST {{baseUrl}}/auth/login
Content-Type: application/json

{
    "username": "tipsgolang",
    "password": "123456789"
}

### =============================================
### USER: INFO
### =============================================
GET {{baseUrl}}/users/me
Content-Type: application/json
Authorization: Bearer {{accessToken}}



### =============================================
### POSTS MODULE - TẠO BÀI ĐĂNG MỚI
### =============================================

POST {{baseUrl}}/posts
Authorization: Bearer {{accessToken}}
Content-Type: application/json

{
    "title": "Bán màn hình Dell UltraSharp U2723QE 4K còn như mới",
    "description": "Do nâng cấp lên màn Apple Studio nên mình cần pass lại màn Dell U2723QE. Màn mua tại Phong Vũ, còn bảo hành 2 năm. Tình trạng hoàn hảo, không một vết xước, màu sắc cực chuẩn cho anh em dev và designer. Full box và phụ kiện.",
    "productName": "Dell UltraSharp U2723QE",
    "productBrand": "Dell",
    "productCategory": "Monitor",
    "price": 13500000,
    "condition": "LIKE_NEW",
    "images": [
        "https://i.dell.com/is/image/DellContent/01_dell-u2723qe-monitor-pro-shot.jpg",
        "https://i.dell.com/is/image/DellContent/02_dell-u2723qe-monitor-pro-shot.jpg"
    ],
    "location": "Quận 1, TP. Hồ Chí Minh"
}

### =============================================
### GET MODULE - GET LIST ALL
### =============================================
GET {{baseUrl}}/posts
Content-Type: application/json

### =============================================
### GET MODULE - GET ONE
### =============================================
GET {{baseUrl}}/posts/1
Content-Type: application/json
Authorization: Bearer {{accessToken}}

### =============================================
### GET MODULE - LIKE
### =============================================
POST  {{baseUrl}}/posts/1/likes
Content-Type: application/json
Authorization: Bearer {{accessToken}}

### =============================================
### GET MODULE - UNLIKE
### =============================================
DELETE {{baseUrl}}/posts/1/likes
Content-Type: application/json
Authorization: Bearer {{accessToken}}

Source: TruyBuy

Anh em có thể lấy Source tại đây: NestJS (30): Dự án FE + BE trybuy.com được lên kệ (aws, smtp, elastic, nginx, redis, mysql, kafka..)

Có thể bạn đã bị missing