Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Redis

Xây dựng ứng dụng ghép đôi hiến máu thời gian thực với Redis

Hiến máu là cách đơn giản và an toàn để cứu sống một người. Tuy nhiên, việc tìm kiếm người hiến và bệnh nhân có nhóm máu phù hợp vẫn còn nhiều thách thức. Thời gian là yếu tố then chốt trong hiến máu, khiến việc kết nối người hiến với bệnh nhân đúng lúc trở nên cực kỳ quan trọng.

Quy trình càng hiệu quả, càng nhiều mạng người được cứu. Bhanu Korthiwada đã giải quyết bài toán này bằng ứng dụng Zindagi - một giải pháp tuyệt vời giúp đẩy nhanh toàn bộ quy trình hiến máu thông qua việc ghép đôi người hiến với bệnh nhân lý tưởng.

Yêu cầu cốt lõi của ứng dụng là truyền dữ liệu với hiệu suất tối đa để cung cấp cập nhật thời gian thực cho người dùng. Mọi độ trễ hay chậm trễ đều làm giảm trải nghiệm người dùng và không đáp ứng được nhu cầu cấp bách của hiến máu.

Để đáp ứng yêu cầu này, Redis được sử dụng làm cơ sở dữ liệu chính của ứng dụng, mang lại tác động lớn đến hiệu suất. Dữ liệu được truyền tải với hiệu suất tối đa. Người dùng nhận được cập nhật thời gian thực. Và quy trình hiến máu trở nên liền mạch.

Hãy cùng tìm hiểu Bhanu đã xây dựng ứng dụng này như thế nào. Trước khi đi sâu vào chi tiết, chúng tôi muốn giới thiệu thêm nhiều ứng dụng thú vị khác trên Redis Launchpad.

Đừng quên ghé thăm sau khi đọc bài viết này!

Cách xây dựng ứng dụng kết nối người hiến máu với bệnh nhân

  1. Bạn sẽ xây dựng gì?
  2. Những gì bạn cần?
  3. Kiến trúc
  4. Bắt đầu
  5. Cách sử dụng ứng dụng
  6. Nó hoạt động như thế nào?

1. Bạn sẽ xây dựng gì?

Bạn sẽ xây dựng một ứng dụng ghép đôi người hiến máu với bệnh nhân có cùng nhóm máu. Điều này thúc đẩy quy trình hiến máu liền mạch, hiệu quả hơn, tiết kiệm thời gian để cứu sống người.

Dưới đây chúng tôi sẽ đi qua từ A-Z những gì cần thiết để hiện thực hóa ứng dụng, cũng như các thành phần cần thiết. Từ khởi đầu đến hoàn thiện, mọi thứ sẽ được chia thành các bước nhỏ để việc xây dựng trở nên dễ dàng nhất.

Sẵn sàng bắt đầu?

Tuyệt, chúng ta bắt đầu ngay!

2. Những gì bạn cần?

RedisJSON: Triển khai tiêu chuẩn ECMA-404, Chuẩn trao đổi dữ liệu JSON, như kiểu dữ liệu gốc.

RediSearch: Cung cấp truy vấn nâng cao, chỉ mục thứ cấp và tìm kiếm toàn văn bản cho Redis.

Redis Pub/Sub: Dùng cho nhắn tin sự kiện, có thể gửi tin nhắn đến bất kỳ số lượng người đăng ký nào trên một kênh.

Telerik: Cung cấp nhiều công cụ phần mềm cho phát triển web, mobile, desktop và hơn thế nữa.

Blazor: Framework web mã nguồn mở miễn phí cho phép xây dựng ứng dụng web bằng C# và HTML.

.NET Core Runtime – Cung cấp dịch vụ cơ bản cho các ứng dụng kết nối internet.

3. Kiến trúc

Xây dựng ứng dụng ghép đôi hiến máu thời gian thực với Redis

4. Bắt đầu

Điều kiện tiên quyết

  • .NET Core – v5.0.x (phiên bản bản vá mới nhất)
  • Visual Studio 2019 16.9 hoặc Visual Studio Code 1.55
  • Docker – v19.03.13 (tùy chọn)
  • Auth0:
    • Domain
    • Client ID
    • Client Secret
  • SMTP (Tùy chọn): Tính năng tùy chọn. Có nhiều nhà cung cấp SMTP. Chọn dựa trên nhu cầu và giá cả. Một số lựa chọn:
    • SendGrid by Twilio
    • Amazon SES
    • Mail Jet
    • Mailgun
  • SMS: Chức năng SMS chưa được triển khai. Tuy nhiên, đã lên kế hoạch. Dưới đây là một số nhà cung cấp phổ biến:
    1. Msg91
    2. Twilio

Cài đặt cục bộ bằng Docker

Điều kiện tiên quyết

  • Docker
  • Docker Compose

Bước 1. Clone repository:

git clone https://github.com/redis-developer/rediszindagi

Cập nhật file

.env
với thông tin Auth0 và SMTP

Bước 2. Kiểm tra file Docker Compose

File Compose trên xác định hai dịch vụ cơ bản:

  • Redismod
  • rediszindagi

Redismod tích hợp sẵn các module như RedisJSON và RediSearch được sử dụng cho dự án này. Bạn cần truyền các biến môi trường Auth0. SMTP vẫn tùy chọn. Để đảm bảo tính bền vững, Docker volumes mount đã được thêm vào và ứng dụng được expose ra cổng 80.

Từ terminal/command prompt chạy

docker-compose up -d

Ứng dụng có thể truy cập qua localhost.

5. Cách dữ liệu được lưu trữ

  • Dữ liệu yêu cầu được lưu trữ trong nhiều khóa và nhiều kiểu dữ liệu.
    • Đối với mỗi yêu cầu:
      • ID:
        Guid
        dưới dạng chuỗi
      • Nhóm máu, Loại hiến, Độ ưu tiên, Trạng thái:
        C# ENUM
  • Redis JSON
    • Khóa hồ sơ người dùng: tiền tố:
      USER_PROFILE
      hậu tố: Auth0 name identifier
    • Khóa yêu cầu: tiền tố:
      BLOOD_REQUEST
      hậu tố: chuỗi Guid
  • Redis Publish:
    • Yêu cầu: Mọi yêu cầu hiến máu mới sẽ publish request id dưới dạng message đến topic
      URN:BLOODREQUESTS:NEW

Cách dữ liệu được truy cập:

  • Mẫu Repository C# được sử dụng, mọi lời gọi sẽ tạo instance sử dụng Connection Multiplexer

6. Cách sử dụng ứng dụng

Tạo tài khoản hoặc đăng nhập

Để tận dụng đầy đủ ứng dụng, người hiến máu cần tạo tài khoản. Bạn có thể làm điều này trên trang chủ bằng cách nhấp vào 'Đăng ký ngay'.

Xây dựng ứng dụng ghép đôi hiến máu thời gian thực với Redis

Thực hiện hiến máu

Nhấp vào nút hiến máu ở thanh điều hướng trên cùng. Sau đó bạn sẽ điền các trường thông tin để cập nhật nhóm máu và lượng máu muốn hiến vào cơ sở dữ liệu.

Xây dựng ứng dụng ghép đôi hiến máu thời gian thực với Redis

Nhận yêu cầu hiến máu

Sau khi tạo tài khoản, bệnh nhân phù hợp với nhóm máu của bạn sẽ được thông báo về sự sẵn sàng của bạn. Họ có thể gửi yêu cầu hiến máu. Để xem danh sách yêu cầu, nhấp vào tab 'Yêu cầu' trên thanh điều hướng. Tại đây bạn sẽ có cái nhìn tổng quan hoàn chỉnh về tất cả yêu cầu bệnh nhân gửi cho lượt hiến máu của bạn.

Xây dựng ứng dụng ghép đôi hiến máu thời gian thực với Redis

Kết luận: Cầu nối bệnh nhân với người hiến máu để cứu sống người nhờ Redis

Truy cập máu nhanh chóng là ranh giới giữa sống và chết đối với nhiều bệnh nhân. Việc ghép đôi người hiến với bệnh nhân phù hợp thường tốn nhiều thời gian, mỗi giây trôi qua đều đe dọa tính mạng bệnh nhân. Ứng dụng của Bhanu giúp loại bỏ rào cản này nhờ khả năng truyền dữ liệu giữa các thành phần với tốc độ ánh sáng của Redis.

Việc truyền dữ liệu hiệu quả như vậy cho phép Zindagi nhanh chóng ghép đôi người hiến máu với bệnh nhân phù hợp dựa trên các tiêu chí cho trước. Điều này đẩy nhanh toàn bộ quy trình hiến máu, cho phép người hiến và bệnh nhân tương tác thời gian thực và sắp xếp hiến máu.

Cốt lõi của ứng dụng là khả năng tập hợp tất cả các bên liên quan, cung cấp hướng đi tối ưu. Điều này có nghĩa là nhiều lượt hiến máu hơn, ít thời gian lãng phí hơn, và trải nghiệm hoàn toàn liền mạch cho mọi người.

Để hiểu trực quan hơn về cách ứng dụng hoạt động, hãy xem video YouTube này. Nếu bạn thích bài viết, hãy ghé Redis Launchpad để khám phá nhiều ứng dụng đổi mới đang tác động đến đời sống hàng ngày.

Chúng tôi có ứng dụng theo dõi xe buýt thời gian thực trên bản đồ. Có ứng dụng ngăn ngừa thiếu hụt vật tư tại bệnh viện ở các nước đang phát triển. Và nhiều hơn thế nữa đang chờ bạn khám phá.

Hãy ghé thăm ngay!

Xây dựng ứng dụng ghép đôi hiến máu thời gian thực với Redis

Ai đã tạo ứng dụng?

Bhanu Korthiwada

Xây dựng ứng dụng ghép đôi hiến máu thời gian thực với Redis

Bhanu là kỹ sư phần mềm giàu kinh nghiệm, hiện đang làm tư vấn viên cấp cao tại ADP. Nếu bạn muốn cập nhật các dự án mới nhất của anh, hãy theo dõi anh trên GitHub.