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:
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.
-
Chọn tùy chọn image from a git repository từ menu image.
-
Chọn GitHub làm Service Provider, sau đó nhấn vào Configure Git.
-
Điều hướng đến repository's landing page, nhấn vào nút Code, và sao chép SSH URL.
-
Dán URL vào phần Generate SSH Key trên Appsmith.
-
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.
-
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.
-
Đánh dấu chọn Allow Write Access, sau đó nhấn Add Key.
-
Quay lại Appsmith, nhấn nút Connect Git.
-
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
Cài đặt
- Clone repository Appsmith từ GitHub:
git clone https://github.com/HANOI120104/Appsmith_Admin.git
cd Appsmith_Admin/deploy
- Khời chạy Appsmith
docker-compose up -d
-
Truy cập Appsmith tại http://localhost.
-
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