SMART_TLU Documentation
Ứng dụng "Hỗ Trợ Nhân Đạo Thông Minh" (Smart Aid) hướng tới việc xây dựng một nền tảng công nghệ hiện đại để quản lý và tối ưu hóa các hoạt động hỗ trợ nhân đạo trong tình huống khẩn cấp.
Mục tiêu là phát triển một hệ thống "Hỗ trợ nhân đạo thông minh". Dựa trên các mô hình ngôn ngữ lớn cùng với kiến trúc microservices bằng low code platform .
Dự án được thực hiện trong cuộc thi Phần Mềm Nguồn Mở-Olympic Tin học Sinh viên Việt Nam 2024. Được được open source theo giấy phép GNU General Public License v3.0 bởi đội tác giả SMART_TLU.
Để biết thêm chi tiết về cuộc thi, bạn có thể xem tại đây.
Toàn bộ dự án được genrater code bởi Low code Amplication
Amplication là một nền tảng low-code giúp các nhà phát triển tạo ứng dụng nhanh chóng mà không cần phải viết quá nhiều mã. Nó cho phép bạn tạo API, cơ sở dữ liệu, và giao diện người dùng một cách tự động.
- Amplication là một nền tảng low-code giúp các nhà phát triển tạo ứng dụng nhanh chóng mà không cần phải viết quá nhiều mã. Nó cho phép bạn tạo API, cơ sở dữ liệu, và giao diện người dùng một cách tự động.
- Ứng dụng "Hỗ Trợ Nhân Đạo Thông Minh" (Smart Aid) hướng tới việc xây dựng một nền tảng công nghệ hiện đại để quản lý và tối ưu hóa các hoạt động hỗ trợ nhân đạo trong tình huống khẩn cấp. Ứng dụng sẽ giúp kết nối các bên liên quan (chính phủ, tổ chức phi chính phủ, nhà tài trợ, và người dân) để phân phối lương thực, vật tư y tế, và các nguồn lực một cách nhanh chóng, minh bạch và hiệu quả.
- Mục tiêu chính:
- Tăng cường khả năng ứng phó khẩn cấp: Rút ngắn thời gian giữa việc phát hiện nhu cầu và cung cấp hỗ trợ.
- Minh bạch hóa quá trình hỗ trợ: Đảm bảo việc phân phối tài nguyên công bằng và hiệu quả.
- Khuyến khích sự tham gia cộng đồng: Tạo điều kiện cho mọi người đóng góp và nhận hỗ trợ dễ dàng.
Project tập trung vào các chức năng chính như sau:
- Hệ thống đăng ký nhận hỗ trợ.
- Theo dõi nguồn lực và nhu cầu.
- Quản lý đóng góp từ cộng đồng.
- Báo cáo tình trạng thực địa.
- 🤖 Chat bot để cho người dùng hỏi và phát hiện ra các tình trạng khẩn cấp.
Backend của hệ thống được thiết kế theo kiến trúc microservices và được genrate bởi Amplication:
- EXPRESS API Gateway: API Gateway cho hệ thống.
- Nestjs: Amplication genrate code về nestjs.
- FastAPI: Dựng API cho Langchain Service.
- LangChain: Sử dụng để chỉnh sửa proms và lưu chữ hội thoại.
- Mongodb: Cơ sở dữ liệu quan hệ.
- Redis: Cơ sở dữ liệu NoSQL in-memory dạng key-value.
- RabbitMQ: Message broker cho hệ thống.
- Docker: Containerize các service.
- Docker Compose: Quản lý các container.
- FCM Firebase: Hệ thống push notication.
- N8N: Xây dựng hệ thống workflow cho chatbot.\
Tất cả các images build từ services backend bạn có thể tìm thấy tại Docker Hub.
Để 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.
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
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.
- Tạo 1 docker network create app-network
- Vào từng service chạy docker compose up -d
- 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 |
Nếu bạn muốn đóng góp cho dự án, hãy đọc CONTRIBUTING.md để tìm hiểu thêm chi tiết.
Chúng tôi rất trân trọng mọi đóng góp từ các bạn. Đừng ngần ngại tạo pull request và gửi đến dự án.
Theo dõi ChangeLog tại đây CHANGELOG.md
- Nguyễn Đình Tư: nguyendinhtu11022002@gmail.com
- Nguyễn Lê Tuấn Anh: tadzltv22082004@gmail.com
- Phạm Nhật Anh: pna120104@gmail.com\
This project is licensed under the terms of the GPL V3 license.