1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng ứng dụng chat trên mobile ứng dụng công nghệ blockchain

40 22 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 10,94 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 TRẦN QUỐC THẮNG – 19522218 NGUYỄN HỮU PHÁT - 19521996 ĐỒ ÁN XÂY DỰNG ỨNG DỤNG CHAT TRÊN MOBILE ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN Building chat application on mobile device applying blockchain technology KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN ThS Phan Trung Hiếu LỜI CẢM ƠN Đồ án với đề tài “XÂY DỰNG ỨNG DỤNG CHAT TRÊN MOBILE ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN” minh chứng cho q trình cố gắng khơng ngừng việc tìm tịi, học hỏi suốt năm học tập trường Đại học Công nghệ Thông tin Thể khả thân việc áp dụng kiến thức chun mơn vào giải tốn thực tế Trong trình thực đồ án, em nhận hướng dẫn tận tình từ quý thầy cô, giúp đỡ hỗ trợ từ gia đình bạn bè Một cách đặc biệt, em xin gửi lời cảm ơn chân thành đến: ● Các thầy cô trường Đại học Công nghệ Thông Tin nói chung thầy Khoa Cơng nghệ Phần mềm nói riêng tận tình truyền đạt kiến thức tới em năm học tập trường Đó tài sản q báu giúp em hồn thành đồ án hành trang cho đường nghiệp thân sau ● Em xin gửi lời cảm ơn sâu sắc tới ThS.Huỳnh Tuấn Anh, người trực tiếp hướng dẫn, bảo, giúp đỡ em lúc khó khăn, đưa lời khun bổ ích để khố luận hồn thành tiến độ đáp ứng yêu cầu đề ban đầu ● Lời cuối cùng, em xin dành lời cảm ơn gửi tới gia đình, anh chị, bạn bè ln bên cạnh để động viên đóng góp ý kiến q trình hồn thành đồ án Thành phố Hồ Chí Minh, tháng 07 năm 2022 Sinh viên Trần Quốc Thắng Sinh viên Nguyễn Hữu Phát DANH MỤC LỜI CẢM ƠN DANH MỤC Chương MỞ ĐẦU Giới thiệu đề tài Lý chọn đề tài 4 Chương TỔNG QUAN VỀ BLOCKCHAIN Định nghĩa Ứng dụng blockchain Ứng dụng blockchain vào Chat app 5 Chương TỔNG QUAN ĐỀ TÀI Mục tiêu Phạm vi Phương pháp thực Ý nghĩa thực tiễn Kết dự kiến Công nghệ sử dụng React Native NestJS MongoDB Ethereum IPFS ReduxJs 9 9 10 10 10 11 11 12 13 14 Chương XÂY DỰNG ỨNG DỤNG CHAT BẢO MẬT Phân tích yêu cầu hệ thống Phân tích yêu cầu chức Yêu cầu tính Phân tích yêu cầu phi chức Phân tích yêu cầu người dùng Mơ hình use case tồn hệ thống Một số use case hệ thống Use case Đăng ký Use case Chat bảo mật Use case Gửi files bảo mật Thiết kế hệ thống Thiết kế luồng sản phẩm 16 16 16 16 16 17 17 19 19 19 20 21 21 Thiết kế xử lý Lược đồ thao tác Đăng ký Lược đồ thao tác Chat bảo mật Lược đồ thao tác Gửi files bảo mật Thiết kế sở liệu Lược đồ sở liệu Mô tả bảng liệu Thiết kế kiến trúc hệ thống Thiết kế giao diện Danh sách giao diện Giao diện số hình ứng dụng 21 22 23 24 25 25 25 27 28 28 29 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết đạt Thuận lợi khó khăn Thuận lợi Khó khăn Hướng phát triển 39 39 39 39 39 39 TÀI LIỆU THAM KHẢO 40 Chương MỞ ĐẦU 1.1 Giới thiệu đề tài Ứng dụng nhắn tin ứng dụng giúp người dùng giao tiếp với thơng qua ứng dụng Người dùng chuyển dần sang dùng ứng dụng nhắn tin đặc biệt thiết bị di động nhiều tiết kiệm nhiều cước phí so với nhắn tin qua nhà mạng truyền thống Hiện nay, ứng dụng nhắn tin ứng dụng chiếm tỉ lệ download top đầu iOS Google Play: Zalo chiếm top Facebook Messenger top thị trường Việt Nam bảng xếp hạng data.ai thống kê Ta thấy ứng dụng nhắn tin ứng dụng thiếu người dùng Tuy nhiên, việc đảm bảo an tồn thơng tin người dùng vấn đề quan trọng ứng dụng đặc biệt vấn đề riêng tư tin nhắn, tài liệu Đa phần sở liệu ứng dụng nhắn tin lưu trữ tập trung dễ bị công Ứng dụng chat bảo mật ứng dụng nhắn tin với tính mã hố đầu cuối tin nhắn người dùng tập tin, tài liệu mã hoá trước lưu trữ 1.2 Lý chọn đề tài - Trước vấn đề nêu mục 1.1, nhóm em muốn nghiên cứu thực đề tài giải vấn đề - Đề tài tâm huyết giảng viên hướng dẫn ThS Phan Trung Hiếu Thầy mong muốn tạo sản phẩm với công nghệ để giải vấn đề Vì vậy, nhóm em lứa sinh viên thực sứ mệnh Chương TỔNG QUAN VỀ BLOCKCHAIN 2.1 Định nghĩa Blockchain sở liệu phân cấp lưu trữ thông tin khối (block) liên kết với mã hóa mở rộng theo thời gian, gọi chuỗi khối (blockchain) Mỗi block chứa đựng thông tin thời gian khởi tạo, thông tin giao dịch liên kết với khối trước thơng qua thơng tin hàm băm (hash) Việc thay đổi liệu khó khăn, có khả xảy Để khắc phục điều này, sở liệu BlockChain phân tán (Sổ cái) lưu trữ nhiều máy (Node) Các máy có quyền ngang hàng với nhau, không quản lý lẫn Truy cập liệu riêng Khi Node muốn thêm liệu vào, phải xác thực/qua tay máy này, đa số đồng ý liệu hợp lệ thêm vào BlockChain (tính đồng thuận) Sự liên kết máy tạo thành mạng lưới (Network) gọi hệ thống BlockChain Mỗi hệ thống BlockChain có cách đồng thuận riêng Blockchain thiết kế để chống lại việc thay đổi liệu: Một liệu mạng lưới chấp nhận khơng có cách thay đổi Như vậy, yếu tố chủ yếu cấu thành blockchain bao gồm: Sổ phân tán dạng móc xích, Mạng tính tốn ngang hàng, Mật mã học sử dụng blockchain Do thiết kế tảng liệu phi tập trung, blockchain thiết kế để chống lại thay đổi liệu Thông tin block blockchain mã hóa hàm hash lưu trữ tất nút Mỗi nút chứa thông tin bị thay đổi bổ sung thêm block có đồng thuận tất nút hệ thống Như vậy, giao dịch blockchain đảm bảo an tồn nhờ hai tính chất: Cấu trúc block kết nối móc xích tạo chế khó phá vỡ sử dụng thuật toán mật mã để chống giả mạo 2.2 Ứng dụng blockchain Blockchain đưa vào ngành kinh tế xã hội: Ngành nông nghiệp: truy xuất nguồn gốc thực phẩm, lấy điện thoại qt tem xồi Qua đó, nhìn thấy tồn thơng tin quy trình sản xuất, phân phối, cách sử dụng sản phẩm, thời gian bảo quản, chí xồi chua nào, ăn vừa vị, giúp họ ăn xoài cảm thấy an tâm Trong trình sản xuất, cần mạng internet smartphone người nơng dân HTX đăng nhập vào hệ thống để ghi lại Khi xoài xuất xưởng, hệ thống kích hoạt thơng tin, sau đến đại lý, đại lý nhận thơng tin lại kích hoạt thơng tin Tất số liệu lưu trữ vào hệ thống - không sửa đổi Những thông tin minh bạch blockchain Giáo dục: Nhược điểm cấp truyền thống bị làm giả nhiều, việc kiểm tra quy trình xác thực giả hay thật phức tạp với ứng dụng blockchain, cấp làm giả cấp số hóa ghi nhận với mã định danh (thông qua thể mã QR), việc lưu trữ liệu minh bạch blockchain thông tin thời điểm cấp, đơn vị cấp kèm theo mã hóa hình ảnh tài liệu minh chứng đối tượng cấp có thật Nếu văn giả chứa thông tin sai, hệ thống xác nhận không tồn tại, hiển thị thông tin văn có trùng mã hệ thống xác thực thông tin văn Mỗi văn bằng, chứng cấp phát theo công nghệ gắn địa mạng (URL) nhất, truy cập tự BCDiploma cam kết trì vơ thời hạn Mỗi tân cử nhân, ngồi tốt nghiệp theo quy định truyền thống hành nhận phiên xác thực trực tuyến, có địa mạng thường trực, vĩnh viễn kèm theo mã QR để thuận tiện sử dụng hồ sơ giao tiếp trực tuyến Ngành ngân hàng: blockchain Việt Nam nhiều ngân hàng quan tâm triển khai ứng dụng Với mục tiêu cải tiến nâng cao tính linh hoạt việc phát hành thư tín dụng (L/C), hợp lý hóa quy trình cung cấp dịch vụ cho doanh nghiệp hiệu nhất, vừa qua số ngân hàng Việt Nam Ngân hàng Thương mại cổ phần Công Thương Việt Nam (VietinBank), Ngân hàng Thương mại cổ phần Đầu tư Phát triển Việt Nam (BIDV), Ngân hàng Thương mại Cổ phần Quân đội (MB) gia nhập phát hành thành công L/C liên ngân hàng mạng lưới Contour Khác với giao dịch L/C truyền thống phải thực nhiều hệ thống khác nhau, tồn q trình giao dịch thực tảng với tham gia nhà xuất khẩu, nhà nhập khẩu, ngân hàng phát hành ngân hàng thơng báo/xuất trình chứng từ tham gia xử lý mạng lưới Sự khác biệt lớn so với cách xử lý truyền thống thư tín dụng chứng từ việc bên phép tham gia cập nhật tức thời trạng thái giao dịch Điều không đảm bảo tính tồn vẹn, minh bạch thơng tin bên liên quan, mà cải thiện rõ rệt thời gian xử lý tiết kiệm chi phí cho tồn chu trình Đây nói bước ngoặt việc thực dịch vụ quan trọng bậc lĩnh vực tài thương mại Hệ thống giúp tất bên tham gia làm chủ, giám sát giao dịch suốt trình thực hiện, đảm bảo tính qn, minh bạch Giao dịch phát hành L/C số hóa cịn cho thấy ưu điểm bật công nghệ Blockchain như: bảo mật cao, tốc độ xử lý giao dịch cải thiện rõ rệt, giảm thiểu giấy tờ, tiết kiệm thời gian; hạn chế sai sót, cho phép bên hồn thành luồng cơng việc thời gian thực 2.3 Ứng dụng blockchain vào Chat app Đối với ứng dụng Chat bảo mật chúng em blockchain dùng để lưu lại khóa cơng khai người dùng Người dùng lấy từ blockchain khố cơng khai người muốn nhắn tin để tạo khoá chung để mã hoá tin nhắn hai Chương TỔNG QUAN ĐỀ TÀI 3.1 Mục tiêu - Xây dựng ứng dụng giúp người dùng tự tin trao đổi thơng tin qua lại với cách bảo mật hoàn toàn - Các thông tin tài liệu trao đổi ứng dụng lưu trữ tảng bảo mật - Ứng dụng phát triển tảng di động giúp cho người dùng tiện lợi sử dụng - Tìm hiểu ứng dụng công nghệ mới, nâng cao kỹ phát triển phần mềm 3.2 Phạm vi - Đề tài tập trung xây dựng hệ thống tảng di động hướng tới đối tượng sử dụng tất người dùng sử dụng smartphone - Áp dụng cao với người dùng yêu cầu tính bảo mật cao trao đổi thông tin 3.3 Phương pháp thực - Tìm hiểu phân tích quy trình ứng dụng chat thị trường - Phân tích giải pháp sản phẩm tương tự thị trường - Thực khảo sát nhu cầu, tình trạng thực tế người dùng với ứng dụng chat bảo mật 3.4 Ý nghĩa thực tiễn - Người dùng yêu cầu tính bảo mật cao trao đổi thơng tin - Ứng dụng đảm bảo tính thời gian thực bảo mật cao, lưu trữ bảo mật, tránh bị xâm nhập đánh cắp liệu 3.5 Người dùng sử dụng đơn giản qua thiết bị di động Kết dự kiến - Hiểu rõ công nghệ mới: ● Front – end: React native ● Back – end: NestJs/MongoDB ● Peer to Peer network: Ethereum blockchain, IPFS 3.6 - Hoàn thành sản phẩm với chức trình bày - Giao diện thân thiện tạo giá trị mục tiêu hướng tới Công nghệ sử dụng 3.6.1 React Native React Native framework tạo Facebook, cho phép lập trình viên sử dụng JavaScript để làm mobile apps Android iOS với có trải nghiệm hiệu native React Native vượt trội chỗ cần viết lần build ứng dụng cho iOS lẫn Android React native cho phép xây dựng ứng dụng android ios với ngôn ngữ thống javascript mang lại trải nghiệm native app thực Không framework hybrid khác(viết lần triển khai nhiều nơi), React native tập trung vào việc lập trình viên làm user_name string Tên người dùng phone_number string Số điện thoại avatar string Hình đại diện is_active boolean Đang hoạt động disconnected_time Datetime Thời gian ngưng hoạt động is_blocked boolean Đã khoá created_at Datetime Ngày tạo updated_at Datetime Ngày cập nhật Bảng 4.3.2.1 - 1: Lưu thông tin User Bảng liệu ChatRoom: Lưu thông tin ChatRoom STT Tên thuộc tính Kiểu liệu Ràng buộc Id UUID chat_room_name string Tên phòng chat_room_image string Hình phịng creator User thumbnail_url string Nền paticipants [paticipants: Danh sách thành viên {user: Là Ý nghĩa Khơng rỗng Khố Người tạo User, role: string}] created_at Datetime Ngày tạo deleted_at Datetime Ngày cập nhật Bảng 4.3.2.1 - 2: Lưu thông tin ChatRoom Bảng liệu ChatMessage: Lưu thông tin ChatMessage STT Tên thuộc tính Id Kiểu liệu Ràng buộc UUID Là Ý nghĩa Khố Khơng rỗng chat_room UUID Mã phòng message_content string Nội dung tin nhắn message_type number Loại tin nhắn created_at Datetime Thời gian tạo Bảng 4.3.2.1 - 3: Lưu thông tin ChatMessage 4.2.4 Thiết kế kiến trúc hệ thống Hình 4.2.4 - 1: Kiến trúc tổng thể hệ thống Back – end server: Được viết NestJs sử dụng sở liệu MongoDB để lưu trữ thông tin người dùng, tin nhắn,… Hệ thống đảm bảo tình realtime cho chức Được hosting sử dụng Azure web service Private network: Được sử dụng Ethereum blockchain để lưu trữ liệu Và IPFS network sử dụng để lưu trữ file có dung lượng cực lớn Private network hosting sử dụng Azure web service Mobile app: Được viết React Native 4.2.5 Thiết kế giao diện Danh sách giao diện STT Tên hình Mơ tả chức Màn hình chờ Màn hình chờ vào ứng dụng Màn hình đăng nhập Màn hình nhập số điện thoại để đăng nhập Màn hình đăng kí tên Màn hình nhập tên người dùng Màn hình đăng kí số điện thoại Màn hình nhập số điện thoại để đăng kí Màn hình nhập OTP Màn hình nhập OTP sau đăng nhập đăng kí số điện thoại Màn hình đăng kí thành cơng Màn hình thơng báo đăng kí thành cơng Màn hình danh sách tin nhắn Màn hình hiển thị tất trò chuyện người dùng đăng nhập Màn hình trị chuyện Màn hình tất tin nhắn trị chuyện Màn hình gọi Màn hình thực gọi trị chuyện 10 Màn hình cài đặt trị chuyện Màn hình hiển thị tài liệu đường dẫn cài đặt trò chuyện Bảng 4.2.5.1 - 1: Danh sách giao diện 4.2.5.1 Giao diện số hình ứng dụng Hình 4.2.5.2 - Màn hình chờ Hình 4.2.5.2 - Màn hình đăng nhập Hình 4.2.5.2 - Màn hình đăng kí tên Hình 4.2.5.2 - Màn hình đăng kí số điện thoại Hình 4.2.5.2 - Màn hình nhập OTP Hình 4.2.5.2 - Màn hình đăng kí thành cơng Hình 4.2.5.2 - Màn hình danh sách tin nhắn Hình 4.2.5.2 - Màn hình trị chuyện Hình 4.2.5.2 - Màn hình gọi Hình 4.2.5.2 - 10 Màn hình cài đặt trò chuyện Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết đạt Đã xây dựng ứng dụng có tính nhắn tin thời gian thực với Ứng dụng chat bảo mật áp dụng công nghệ blockchain để mã hoá tin nhắn IPFS để lưu file mã hố 5.2 Thuận lợi khó khăn 5.2.1 5.2.2 5.3 - Thuận lợi - Sử dụng socket.io để nhắn tin theo thời gian thực - Áp dụng công nghệ blockchain IPFS để mã hố Khó khăn - Giao diện cịn đơn giản - Tính cịn Hướng phát triển Đầu tư thêm giao diện người dùng thêm tính cho ứng dụng Link Github: https://github.com/LucasTran-tq/Schat-uit TÀI LIỆU THAM KHẢO - Diễn đàn công nghệ lập trình viên: https://stackoverflow.com/ - Bách khoa tồn thư mở: https://vi.wikipedia.org/wiki/Wikipedia - Trang web thức nginx: https://www.nginx.com/ - Trang web thức tổng hợp thư viện mã nguồn mở lập trình viên: https://www.npmjs.com/ - Tài liệu hướng dẫn cài đặt sở liệu mongodb: https://www.mongodb.com/ - Diễn đàn cơng nghệ lập trình viên Việt Nam: https://viblo.asia/ - Trang web hướng dẫn lập trình web tổ chức W3C – tổ chức World Wide Web: https://www.w3schools.com/ - Trang web thức React Native: https://reactnative.dev/ - Trang web thức thư viện hỗ quản lý state: https://redux.js.org/ - Trang web thức thư viện hỗ việc giao tiếp với backend: https://redux-saga.js.org/ - Trang web cung cấp tài liệu WebAPI: https://developer.mozilla.org/en-US/docs/Web/API/Window/open - Trang web cung cấp giao diện mẫu miễn phí: https://freefrontend.com/ - Icon Finder API: https://www.iconfinder.com/api-solution - Trang web thức Expo: https://expo.io/ ... với đề tài “XÂY DỰNG ỨNG DỤNG CHAT TRÊN MOBILE ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN? ?? minh chứng cho q trình cố gắng khơng ngừng việc tìm tịi, học hỏi suốt năm học tập trường Đại học Công nghệ Thông tin... QUAN VỀ BLOCKCHAIN Định nghĩa Ứng dụng blockchain Ứng dụng blockchain vào Chat app 5 Chương TỔNG QUAN ĐỀ TÀI Mục tiêu Phạm vi Phương pháp thực Ý nghĩa thực tiễn Kết dự kiến Công nghệ sử dụng React... Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết đạt Đã xây dựng ứng dụng có tính nhắn tin thời gian thực với Ứng dụng chat bảo mật áp dụng cơng nghệ blockchain để mã hố tin nhắn IPFS để lưu file mã

Ngày đăng: 17/08/2022, 21:38

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w