Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 147 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
147
Dung lượng
8,06 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN TÌM HIỂU VỀ AI VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA (ỨNG DỤNG CUNG CẤP NỀN TẢNG MUA VÀ BÁN CÁC DỊCH VỤ KỸ THUẬT SỐ ONLINE) An application providing an online platform for buying and selling digital services GIẢNG VIÊN HƯỚNG DẪN CÔ HUỲNH HỒ THỊ MỘNG TRINH SINH VIÊN THỰC HIỆN LÊ HẢI PHONG – 20521743 TP HỒ CHÍ MINH, THÁNG 06 NĂM 2023 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN TÌM HIỂU VỀ AI VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA (ỨNG DỤNG CUNG CẤP NỀN TẢNG MUA VÀ BÁN CÁC DỊCH VỤ KỸ THUẬT SỐ ONLINE) An application providing an online platform for buying and selling digital services GIẢNG VIÊN HƯỚNG DẪN CÔ HUỲNH HỒ THỊ MỘNG TRINH SINH VIÊN THỰC HIỆN LÊ HẢI PHONG – 20521743 TP HỒ CHÍ MINH, 2023 LỜI CẢM ƠN Đầu tiên, nhóm chúng em xin gửi lời cảm ơn chân thành đến quý Thầy Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM quý Thầy Cơ khoa Cơng Nghệ Phần Mềm giúp cho nhóm chúng em có kiến thức làm tảng để thực dự án Đặc biệt, nhóm chúng em xin gửi lời cảm ơn lòng biết ơn sâu sắc tới Cô Huỳnh Hồ Thị Mộng Trinh thầy Huỳnh Ngọc Tín giúp nhóm em hồn thành tốt báo cáo đồ án Trong thời gian thực đề tài, nhóm em vận dụng kiến thức tảng tích lũy đồng thời kết hợp với việc học hỏi nghiên cứu kiến thức Từ đó, nhóm chúng em vận dụng tối đa thu thập để hoàn thành báo cáo đồ án tốt Tuy nhiên, q trình thực hiện, nhóm chúng em khơng tránh khỏi thiếu sót Chính vậy, nhóm chúng em mong nhận góp ý chân thành từ Cơ nhằm hồn thiện phần kiến thức mà nhóm chúng em học tập hành trang để nhóm chúng em thực tiếp đề tài khác tương lai Em xin chân thành cảm ơn Thành phố Hồ Chí Minh, tháng năm 2023 Lê Hải Phong TĨM TẮT Hiện nay, AI đóng vai trị quan trọng sống kỹ thuật số đại ngày, tiếp xúc đến AI lần cơng việc, sống ngày giải trí Việc tìm hiểu AI giúp hiểu rõ công nghệ tính “Ứng dụng cung cấp tảng mua bán dịch vụ kỹ thuật số online” ứng dụng minh họa áp dụng toán máy học (machine learning) phân tích cảm xúc đánh giá người dùng tập trung vào phân tích thực trạng ứng dụng cơng nghệ để từ xây dụng ứng dụng di động sử dụng mà khơng u cầu nhiều phần cứng, phần mềm Đáp ứng nhu cầu nhu cầu mua bán trao đổi dịch vụ người dùng người dùng Hiện thực bình luận mang tính tích cực tiêu cực nhằm hỗ trợ người dùng tiếp tục phát huy mặt làm cải thiện chất lượng dịch vụ tốt Đề tài việc tìm hiểu thực trạng, đưa vấn đề cịn tồn đọng cải thiện Xác định mục tiêu, phạm vi đề tài chức cần có hệ thống Ngồi việc xử lý nghiệp vụ cho hệ thống, nhóm tìm hiểu, so sánh lựa chọn công nghệ phù hợp giúp nâng cao trải nghiệm người dùng, tối ưu chi phí phát triển triển khai Nhờ việc phân tích yêu cầu rõ ràng, thời gian phát triển ngắn yêu cầu, tính thay đổi, q trình phát triển đề tài sử dụng mơ hình V-model cho việc xây dựng hệ thống Kết thu giai đoạn thiết kế kiến trúc hệ thống, sở liệu, giao diện thể sơ đồ người dùng, sơ đồ thiết kế sử dụng công cụ Figma Draw.io Trong giai đoạn thực hiện, client server phát triển song song sử dụng Flutter cho client C# với ASP.NET Core framework cho server, công cụ phát triển Visual Studio công cụ quản lý công việc Notion Công việc kiểm thử unit test thực xuyên suốt trình phát triển kiểm thử tích hợp cuối giai đoạn Trong giai đoạn vận hành, server triển khai lên máy chủ Azure, hồn tồn truy cập liệu thông qua api từ thiết bị gửi yêu cầu có chứa trường xác thực liệu hợp lệ Phần cuối báo cáo trình bày kết thực lên báo cáo, đưa kết luận hướng phát triển cho hệ thống tương lai Nội dung khoá luận trình bày chương: - Chương 01: Tổng quan, giới thiệu đề tài Trình bày sơ thực trạng, nhu cầu thực tế Xác định mục tiêu phạm vi đề tài - Chương 02: Khảo sát số hệ thống liên quan Tìm hiểm nghiệp vụ, giao diện so sánh, đánh giá phần mềm tương tự - Chương 03: Phân tích thiết kế hệ thống Phân tích yêu cầu, thiết kế, thực triển khai ứng dụng - Chương 04: Hiện thực hệ thống Giới thiệu quy trình phát triển phần mềm, giải thuật, công nghệ, tảng sử dụng đồ án - Chương 06: Đánh giá, kết luận Những kết đạt sau kết thúc đồ án Những hạn chế, khó khăn trình phát triển đồ án nêu hướng phát triển tương lai MỤC LỤC Chương 1.1 TỔNG QUAN, GIỚI THIỆU ĐỀ TÀI Sự khác biệt AI, Machine Learning Deep Learning 1.1.1 AI(Trí tuệ nhân tạo) 1.1.2 Machine learning 1.1.3 Deep learning 1.1.4 Tổng kết 1.2 Hiện trạng 1.2.1 Nhu cầu thực tế đề tài 1.2.2 Hiện trạng đơn vị cần xây dựng phần mềm 1.2.3 Các hạn chế, vấn đề thách thức tồn 1.3 Mục tiêu 1.3.1 1.4 Mục đích Phạm vi 1.4.1 Đối tượng sử dụng 1.4.2 Yêu cầu Chương Khảo sát số hệ thống liên quan 2.1 Toptal 2.2 Upwork 2.3 Freelancer 2.4 Fiverr 10 Chương 3.1 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 12 Use case Diagram 12 3.1.1 Sơ đồ Use case 12 3.1.2 Danh sách Actors 12 3.1.3 Danh sách Use case 13 3.1.4 Đặc tả Use case 15 3.2 Sequence diagram 33 3.2.1 Xác thực người dùng 33 3.2.2 Đối với người bán (Seller) 36 3.2.3 Đối với người mua (Buyer) 40 3.3 Activity diagram 46 3.3.1 Lược đồ hoạt động quản lý tài khoản 46 3.3.2 Lược đồ hoạt động quản lý đăng dịch vụ 47 3.3.3 Lược đồ hoạt động quản lý người dùng 48 3.3.4 Lược đồ hoạt động quản lý đơn hàng 49 3.3.5 Lược đồ hoạt động quản lý trò chuyện 50 3.3.6 Lược đồ hoạt động quản lý báo cáo, thống kê 51 3.3.7 Lược đồ hoạt động thiết lập chung 52 3.4 Class Diagram 53 3.5 State Diagram 53 3.6 Component Diagram 54 3.7 Thiết kế sở liệu 55 3.7.1 Sơ đồ ERD 55 3.7.2 Mô tả chi tiết 56 3.8 Thiết kế giao diện 63 3.8.1 Danh sách hình 63 3.8.2 Sơ đồ liên kết hình 65 3.8.3 Mô tả chi tiết hình 66 Chương TỔNG QUAN CÔNG NGHỆ 119 4.1 Thuật toán sử dụng 119 4.1.1 4.2 Thuật toán Bcrypt 119 Công nghệ sử dụng 121 4.2.1 Flutter 121 4.2.2 ASP.NET Core 121 4.2.3 Swagger 122 4.2.4 SignalR 123 4.2.5 JSON Web Token 124 4.2.6 Entity Framework Core 126 4.2.7 SQL Server 127 4.2.8 Azure App Service 128 4.2.9 Firebase 128 Chương Kết luận 130 5.1 Kết đạt 130 5.2 Hạn chế 131 5.3 Hướng phát triển 131 TÀI LIỆU THAM KHẢO 132 Tài liệu tiếng Anh 132 Tài liệu tiếng Việt 132 DANH MỤC HÌNH Hình 3.1 Sơ đồ use case 12 Hình 3.2 Sơ đồ đăng nhập 34 Hình 3.3 Sơ đồ đăng ký người dùng 34 Hình 3.4 Sơ đồ khôi phục mật 35 Hình 3.5 Sơ đồ cập nhật thông tin người dùng 36 Hình 3.6 Sơ đồ tạo đăng dịch vụ 36 Hình 3.7 Sơ đồ chỉnh sửa đăng 37 Hình 3.8 Sơ đồ xóa đăng 37 Hình 3.9 Sơ đồ xem nhu cầu quản lý người mua 38 Hình 3.10 Sơ đồ tạo gói dịch vụ tùy chỉnh 38 Hình 3.11 Sơ đồ xác nhận đơn hàng 39 Hình 3.12 Sơ đồ giao hàng 39 Hình 3.13 Sơ đồ yêu cầu làm lại đơn hàng 40 Hình 3.14 Sơ đồ xem đơn hàng 40 Hình 3.15 Sơ đồ hủy đơn hàng 41 Hình 3.16 Sơ đồ tìm kiếm dịch vụ 41 Hình 3.17 Sơ đồ xem dịch vụ 42 Hình 3.18 Sơ đồ mua dịch vụ 42 Hình 3.19 Sơ đồ xem danh sách yêu cầu 43 Hình 3.20 Sơ đồ tạo danh sách yêu cầu 43 Hinh 3.21 Sơ đồ nhóm đăng dịch vụ yêu thích 44 Hình 3.22 Sơ đồ nhóm người dùng u thích 45 Hình 3.23 Lược đồ hoạt động quản lý tài khoản 46 Hình 3.24 Lược đồ hoạt động quản lý đăng dịch vụ 47 Hình 3.25 Lược đồ hoạt động quản lý người dùng 48 Hình 3.26 Lược đồ hoạt động quản lý đơn hàng 49 Hình 3.27 Lược đồ hoạt động quản lý trị chuyện 50 Hình 3.28 Lược đồ hoạt động quản lý báo cáo thống kê 51 Hình 3.29 Lược đồ hoạt động thiết lập chung 52 Hình 3.30 Class Diagram 53 Hình 3.31 State Diagram 53 Hình 3.32 Component diagram 54 Hình 3.33 Lược đồ quan hệ ERD 55 Hình 3.34 Sơ đồ liên kết hình 65 Hình 3.35 Màn hình đăng nhập 67 Hình 3.36 Màn hình quên mật 69 Hình 3.37 Màn hình quên mật 71 Hình 3.38 Màn hình trang chủ 73 Hình 3.39 Màn hình quản lý đăng dịch vụ 74 Hình 3.40 Màn hình chi tiết đăng dịch vụ 76 Hình 3.41 Màn hình tạo đăng dịch vụ1 79 Hình 3.42 Màn hình tạo đăng dịch vụ 80 Hình 3.43 Màn hình tạo đăng dịch vụ 83 Hình 3.44 Màn hình tạo đăng dịch vụ 85 Hình 3.45 Màn hình chỉnh sửa thông tin đăng dịch vụ 87 Hình 3.46 Màn hình chỉnh sửa thơng tin đăng dịch vụ 89 Hình 3.47 Màn hình chỉnh sửa thơng tin đăng dịch vụ 92 Hình 3.48 Màn hình chỉnh sửa thơng tin đăng dịch vụ 94 Hình 3.49 Màn hình quản lý đơn hàng 96 Hình 3.50 Màn hình danh sách chi tiết đơn hàng 98 Hình 3.51 Màn hình quản lý danh sách yêu thích 100 Hình 3.52 Màn hình danh sách trò chuyện 103 Hình 3.53 Màn hình chi tiết trị chuyện người mua 105 Hình 3.54 Màn hình chi tiết trị chuyện người bán 107 Hình 3.55 Màn hình tạo giao dịch đơn hàng theo nhu cầu 108 Hình 3.56 Màn hình quản lý thu nhập 110 Hình 3.57 Màn hình lịch sử giao dịch, ví 111 Hình 3.58 Màn hình chi tiết thơng tin người dùng 113 Hình 3.59 Màn hình đánh giá người dùng 115 Hình 3.60 Màn hình danh sách cài đặt hệ thống 116 Hình 3.61 Màn hình quản lý thơng tin người dùng 117 Màn hình hiển thị sách hỗ trợ Card Card Đăng xuất tài khoản Card Màn hình thống kê thu nhập ứng dụng Bảng 3.86 Mơ tả đối tượng hình quản lý thơng tin người dùng • Danh sách biến cố: STT Biến cố Xử lý Cho phép người dùng linh hoạt chuyển ấn nút SwitchButton ấn nút Save Hiển thị hình danh sách u thích ấn nút Manage Request Chuyển sang hình quản lý yêu cầu sang chế độ người mua/người bán Chuyển sang hình thông tin chi tiết ấn nút My profile ấn nút In-app credit Chuyển sang hình quản lý ví điện tử ấn nút Preferences Chuyển sang hình cài đặt hệ thống Ấn nút Support Ấn nút Earnings Hiển thị hình thống kê thu nhập Ấn nút Log out Đăng xuất khỏi ứng dụng người dùng Hiển thị hình sách hỗ trợ ứng dụng Bảng 3.87 Biến cố xử lý hình quản lý thơng tin người dùng 118 CHƯƠNG 4.1 TỔNG QUAN CƠNG NGHỆ Thuật tốn sử dụng 4.1.1 Thuật toán Bcrypt Để mật an toàn sở liệu hệ thống bị rò rỉ, cần băm mật trước sử dụng Vì tính chất hàm băm đầu vào kết cho giá trị không đổi, việc sử dụng thuật tốn băm thơng thường dễ bị kẻ công suy phương pháp Dictionary Attack, Rainbrow Table Attack, … Bcrypt thuật toán mã hoá mật tạo Niels Provos David Mazières vào năm 1999, hoạt động dựa thuật tốn mã hóa Blowfish Nhằm tạo khó khăn, giảm tốc độ giải mã để tìm mật cơng, Bcrypt tạo chuỗi mã hoá ngẫu nhiên sau lần tạo Bcrypt kết hợp chế băm, yếu tố salt stretching, cụ thể sau: Cơ chế băm: • Giá trị băm khơng thể dịch ngược lại giá trị ban đầu • Với giá trị đầu vào, hàm băm cho kết đầu • Đầu vào khác cho giá trị đầu khác Yếu tố salt: Giá trị đầu vào thêm chuỗi ngẫu nhiên, giúp giảm bớt khả kẻ cơng có liệu tính tốn từ trước tốn nhiều thời gian để tìm Stretching: Các máy tính có tốc độ xử lý nhanh, chế giúp làm chậm q trình băm liệu hay cịn gọi tăng tải, khiến kẻ công tốn nhiều thời gian để có liệu băm 119 Hình 4.1 Tốc độ băm số thuật toán phổ biến1 Bcrypt chạy pha: • Pha 1: Hàm EksBlowfishSetup gọi để chuẩn bị cho trình băm với chi phí mong muốn, salt mật dùng cho khởi tạo trạng thái eksblowfish Trong trường hợp mật khơng đủ tốt q ngắn, xử lý tạo mật có độ dài lớn Mục đích bước tăng cường sức mạnh key để làm chậm tốc độ tính tốn từ giảm tốc độ kẻ cơng Hình 4.2 Mã giải thuật tốn băm Bcrypt2 • Pha 2: Giá trị 192 bits OrpheanBeholderScryDoubt mã hoá 64 lần sử dụng eksblowfish với chế độ ECB3 Đầu pha giá trị cost 128 bits salt ghéo với kết vịng lặp mã hố Nguồn: https://asecuritysite.com/encryption/bcrypt Nguồn: https://auth0.com ECB viết tắt của: Block cipher mode of operation 120 Hình 4.3 Kết qủa cuối q trình băm4 4.2 Cơng nghệ sử dụng 4.2.1 Flutter Flutter công cụ phát triển phần mềm giao diện người dùng với mã nguồn mở Google tạo Flutter sử dụng để phát triển ứng dụng đa tảng cho nhiều hệ điều hành như: iOS, Android, Linux,… từ sở mã nguồn Flutter phát triển nhằm giải toán thường gặp mobile Fast Development Native Performance Nếu React Native đảm bảo Fast Development code native đảm bảo Native Performance Flutter làm điều 4.2.2 ASP.NET Core Hình 4.4 Logo ASP.NET Core5 Nguồn: https://asecuritysite.com Nguồn: https://dotnet.microsoft.com/en-us/apps/aspnet 121 ASP.NET Core gì? Nó open-source framework đa tảng (crossplatform) cho việc xây dựng ứng dụng dựa kết nối đám mây, giống web apps, IoT backend cho mobile Ứng dụng ASP.NET Core chạy NET Core phiên đầy đủ NET Framework Nó thiết kế để cung cấp tối ưu development framework cho dụng mà triển khai đám mây (clound) chạy on-promise Nó bao gồm thành phần theo hướng module nhằm tối thiểu tài nguyên chi phí phát triển, bạn giữ lại mềm giẻo việc xây dựng giải pháp bạn Bạn phát triển chạy ứng dụng ASP.NET Core đa tảng Windows, Mac Linux Đồng thời trở thành mã nguồn mở Đây thay đổi lớn theo quan trọng ASP.NET Core Điều mà trước khó có lập trình viên nghĩ đến Có lẽ xu mà ngơn ngữ lập trình hướng tới 4.2.3 Swagger Swagger open source dùng để phát triển, thiết kế, xây dựng làm tài liệu cho hệ thống RESTfull Web Service Ta có demo Swagger sau:Swagger cung cấp công cụ hỗ trợ việc tạo doc: Swagger UI, Swagger Editor, Swagger Codegen, Swagger Hub, Swagger Inspector Trong cơng cụ open source, Swagger Hub swagger Inspector công cụ cao cấp phải trả phí, nhiên dùng free vịng 30 ngày Vậy thuận tiện, tìm hiểu viết doc APIs SwaggerUI Swagger UI công cụ giúp tạo trang html css mô tả APIs cấu hình file yaml Ngồi ra, cơng cụ cịn cho phép ta mockup đến api để xem kết Hình 4.5 Swagger UI 122 4.2.4 SignalR ASP.NET SignalR thư viện cho lập trình viên Asp.Net đơn giản hóa trình thêm chức web real-time phát triển ứng dụng Real-time web functionality gì? Đó khả server đẩy nội dung tới client kết nối cách tức Nó khác với giao thức HTTP thông thường: server đợi yêu cầu từ client trả nội dung tương ứng SignalR sử dụng chức web real-time Trong ứng dụng chat web ví dụ điển hình Ngồi ra, ứng dụng cho dashboards, monitoring, collaborative gợi ý cho việc sử dụng SignalR SignalR cung cấp API đơn giản cho việc tạo server-to-client remote procedure call (RPC) để gọi hàm javascript trình duyệt (và tảng khác) từ code Net server-side SignalR bao gồm API cho việc quản lý kết nối (connect disconnect events) kết nối nhóm Hình 4.6 Cách hoạt động SignalR SignalR xử lý quản lý kết nối cách tự động, cho bạn truyền thông điệp tới tất client kết nối cách đồng loạt, giống chat room Bạn 123 gửi thơng điệp tới client xác định Kết nối client server liên tục, không giống kết nối HTTP cổ điển, mà thành lập lại kết nối cho lần giao tiếp SignalR hỗ trợ chức "server push", server code gọi tới client code trình duyệt "Remote Procedure Calls" (RPC), sử dụng Service Bus, SQL Server hay Redis SignalR mã nguồn mở, truy cập thơng qua GitHub 4.2.5 JSON Web Token Hình 4.7 Logo JSON Web Token (JWT)6 JSON Web Token (JWT) chuẩn mở (RFC 7519) định nghĩa cách nhỏ gọn khép kín để truyền cách an tồn thơng tin bên dạng đối tượng JSON Thơng tin xác minh đáng tin cậy có chứa chữ ký số JWTs ký thuật tốn bí mật (với thuật tốn HMAC) public / private key sử dụng mã hoá RSA Một ví dụ JWT Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEzODY4OTkxMzEsImlzcyI6Im ppcmE6MTU0ODk1OTUiLCJxc2giOiI4MDYzZmY0Y2ExZTQxZGY3YmM5MGM4Y WI2ZDBmNjIwN2Q0OTFjZjZkYWQ3YzY2ZWE3OTdiNDYxNGI3MTkyMmU5Iiwia WF0IjoxMzg2ODk4OTUxfQ.uKqU9dTB6gKwG6jQCuXYAiMNdfNRw98Hw_IWuA5 MaMo Thoạt trông phức tạp hiểu, cấu trúc JWT đơn giản sau: .. Nguồn: https://jwt.io/ 124 Nói cách khác, JWT kết hợp (bởi dấu ) Object Header định dạng JSON encode base64, payload object định dạng JSON encode base64 Signature cho URI mã hóa base64 Thành phần JWT: - Header: bao gồm hai phần chính: loại token (mặc định JWT - Thông tin cho biết Token JWT) thuật toán dùng để mã hóa (HMAC SHA256 HS256 RSA) Hình 4.8 Nội dung header JWT - Payload chứa claims Claims biểu thức thực thể (chẳng hạn user) số metadata phụ trợ Có loại claims thường gặp Payload: reserved, public private claims § Reserved claims: Đây số metadata định nghĩa trước, số metadata bắt buộc, số lại nên tuân theo để JWT hợp lệ đầy đủ thông tin: iss (issuer), iat (issued-at time) exp (expiration time), sub (subject), aud (audience), jti (Unique Identifier cho JWT Hình 4.9 Nội dung Reserved claims § Public Claims - Claims cộng đồng cơng nhận sử dụng rộng rãi 125 § Private Claims - Claims tự định nghĩa (không trùng với Reserved Claims Public Claims), tạo để chia sẻ thông tin parties thỏa thuận thống trước - Chữ ký Signature JWT chuỗi mã hóa header, payload với chuỗi bí mật theo ngun tắc sau: Hình 4.10 Nguyên tắc chuỗi bí mật - Do thân Signature bao gồm header payload nên Signature dùng để kiểm tra tính tồn vẹn liệu truyền tải 4.2.6 Entity Framework Core Hình 4.11 Logo ORM Sequelize7 Entity Framework Core (EF Core) framework ánh xạ sở liệu - đối tượng cho NET Nó hỗ trợ truy vấn LINQ, theo dõi thay đổi, cập nhật thay đổi cấu trúc EF Core hoạt động với SQL Server/ SQL Azure, SQLite, Azure Cosmos DB, MySQL, PostgreSQL nhiều sở liệu khác thơng qua mơ hình plugin sở liệu Nguồn: https://learn.microsoft.com/en-us/ef/ 126 4.2.7 SQL Server Hình 4.12 Logo SQL Server8 SQL server hay cịn gọi Microsoft SQL Server, từ viết tắt MS SQL Server Đây loại phần mềm phát triển Microsoft sử dụng để dễ dàng lưu trữ cho liệu dựa theo tiêu chuẩn RDBMS Từ đó, người ta lưu trữ liệu dựa vào tiêu chuẩn RDBMS hệ quản trị sở liệu dạng quan hệ đối tượng SQL Server có khả cung cấp đầy đủ công cụ cho việc quản lý từ giao diện GUI đến sử dụng ngôn ngữ cho việc truy vấn SQL Điểm mạnh SQL điểm mạnh có nhiều tảng kết hợp như: ASP.NET, C# để xây dựng Winform có khả hoạt động độc lập Tuy nhiên, SQL Server thường kèm với việc thực riêng ngôn ngữ SQL, T-SQL, Cụ thể sau: • T-SQL loại ngôn ngữ thuộc quyền sở hữu Microsoft gọi với tên Transact-SQL Nó thường cung cấp thêm nhiều cho khả khai báo biến, thủ tục lưu trữ xử lý ngoại lệ, • SQL Server Management Studio loại cơng cụ giao diện cho máy chủ sở liệu SQL, thơng thường hỗ trợ cho môi trường 64 bit 32 bit Những thành phần SQL Server gì? SQL Server trải qua 20 năm phát triển đề version cụ thể khác Các mô hình Client - Server chia làm thành phần bao gồm: • Workstation: Nó cài đặt thiết bị vận hành để trở thành phần mềm tương tác với hệ thống máy chủ Server Nguồn: https://www.microsoft.com/en-us/sql-server 127 • Server: Được cài đặt máy chủ chính, là: SQL server, SQL Server Agent, SSIS, SSAS, Ngồi ra, bạn hồn tồn cài đặt nhiều phiên SQL Server máy chủ điều giúp tiết kiệm chi phí mua Server để hoạt động cần nhiều phiên khác Nó bảo mật tách biệt hoàn toàn giúp cho hệ thống an tồn 4.2.8 Azure App Service Hình 4.13 Azure Web app9 Azure App Service dịch vụ dựa HTTP để lưu trữ ứng dụng web, API REST mobile backends Bạn phát triển ứng dụng ngơn ngữ lập trình u thích mình, chẳng hạn NET, NET Core, Java, Ruby, Node.js, PHP Python Các ứng dụng chạy mở rộng cách dễ dàng môi trường Windows Linux App Service không bổ sung sức mạnh Microsoft Azure cho ứng dụng chẳng hạn bảo mật, cân tải, tự động cân quản lý tự động, mà bạn cịn tận dụng khả DevOps chẳng hạn triển khai liên tục từ Azure DevOps, GitHub, Docker Hub nguồn khác, hệ thống quản lý gói, mơi trường dàn dựng, tên miền tùy chỉnh chứng SSL Với Azure App Service, bạn trả cho lượng tài nguyên Azure mà bạn sử dụng Lượng tài nguyên Azure mà bạn sử dụng xác định gói App Service mà bạn lựa chọn để sử dụng cho ứng dụng 4.2.9 Firebase Nguồn: https://azure.microsoft.com/en-us 128 Hình 4.14 Firebase10 Firebase tảng để phát triển ứng dụng di động trang web, bao gồm API đơn giản mạnh mẽ mà không cần backend hay server Firebase dịch vụ sở liệu hoạt động tảng đám mây – cloud Kèm theo hệ thống máy chủ mạnh mẽ Google Chức giúp người dùng lập trình ứng dụng cách đơn giản hóa thao tác với sở liệu Cụ thể giao diện lập trình ứng dụng API đơn giản Mục đích nhằm tăng số lượng người dùng thu lại nhiều lợi nhuận Đặc biệt, dịch vụ đa bảo mật cực tốt Firebase hỗ trợ hai tảng Android IOS Khơng có khó hiểu nhiều lập trình viên chọn Firebase làm tảng để xây dựng ứng dụng cho hàng triệu người dùng toàn giới 10 Nguồn: https://firebase.com/ 129 CHƯƠNG 5.1 KẾT LUẬN Kết đạt Thơng qua việc nghiên cứu tìm hiểu cơng nghệ, đặc biệt cơng nghệ mới, nhóm phát triển ứng dụng giao dịch dịch vụ thương mại người bán người mua Source code ứng dụng: - Client-side (Mobile app): - Server-side: Ứng dụng truy cập tải từ source chạy với tài khoản truy cập sau: Email Password (email) (mật khẩu) User test@gmail.com 123123123 User test2@gmail.com 123123123 User test3@gmail.com 123123123 Vai trò Bảng 5.1 Bảng danh sách tài khoản truy cập Về việc tổ chức quản lý nhóm: - Hiểu vận dụng tốt kiến thức học lớp quy trình phát triển phần mềm để tăng tính hiệu việc làm teamwork - Sử dụng công cụ hỗ trợ Notion giúp việc quản lý trở nên đơn giản hơn, trực quan hơn, có định hướng - Sử dụng quản lý source code GitHub, giúp việc giao tiếp, phát triển phần thành viên nhóm tốt - Các thành viên chịu học hỏi kiến thức trao đổi kiến thức cho Về mặt kỹ thuật, nhóm em đạt kết sau: - Cách xây dựng ứng dụng theo mơ hình Client-Server - Tìm hiểu biết cách triển khai máy chủ lên tảng đám mây để sử dụng khơng mạng cục 130 - Sử dụng thư viện State Management GetX theo kiến trúc MVVM cho ứng dụng, thư viện SignalR cho tính chat real-time Về mặt thực tiễn nhóm đạt được: - Nâng cao khả tìm hiểu nghiên cứu công nghệ, đặc biệt công nghệ - Hiểu quy trình phát triển ứng dụng hoàn chỉnh - Cải thiện kỹ lên kế hoạch điều phối công việc 5.2 Hạn chế Về việc tổ chức quản lý nhóm: - Có số cơng việc khơng hồn thành đặt Phải thay đổi linh hoạt sát để theo kịp tiến độ Về sản phẩm phần mềm: - Các cơng nghệ cịn chưa hồn thiện, thường xun gặp vấn đề liên quan đến mã nguồn Cùng với việc sử dụng package cũ dẫn đến cộng đồng phát triển chưa lớn mạnh gây tốn nhiều thời gian để sửa lỗi - Khối lượng công việc cần thực nhiều nên chịu áp lực mặt thời gian - Nhiều thành phần giao diện chưa hỗ trợ, phải tự phát triển từ đầu - Ứng dụng cịn thao tác thủ cơng, chưa tự động hóa nhiều thao tác 5.3 Hướng phát triển Đề tài cịn mở rộng phát triển thêm nhiều tính hữu ích cho người dùng như: - Ví tiền tốn tích hợp với nhiều phương thức toán phổ biển momo, zalopay, … - Tính tố cáo người dùng có admin kiểm duyệt đơn tố cáo - Tính chat gửi trực tiếp tệp đính kèm thu âm lên, gọi video trực tiếp - Gửi thơng báo đẩy đến người dùng có tin nhắn đơn hàng chuyển trạng thái 131 TÀI LIỆU THAM KHẢO Tài liệu tiếng Anh [1] Entity Framework Core: [Online] Available: https://learn.microsoft.com/enus/ef/core/ [2] Firebase Documentation: [Online] Available:https://firebase.google.com/docs [3] Azure App Service: [Online] Available: https://azure.microsoft.com/enus/products/app-service/ Tài liệu tiếng Việt [1] "ASP.NET Core gì?" [Online] Available: https://topdev.vn/blog/asp-net-core-lagi/ [2] "Tìm hiểu Swagger - Cơng cụ viết document cho RESTful APIs" [Online] Available: https://viblo.asia/p/tim-hieu-ve-swagger-cong-cu-viet-document-cho-restful-apism68Z0QbjlkG [3]."What is Swagger?" [Online] Available: https://swagger.io/docs/specification/20/what-is-swagger/ [4] "Tìm hiểu JSON Web Token (JWT)" [Online] Available: https://viblo.asia/p/timhieu-ve-json-web-token-jwt-7rVRqp73v4bP [5] "Giới thiệu SignalR" [Online] Available: https://viblo.asia/p/gioi-thieu-vesignalr-PjxMe6BlG4YL 132