Skip to content

pmnm2024/smart_tlu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Github license Open issues Open Pull Requests Commit activity GitHub contributors

SMART_TLU Documentation

Bug Report ⚠️

Request Feature 👩‍💻

Ứ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.

Amplication - Low Code Platform

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.

🔎 Danh Mục

  1. Giới Thiệu
  2. Chức Năng
  3. Tổng Quan Hệ Thống
  4. Cấu Trúc Thư Mục
  5. Hướng Dẫn Cài Đặt
  6. 🙌 Đóng Góp
  7. 📝 License

Giới Thiệu

  • 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.

Chức Năng Chính

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.

Tổng Quan Hệ Thống

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.\

Architecture

Hướng Dẫn Cài Đặt

Tất cả các images build từ services backend bạn có thể tìm thấy tại Docker Hub.

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

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.

Chạy docker tren window:

  1. Tạo 1 docker network create app-network
  2. Vào từng service chạy docker compose up -d

Cấu trúc thư mục

  • apps - Chứa các mô hình, services, kiến trúc của hệ thống.
  • Documents - Tài liệu về dự án.

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

Đóng góp cho dự án

Bug Report ⚠️

Request Feature 👩‍💻

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

Liên hệ

License

This project is licensed under the terms of the GPL V3 license.