Xây dựng ứng dụng NodeJS để tư vấn sức khỏe cho cộng đồng

MỤC LỤC

Lý do nên sử dụng NodeJS

- Tốc độ cực nhanh: Được xây dựng dựa trên engine JavaScript V8 của Google Chrome, do đó các thư viện của nó có khả năng thực thi code chỉ rất nhanh. - NPM: Với hơn 50,000 package khác nhau, các developer có thể dễ dàng lựa chọn bất kỳ tính năng nào để xây dựng cho ứng dụng của mình. - Lập trình không đồng bộ: Mọi API của Node.JS đều có tính không đồng bộ (non- blocking), do đó một server dựa trên Node.JS không cần phải đợi API trả về dữ liệu.

- Không có buffering: Node.JS giúp tiết kiệm thời gian xử lý file khi cần upload âm thanh hoặc video vì các ứng dụng này không bao giờ buffer dữ liệu mà chỉ xuất dữ liệu theo từng phần (chunk). - Đơn luồng: Node.JS sử dụng mô hình đơn luồng với vòng lặp sự kiện. Do đó các ứng dụng có thể xử lý số lượng request lớn hơn rất nhiều so với các server truyền thống như Apache HTTP Server.

Ưu và nhược điểm 1. Ưu điểm

MongoDB

Cách thức hoạt động

- Mô hình dữ liệu Tài liệu (Document Model): MongoDB sử dụng mô hình dữ liệu tài liệu, nơi mỗi đối tượng hoặc bản ghi được biểu diễn dưới dạng tài liệu có thể chứa các trường và giá trị. - Indexing: MongoDB hỗ trợ việc tạo index để tăng tốc độ truy xuất dữ liệu. Index có thể được tạo trên một hoặc nhiều trường trong một bộ sưu tập.

- Replication: MongoDB hỗ trợ replication để đảm bảo tính sẵn sàng và sao lưu dữ liệu. Các bản sao của dữ liệu có thể tồn tại trên nhiều máy chủ, giúp nâng cao sự độ tin cậy và khả năng chịu lỗi. - Sharding: MongoDB cung cấp tính năng sharding để phân phối dữ liệu trên nhiều máy chủ, giúp mở rộng hệ thống và xử lý lưu lượng lớn.

- Ngôn ngữ truy vấn: Truy vấn trong MongoDB được thực hiện bằng cách sử dụng ngôn ngữ truy vấn mạnh mẽ, giúp tìm kiếm và lấy dữ liệu một cách linh hoạt.

Ưu điểm và nhược điểm 1. Ưu điểm

    - Khả năng mở rộng: MongoDB hỗ trợ sharding, cho phép mở rộng hệ thống trên nhiều máy chủ để đối mặt với tải cao. - Cộng đồng lớn và Hỗ trợ đa ngôn ngữ: MongoDB có một cộng đồng lớn, và hỗ trợ nhiều ngôn ngữ lập trình thông qua các trình điều khiển chính thức. - Tính Năng Replica Set: Cung cấp khả năng sao lưu và khả năng chịu lỗi thông qua các bản sao dữ liệu trên nhiều máy chủ.

    - Khả năng xử lý quan hệ: Trong trường hợp các mối quan hệ phức tạp giữa các bảng, một hệ quản trị cơ sở dữ liệu quan hệ (SQL) có thể phù hợp hơn. - Tài nguyên Tiêu tốn: MongoDB có thể tiêu tốn nhiều tài nguyên hơn so với một số hệ quản trị cơ sở dữ liệu khác, đặc biệt là khi xử lý lưu lượng dữ liệu lớn. Trong một số trường hợp, khi cần thực hiện các thao tác transactoin trên nhiều tài liệu, MongoDB có thể không hỗ trợ tốt như một hệ quản trị cơ sở dữ liệu quan hệ.

    - Học cong: Đối với những người mới sử dụng MongoDB, việc hiểu và sử dụng đúng cách có thể đòi hỏi một thời gian học tập. - Không có kiểm soát giao dịch ACID đầy đủ: Trong môi trường mà cần kiểm soát giao dịch chặt chẽ, một số hệ quản trị cơ sở dữ liệu SQL với hỗ trợ ACID đầy đủ có thể là lựa chọn hợp lý hơn.

    Đặc tả Use-case

    • Luồng xử lý event 1. Luồng đi chính
      • Luồng xử lý event 1. Luồng đi chính
        • Mô tả ngắn
          • Mô tả ngắn
            • Mô tả ngắn
              • Mô tả ngắn
                • Mô tả ngắn

                  Đặc tả Use-case “Symtomp check”

                  • Luồng xử lý event 1. Luồng đi chính

                    - Bước 4: Người dùng điền triệu chứng cũng như thông tin về năm sinh và giới tính - Bước 5: Hệ thống sẽ hiện thông báo kết quả chuẩn đoán.

                    • Mô tả ngắn
                      • Mô tả ngắn

                        Đặc tả Use-case “User management”

                        • Luồng xử lý event 1. Luồng đi chính

                          - Bước 4: Website hiển thị danh sách thông tin bác sĩ và người dùng - Bước 5: Admin xem thông tin và có thể xóa tài khoản mình muốn. - Luồng đi khác 2: Admin muốn xem thông tin người dùng - Bước 1: Admin nhấn vào mục user trong Dashboard.

                            Danh sách các lớp và mối liên hệ

                            Mô tả: Khi đã có email và password thì người dùng nhấn nút “Sign In” thì thực hiện đăng nhập nếu thông tin điền vào là đúng. Mô tả: Màn hình chính của website bao gồm thanh điều hướng đến các mục chức năng của chương trình. Mô tả: Điền các triệu chứng và thông tin khác như ngày sinh và giới tính để có thể nhận được kết quả chẩn đoán sơ bộ.

                            Mô tả: Danh sách các bài báo mới nhấn liên quan đến sức khỏe cũng như thanh công cụ tìm kiếm bài báo. Mô tả: Người dùng điền các thông tin cần thiết sau đó xác nhận mật khẩu để thay đổi. Mô tả: Màn hình cung cấp thông tin để người dùng ứng tuyển cho vị trí bác sĩ 4.11.

                            Mô tả: Màn hình để admin quản lý các yêu cầu ứng tuyển bác sĩ.