Skip to content

Backend

  • Toàn bộ mã nguồn backend sẽ nằm ở thư mục này
  • Cấu trúc thư mục backend hiện tại như sau:
apps/
├── api-gateway/my-gateway
├── dependencies
├── donation-service
├── fcm-service
├── langchain
├── mail-service
├── n8n
├── notification-service
├── scripts
├── support-request-service
├── user-service
├── warehouse-service

  • Thư mục api-gateway/my-gateway đóng vai trò API Gateway cho hệ thống, định tuyến và quản lý các yêu cầu từ client đến các service khác.
  • dependencies: Chứa các thư viện và phụ thuộc dùng chung giữa các service.
  • donation-service: Service cung cấp API để quản lý các hoạt động quyên góp.
  • fcm-service: Service đảm nhận việc gửi thông báo thông qua Firebase Cloud Messaging.
  • langchain: Hệ thống RAG (Retrieval-Augmented Generation) dùng để retrieve các điều mục, tri thức pháp luật liên quan đến câu hỏi của người dùng, sau đó qua một mô hình ngôn ngữ để sinh ra câu trả lời.
  • mail-service: Service hỗ trợ gửi email, chẳng hạn như thông báo hoặc xác thực.
  • n8n: Workflow automation tool tích hợp với hệ thống.
  • notification-service: Service quản lý thông báo cho người dùng.
  • scripts: Chứa các script hỗ trợ, như khởi tạo dữ liệu hoặc cấu hình.
  • support-request-service: Service xử lý các yêu cầu hỗ trợ từ người dùng.
  • user-service: Service cung cấp API để quản lý thông tin tài khoản người dùng.
  • warehouse-service: Service quản lý kho hàng và tài nguyên liên quan.

Hệ thống

Thiết kế theo kiến trúc microservices như hình vẽ bên dưới:

Architecture

Pre-requisites - Yêu cầu

Để cài đặt và chạy được dự án, trước tiên bạn cần phải cài đặt các công cụ bên dưới. Hãy thực hiện theo các hướng dẫn cài đặt sau, lưu ý chọn hệ điều hành phù hợp với máy tính của bạn:

Lưu ý: Mặc dù dự án đa phần sử dụng Amplication để genrate code vui lòng không sửa các file base trong scr code.

🔨 Cài Đặt Giao diện Admin qua Appsmith

Dùng trên cloud: https://www.appsmith.com/ 1. Mở Appsmith Workspace Homepage, sau đó nhấn vào nút Create New ở góc trên bên phải và chọn Import.

  1. Chọn tùy chọn image from a git repository từ menu image.

  2. Chọn GitHub làm Service Provider, sau đó nhấn vào Configure Git.

  3. Điều hướng đến repository's landing page, nhấn vào nút Code, và sao chép SSH URL.

  4. Dán URL vào phần Generate SSH Key trên Appsmith.

  5. Nhấn nút Generate SSH Keys, và các khóa ECDSA 256 hoặc RSA 4096 sẽ được hiển thị. Chọn loại khóa phù hợp với yêu cầu bảo mật và cấu trúc hệ thống của bạn.

  6. Sao chép một trong các khóa, sau đó điều hướng đến Repository Settings, vào phần Deploy Keys, nhấn Add Deploying Keys, dán khóa đã sao chép, và đặt một tiêu đề có ý nghĩa để sử dụng trong tương lai.

  7. Đánh dấu chọn Allow Write Access, sau đó nhấn Add Key.

  8. Quay lại Appsmith, nhấn nút Connect Git.

  9. Sau khi hoàn tất quy trình image, bạn cần cấu hình lại datasource vì Appsmith doesn’t export any configuration values để kết nối một datasource. Bạn có thể làm điều này trong Reconnect Datasources Modal hoặc chọn cấu hình lại chúng. Xem video hướng dẫn (https://docs.appsmith.com/advanced-concepts/version-control-with-git/import-from-repository)

HOẶC

Chạy trên Local:

Yêu cầu hệ thống

  1. Docker (version 20.10.7 or later)
  2. Docker-Compose (version 1.29.2 or later)

Cài đặt

  1. Clone repository Appsmith từ GitHub:
git clone https://github.com/HANOI120104/Appsmith_Admin.git
cd Appsmith_Admin/deploy
  1. Khời chạy Appsmith
docker-compose up -d
  1. Truy cập Appsmith tại http://localhost.

  2. Xem video trực tiếp: https://docs.appsmith.com/getting-started/setup/installation-guides/docker#install-appsmith

🔨 Cài Đặt Client web

Trước hết, hãy clone dự án về máy tính của bạn:

git clone https://github.com/HANOI120104/PMNM_Client

cd vào thư mục:

cd PMNM_Client

Chạy lệnh cài các thư viện liên quan:

npm install

chạy máy chủ phát triển

npm run dev

hoặc

### yarn dev

hoặc

### pnpm dev

hoặc

### bun dev

Mở http://localhost:3000 trên trình duyệt của bạn để xem kết quả.

🔨 Cài Đặt Backend

Amplication không giống các low code platform khác nó là BaaS, sẽ render code trực tiếp lên github, vì vậy vui lòng k sửa các file base trong scr code. Amplication có hỗ trợ seft-host nhưng đội ngũ Amplication không khuyến khích dùng seft host.

Trước hết, hãy clone dự án về máy tính của bạn:

git clone https://github.com/pmnm2024/smart_tlu

cd vào thư mục apps:

cd smart_tlu/apps

Chạy docker bằng script(dành cho linux và macos):

Bước này chỉ chạy khi bạn dùng hệ điều hành và macOS.

Sau khi di chuyển vào thư mục apps hãy di chuyển đến scripts:

cd scripts

Sau đó cấp quyền chạy cho tệp .sh

chmod u+x start_all.sh stop_all.stop

Sau khi cấp quyền chạy cho tệp .sh chạy lệnh:

./start_all.sh

để chạy tất cả các service.

Khi muốn dừng tất cả các service đang chạy:

./stop_all.sh

Lưu ý: Khi muốn phát triển 1 service riêng vui lòng khởi tạo service bằng Amplication hoặc khởi tạo bằng tay sau đó vui lòng khai báo service đã tạo trong start_all và stop_all.

PORT BINDING

  • Sau khi chạy xong, các service sẽ được chạy trên các port như sau:
Service PORT
API Gateway 9000:9000
Auth Service 8000:8000
Donate Service 8005:8005
Mail Service 8004:8004
FCM Service 8007:8007
Notification Service 8001:8001
SupportRequest Service 8006:8006
Warehouse Service 8002:8002

Một số giao diện mẫu

image image image image image image image image image