Chương 1. TỔNG QUAN DE TÀI: Giới thiệu tổng quan về dé tài đưa ra, các van để liên quan, mục đích, phạm vi, đối tượng và phương pháp nghiên cứu. CƠ SỞ LÝ THUYET: Giới thiệu các khái niệm lý thuyết, các công nghệ đã tìm hiểu và áp dụng để hiện thực hoá hệ thống. PHAN TÍCH VÀ THIẾT KE HỆ THONG: Dua ra phân tích đặc tả về các yêu cầu mà hệ thống cần đáp ứng, từ đó dé xuất kiến trúc, mô hình hệ thống tương ứng.
HIEN THUC HE THỒNG: Trình bày kết quả hiện thực hệ thống được để xuất, minh hoạ và mô tả giao diện, chức năng của hệ thống. THU NGHIỆM VA BAN LUẬN: So sánh và đánh giá kết quả của mô hình dự đoán của hệ thống so với các mô hình tương đương, đưa ra các nhận xét nhằm cải thiện và phát triển hệ thống. 23 Chương 2 CƠ CỔ LÝ THUYÊT 2.1 Giới thiệu về TypeScript Là một ngôn ngữ lập trình mã nguồn mở, được phát triển và duy trì bởi Microsoft. TypeScript được xem là một phần mở rộng của JavaScript, sử dụng cú pháp của JavaScript và bổ sung thêm các tính năng mạnh mẽ như kiểu tĩnh và hướng đối tượng để hỗ trợ Type (các kiểu dữ liệu).
TypeScript liên tục được cải tiễn và đã trở thành một trong những ngôn ngữ lập trình phổ biến giúp các lập trình viên viết mã dễ dàng và bảo trì các dự án phần mềm lớn một cách hiệu quả hơn.2 Tại sao nên sử dụng TypeScript Có các ưu điểm của TypeScript so với các lựa chọn khác như: — Kiểm tra kiểu tĩnh là một trong những đặc điểm nổi bật nhất của TypeScript, điều này giúp phát hiện các lỗi kiểu trong quá trình viết mã ngay lập tức, giảm thiểu các lỗi runtime, cải thiện độ tin cậy cũng như rút ngắn thời gian phát triển hệ thống. — TypeScript hỗ trợ đầy đủ các tính năng lập trình hướng đối tượng như lớp (class), giao diện (interface), kế thừa (inheritance), và đóng gói (encapsulation). 24 — Cách tổ chức code rõ ràng, hệ thống code hướng module, hỗ trợ namespace, giúp xây dựng và kiểm soát các hệ thống lớn một cách dễ dàng hơn. — TypeScript luôn sử dụng day đủ các cập nhật mới nhất của Javascript, ví dụ như ECMAScript 2015 (ES6).3 Áp dụng TypeScript vào hệ thông Với những ưu điểm đã nêu trên, nhóm chúng em áp dụng TypeScript vào việc phát triển giao diện người dùng cho thành phần Web UI, cung cấp giao diện Bảng điều khiển đơn giản, linh hoạt, hiện dai và dé sử dung cho người dùng hệ thống thông qua trình duyệt.
Object-Oriented DOM Manipulation ES 6 Features Hình 2.1: Các tính nang của TypeScript (maybe.works/blogs/typescript-what-is-its-power) 2.1 Giới thiệu ve PostgreSQL PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ va đối tượng (Object — Rela- tional Database Management System) mã nguồn mở, đã trải qua nhiều giai đoạn phát triển và hiện nay là một trong những hệ quản trị cơ sở dữ liệu phổ biến và mạnh mẽ nhất. PostgreSQL cung cấp khả năng mở rộng cao, hiệu suất ổn định và có thể chạy 25 trên nhiều hệ điều hành hay nhiều nền tảng khác nhau. Hơn nữa, cộng đồng mạnh mẽ và nguồn tài liệu phong phú giúp người dùng tiếp xúc với PostgreSQL dễ dàng tìm hiểu và học hỏi.2 Tại sao nên sử dụng PostgreSQL Một số ưu điểm nổi bật của PostgreSQL có thể kể đến như: — Cung cấp đa dạng kiểu dữ liệu như nguyên ham (integer, boolean, number, string), cau trúc (date/time, array, range), hình hoc (point, line, circle), document (json, xml, key-value),. — Dữ liệu được dam bảo tinh toàn ven bằng cách ràng buộc loại từ, khoá chính, khoá ngoại, khóa khuyến nghị, khóa hàm só,.
— Hỗ trợ xây dựng hàng rào bảo mật, xác thực mạnh (SCRAM-SHA-256, SSPI, LDAP, GSSAPI, Certificatem), hệ thống kiểm soát truy cập kĩ càng, bảo mật cấp độ cột — hàng. — Người dùng có thể thực hiện mở rộng qua các phương pháp lưu trữ, ngôn ngữ thủ tục như PL / PGSQL, Python, Perl, và nhiều ngôn ngữ khác. Ngoài ra còn có PostGIS, giúp kết nối cơ sở đữ liệu với giao diện SQL chuẩn.3 Áp dụng PostgreSQL vào hệ thong Với những ưu điểm của PostgreSQL đã được nêu ở trên, nhóm đã sử dụng Post- greSQL vào việc phát triển hệ quản trị cơ sở dif liệu cho hệ thống, dữ liệu từ Post- greSQL được truy xuất thông qua thành phan Bảng điều khiển để phục vụ hoạt động của hệ thống.1 Giới thiệu về Rest API REST API (Representational State Transfer Application Programming Interface) la một kiểu kiến trúc dùng để xây dựng các dịch vu web, cho phép các ứng dụng khác 26 Extensibility & Data Integrity Postgresal Features Security Concurrency Performance Reliability, Disaster Recovery Hình 2.2: Các tính nang của PostgreSQL (thomsondata.com/customer-base/companies-that-use-postgresql.php) nhau giao tiếp với nhau thông qua giao thức HTTP. REST API được thiết kế dựa trên các nguyên tắc của REST, một phong cách kiến trúc phần mềm do Roy Fielding giới thiệu vào năm 2000.
REST API dần được sử dụng rộng rãi trong phát triển ứng dụng web và di động, do tính đơn giản, hiệu quả và khả năng mở rộng của nó.2 Tại sao nên sử dung Rest API Các đặc điểm chính của REST API bao gồm: — Kiến trúc REST tách biệt giữa client và server, giúp cải thiện tính linh hoạt va khả năng mở rộng của hệ thống. Client và server có thể phát triển và triển khai 27 REQUEST | RESPONSE — © 0 Ce DATABASE WEB SERVER Hình 2.3: Kiến trúc của REST API (anonyviet.com/cung-tim-hieu-api-rest-api-va-restful-api-la-gi/) độc lập với nhau. — Mỗi yêu cầu từ client tới server phải chứa đầy đủ thông tin để server hiểu và xử lý. Server không lưu trữ bất kỳ trạng thái nào của client giữa các yêu cầu, giúp giảm tải đồng thời tăng tính linh hoạt ở phía server.
— Phản hồi từ server có thể được đánh dấu là có thể cache hoặc không, giúp cải thiện hiệu suất bằng cách giảm số lượng yêu cau cần thiết từ client tới server. — Sử dụng một giao diện thống nhất và đơn giản, thường dựa trên các phương thức HTTP như GET, POST, PUT, DELETE để thực hiện các thao tác CRUD tương ứng (Create, Read, Update, Delete). Diéu này giúp việc hiểu và sử dụng REST API trở nên dễ dàng hơn.3 Áp dung Rest API vào hệ thông Kiến trúc REST phù hợp trong việc thiết kế hệ thông phân tán, nơi mà các thành phần của hệ thống giao tiếp với nhau thông qua giao thức HTTP. REST API được sử dụng cho thành phần Bảng điều khiển để xử lí các yêu cầu từ Web UI, từ ứng dụng di động và từ các thiết bị thông qua các API được quy định sẵn.1 Giới thiệu về Android SDK Android SDK (Software Development Kit) là bộ công cụ phát triển phần mềm do Google cung cấp, giúp lập trình viên xây dựng và phát triển các ứng dụng trên nền tảng Android.
SDK bao gồm một loạt các công cụ, thư viện, tài liệu cần thiết cho việc lập trình ứng dụng Android. Việc sử dụng Android SDK giúp các lập trình viên dé dàng thiết kế, phát triển, kiểm thử và triển khai ứng dụng Android.2 Tại sao nên sử dụng Android SDK Các đặc điểm chính của Android SDK bao gồm: — Android SDK cung cấp một môi trường phát triển toàn diện bao gồm các công cụ xây dựng, gỡ lỗi, kiểm tra và tối ưu hóa ứng dụng. Điều này giúp đảm bảo chất lượng và hiệu suất của ứng dụng Android. — Google thường xuyên cập nhật Android SDK để hỗ trợ các phiên bản Android mới nhất, bao gồm cả tính năng mới và các bản vá bảo mật.
Điều này giúp ứng dụng luôn tương thích và an toàn trên các thiết bị Android hiện đại. — Android SDK đi kèm với tài liệu chi tiết và các ví dụ mã nguồn mẫu, giúp lập trình viên nhanh chóng nắm bắt và áp dụng các kỹ thuật phát triển ứng dụng Android. — Android SDK có một cộng đồng phát triển lớn mạnh, cung cấp nhiều nguồn tài nguyên, diễn đàn hỗ trợ và các plugin, thư viện mã nguồn mở giúp tăng tốc độ phát triển và giải quyết các vấn đề phát sinh. 29 — Android SDK dễ dàng tích hợp với các dịch vụ và API của Google như Google Maps, Firebase, và Google Play Services, mở rộng kha năng và tính nang của ứng dụng.3 Áp dụng Android SDK vào hệ thông Android SDK được sử dụng rộng rãi trong việc phát triển các ứng dụng di động trên nền tang Android.
Trong hệ thống này, Android SDK đóng vai trò giúp xây dựng nên ứng dụng di động để giao tiếp với Bảng điều khiển thông qua REST API, cung cấp giao diện hệ thống cho người dùng sử dụng thiết bị di động truy cập hệ thống.1 Giới thiệu về Keycloak Keycloak là một hệ thống quan lý danh tính và truy cập mã nguồn mở được phát triển bởi Red Hat. Keycloak cung cấp các tính năng xác thực và ủy quyển, cho phép tích hợp dé dàng vào hệ thống các chức năng quản lý người dùng, đăng nhập một lần (Single Sign-On), và kiểm soát truy cập. Giúp các nhà phát triển tận dụng những tính năng bảo mật mạnh mẽ mà không cần phải xây dựng lại một hệ thống quản lí danh tính mới.2 Tại sao nên sử dụng Keycloak Các đặc điểm nổi bật của Keycloak bao gồm: — Hỗ trợ nhiều cơ chế xác thực như đăng nhập bằng tên người dùng/mật khẩu, đăng nhập một lần (Single Sign-On), xác thực hai yếu tố (2FA), và các dịch vụ OAuth2 khác. — Tính năng SSO cho phép người dùng chỉ cần đăng nhập một lần để truy cập vào nhiều ứng dụng và dịch vụ khác nhau trong hệ thống, giúp cải thiện trải nghiệm người dùng và tăng cường bảo mật.
30 — Cung cấp các công cụ quản lý người dùng, nhóm người dùng và vai trò một cách chỉ tiết, cho phép dễ dàng kiểm soát quyền truy cập và quản lý người dùng trong hệ thống. — Hỗ trợ các giao thức bảo mật tiêu chuẩn như OAuth2, OpenID Connect, SAML, giúp dễ dàng tích hợp với nhiều ứng dụng và dịch vụ khác nhau. Keycloak Application User enters URL of an application Redirects to Keycloak Login Page User Gives Credentials + ! | Validates User <--! If Valid, Redirects to Application Invalid Credentials —> Hình 2.4: Luồng xác thực qua Keycloak (walkingtreetech.com/introduction- to-keycloak-and-the-need-for-containerization-cc55a12fbde3) 2.3 Áp dung Keycloak vào hệ thông Keycloak được tích hợp như một dịch vụ với vai trò xác thực và uỷ quyền cho các truy cập vào hệ thống. Đồng thời, chức năng quản lí người dùng và vai trò của Keycloak cũng được mở rộng và tích hợp vào hệ thống để quản lí quyền truy cập và quản lí các người dùng trong hệ thống.1 Giới thiệu về kiên trúc Microservices Microservices là loại kiến trúc phần mềm, trong đó hệ thống được cấu thành từ các dịch vụ nhỏ, độc lập, mỗi dịch vụ thực hiện một chức năng riêng biệt và giao tiếp với nhau thông qua các giao thức như HTTP.