5 Triển khai và kiểm thử
4.6 Kiến trúc Ứng dụng di động
4.3.2.1 Redux
Redux là nơi quản lý dữ liệu dùng cho cả ứng dụng, bao gồm các thành phần:
• Action
• Reducer
• Store
• Middleware: Redux Saga
Quy trình từ khi người dùng thực hiện một thao tác trên ứng dụng tới khi nhận được phản hồi diễn ra như sau:
1. Người dùng thực thiện một thao tác trên UI Component. 2. UI Component dispatch Action.
3. Action được đưa qua Middleware(Redux Saga). Nếu các action không được đăng ký với redux saga, các action sẽ dispatch với reducer tương ứng. Trường hợp các action được đăng ký với redux saga, các hàm trong redux saga đăng ký tương ứng với các action sẽ được gọi đồng thời action sẽ dispatch tới reducer.
4. Khi nhận được phản hồi từ phía server redux saga dispatch action tương ứng để lưu trữ dữ liệu vào store.
5. UI được render lại dựa trên dữ liệu thay đổi trong store.
4.3.2.2 UI Component
UI component là component hiển thị UI tới người dùng. Gồm hai chức năng chính:
• Cập nhật UI dựa trên thao tác của người dùng và dữ liệu được lưu trữ trong store.
• Dispatch các Action Redux dựa vào thao tác của người dùng trên UI. Hệ thống gồm một ui component là Order trip component.
4.3.2.3 Socket Component
Socket component là component có nhiệm vụ kết nối thời gian thực tới server. Bao gồm hai chức năng chính:
• Kết nối ứng dụng với server thông qua websocket.
• Lắng nghe các sự kiện được gửi về từ server thông qua websocket và dispatch các Action Redux tương ứng với sự kiện.
4.3.3 Server
Server được hiện thực sử dụng Django(Python) với cơ sở dữ liệu Postgres và Redis.
• Postgres: cơ sở dữ liệu chính dùng để lưu trữ thông tin trên toàn bộ hệ thống.
• Redis: dùng cho việc cache dữ liệu, hỗ trợ django tạo các channels khi hiện thực service realtime.
Server đảm nhiệm hai chức năng chính là lưu trữ thông tin liên quan tới toàn bộ hoạt động của hệ thống và cập nhật thông tin realtime tới ứng dụng khách hàng.
Đối với chức năng lưu trữ thông tin liên quan tới toàn bộ hoạt động của hệ thống chi tiết gồm:
• Lưu trữ toàn bộ thông tin được yêu cầu cung cấp cho tài khoản liên quan đến người dùng.
• Cung cấp các báo cáo liên quan tới tài khoản cho quản trị viên.
• Cung cấp các báo cáo doanh thu, số lượng đơn hàng cho quản trị viên.
• Quản lý thông tin toàn bộ vận đơn trên hệ thống.
Đối với chức năng liên quan đến cập nhật thông tin realtime tới ứng dụng khách hàng chi tiết gồm:
• Kiểm tra yêu cầu kết nối channels.
• Xác thực các yêu cầu gửi đến qua token.
• Phân loại các sự kiện và gọi các thành phần con để xử lý yêu cầu.
4.3.4 Kiến trúc Server