CHƯƠNG I: GIỚI THIỆU TỔNG QUAN 1. LÝ DO CHỌN ĐỀ TÀI Thu thập dữ liệu là một phần không thể thiếu trong tất cả các lĩnh vực nghiên cứu bao gồm khoa học vật lý và xã hội, nhân văn, kinh doanh. Lấy ví dụ trong việc kinh doanh, thu thập dữ liệu giúp doanh ngiệp hiểu các vấn đề mà doanh nghiệp đang gặp phải và việc thu thập dữ liệu hiệu quả sẽ giúp doanh nghiệp cải thiện kết quả kinh doanh, đưa ra chiến lược thị trường tốt hơn, giảm chi phí, giúp doanh nghiệp ra quyết định nhanh và chính xác hơn. Tuy nhiên việc thu thập dữ liệu theo cách truyền thống dần lạc hậu, không theo kiệp xu thế thời đại mới.
Theo báo cáo về “Thị trường ứng dụng lao động năm 2021” của Appota Group, trung bình mỗi người Việt Nam dành 6,5 giờ sử dụng Internet mỗi ngày, trong đó khoảng 3 giờ 18 phút là truy cập thông qua điện thoại di động. Điều này giúp cho việc thu thập dữ liệu trên không gian mạng trở nên có nhiều ưu điểm hơn so với việc thu thập dữ liệu theo cách truyền thống như: Tiết kiệm thời gian Tiết kiệm chi phí Tiết kiệm nhân lực Không cần quan tâm tới vấn đề thời tiết và địa lý Dễ dàng phân loại đối tượng thu thập dữ liệu Trước thực trạng đó Osurvey” - ứng dụng làm khảo sát có thưởng ra đời với mong muốn giúp việc thu thập dữ liệu trở nên dễ dàng hơn 2. MỤC TIÊU VÀ CHỨC NĂNG CỦA ỨNG DỤNG 2. Mục tiêu Quản lý khảo sát, sự kiện khảo sát và thống kê, các mục tiêu bao gồm: Tính di động và linh hoạt.
Số hóa việc lưu trữ thông tin khảo sát, sự kiện khảo sát, người tham gia khảo sát. Giảm thiểu thời gian cho các sự kiện khảo sát. Giảm thiểu chi phí cho các sự kiện khảo sát. Theo dõi tình sự kiện khảo sát.
Hỗ trợ gửi và nhận dữ liệu theo thời gian thực. GVHD: PHAN NGỌC HOÀNG - SVTH: NGUYỄN HỮU PHƯỚC 11 2. Chức năng Quản lý khảo sát. Quản lý sự kiện khảo sát.
Lưu trữ, trích xuất dữ liệu. Gửi và nhận thông báo đẩy. MÔ TẢ BÀI TOÁN Mục đích của web server lả mơi tiếp nhận và quản lý các thông tin như: Quản lý khảo sát: Quản lý thông tin khảo sát như mã, tên, câu hỏi,. Quản lý sự kiện khảo sát: Quản lý thông tin sự kiện khảo sát như mã, tên, câu hỏi, câu hỏi.
Quản lý người dùng: Quản lý thông tin người dùng như mã, tên, tuổi, giới tính. Mục đích của ứng dụng là mơi hiển thị thông tin và tiếp nhận yêu cầu của người dùng và chuyển cho web server xử lý như: Tạo khảo sát Chỉnh sửa khảo sát Xóa khảo sát Tạo sự kiện khảo sát Xóa sự kiện khảo sát Chỉnh sửa sự kiện khảo sát Tham gia khảo sát GVHD: PHAN NGỌC HOÀNG - SVTH: NGUYỄN HỮU PHƯỚC 12 CHƯƠNG II: CƠ SỞ LÝ THUYẾT 1. CẤU TRÚC CỦA CHƯƠNG TRÌNH Hệ thống “Osurvey” được phát triển trên nền tảng ứng dụng di động được kết nối với cơ sở dữ liệu SQLite thông qua Web Application Programming Interface (API): Hệ thống hỗ trợ: Gửi thông báo đẩy ( Push Notification) được cung cấp bởi và Firebase Message Cloud Thanh toán trực tuyến qua Paypal Xác thực chứng minh thư (CMT)/căn cước công dân (CCCD) được cung cấp bởi FPT.AI READER Phần ứng dụng di động được xây dựng bằng framework Flutter với ngôn ngữ lập trình Dart Phần Web server được xây dựng bằng framework Flask với ngôn ngữ lập trình Python 2. GIỚI THIỆU FLUTTER VÀ DART 2.
Dart [1] Hình 1: Biểu tượng Dart Dart là ngôn ngữ lập trình đa mục đích ban đầu được phát triển bởi Google và sau đó được Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn. Nó được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động. Dart là một ngôn ngữ hướng đối tượng, được xác định theo lớp, với cơ chế thu gom rác ( garbage- collected), sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript. Nó hỗ trợ giao diện ( interface), tái sử dụng ( mixin), trừu tượng ( abstract), tham số hóa kiểu dữ liệu ( generic), static typing và sound type (2 cái cuối có thể hiểu là type-safe).
Dart là ngôn ngữ mã nguồn mở và miễn phí, được phát triển trên Github. Hiện nay Dart đã release phiên bản 2. GVHD: PHAN NGỌC HOÀNG - SVTH: NGUYỄN HỮU PHƯỚC 13 Dart có những ưu điểm như: Có một hệ sinh thái lên đến hàng ngàn thư viện Là ngôn ngữ hướng đối tượng Có nhiều nét tương đồng với các ngôn ngữ (C++, C#, Java) Hỗ trợ trình biên dịch Ahead Of Time (AOT): Trình biên dịch chuyển ngôn ngữ Dart sang mã gốc (Native Code) giúp hiệu suất tối ưu có khả năng (tức là khi chạy chương trình, nó sẽ biên dịch từ đầu đến cuối) Hỗ trợ trình biên dịch Just In Time (JIT):Cho phép hot reloading công việc, giúp phát triển mặt hàng nhanh và tiện dụng hơn (viết đến đâu biên dịch ngay đến đấy) 2. Flutter [2] Hình 2: Biểu tượng Flutter Flutter là mobile User Interface framework của Google để tạo ra các giao diện chất lượng cao trên iOS và Android trong khoảng thời gian ngắn.
Flutter hoạt động với những code sẵn có được sử dụng bởi các lập trình viên, các tổ chức. Flutter hoàn toàn miễn phí và cũng là mã nguồn mở. Flutter sử dụng Dart, một ngôn ngữ nhanh, hướng đối tượng với nhiều tính năng hữu ích như mixin, generic, isolate, và static type. Flutter có các thành phần UI của riêng nó, cùng với một cơ chế để kết xuất chúng trên nền tảng Android và iOS.
Hầu hết các thành phần giao diện người dùng, đều sẵn dùng, phù hợp với các nguyên tắc của Material Design. Các ứng dụng Flutter có thể được phát triển bằng cách sử dụng IntelliJ IDEA, một IDE rất giống với Android Studio. GVHD: PHAN NGỌC HOÀNG - SVTH: NGUYỄN HỮU PHƯỚC 14 3. GIỚI THIỆU FLASK VÀ PYTHON 3.
Giới thiệu Python Hình 3: Biểu tượng Python 3. Tổng quan [3] Ngôn ngữ Python là một ngôn ngữ lập trình mã nguồn mở, đa nền tảng, dễ học dễ đọc. Python có cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Vì thế nó được sử dụng rộng rãi.
Python là ngôn ngữ hỗ trợ nhiều mẫu đa lập trình khác nhau như: mệnh lệnh, lập trình hướng đối tượng, lập trình hàm, … được dùng đa lĩnh vực: web, 3D CAD,… 3. Ưu điểm khi lập trình web với python [3] Đơn giản: Cú pháp đơn giản giúp cho người lập trình dễ dàng đọc và tìm hiểu Tốc độ : Python có tốc độ xử lý nhanh hơn so với ngôn ngữ PHP. Tương tác: Chế độ tương tác cho phép người lập trình thử nghiệm tương tác sửa lỗi của các đoạn mã. Chất lượng: Thư viện có tiêu chuẩn cao, Python có khối cơ sở dữ liệu khá lớn nhằm cung cấp giao diện cho tất cả các CSDL thương mại lớn.
Thuận tiện: Python được biên dịch và chạy trên tất cả các nền tảng lớn hiện nay. GVHD: PHAN NGỌC HOÀNG - SVTH: NGUYỄN HỮU PHƯỚC 15 3. Giới thiệu Flask Hình 4: Biểu tượng Flask 3. Tổng quan [4] Flask là một web application frameworks, nó thuộc loại micro-framework được xây dựng bằng ngôn ngữ lập trình Python.
Flask cho phép các lập trình viên có thể xây dựng các ứng dụng web từ đơn giản tới phức tạp. Nó có thể xây dựng các API nhỏ, ứng dụng web chẳng hạn như các trang web, blog, trang wiki hoặc một website dựa theo thời gian hay thậm chí là một trang web thương mại. Ưu điểm của Flask [4] Xây dựng web application rất giống với việc viết các module Python chuẩn, cấu trúc gọn gàng và rõ ràng. Flask cung cấp cho người dùng các thành phần cốt lõi thường được sử dụng nhất của khung ứng dụng web như định tuyến, đối tượng yêu cấu và phản hồi, bản mẫu,.
GIỚI THIỆU FPT.AI READER Hình 5: Biểu tượng FPT AI GVHD: PHAN NGỌC HOÀNG - SVTH: NGUYỄN HỮU PHƯỚC 16 4. Tổng quan [5] FPT.AI Reader cung cấp các dạng và trích xuất chính xác nội dung từ ảnh chụp mẫu văn bản có sẵn như chứng minh thư (CMT)/căn cước công dân (CCCD), giấy phép lái xe, hóa dơn,. Nhận diện CMT/CCCD [6] Đây là hệ thống tự động hóa quy trình nhận diện và trích xuất thông tin một cách chính xác từ thẻ CMT/CCCD của FPT.AI, ứng dụng những công nghệ mới nhất trong xử lý ảnh, nhận dạng ký tự quang học (Optical Character Recognition) và học sâu (Deep Learning). Hệ thống nhận diện và trích xuất thông tin chứng minh nhân dân/căn cước công dân Việt Nam của FPT.AI có thể được sử dụng để tự động hóa quy trình nhập liệu trong rất nhiều lĩnh vực bao gồm tài chính ngân hàng, viễn thông, du lịch, lưu trú,.
Cụ thể hơn là trong những tác vụ như mở tài khoản ngân hàng, mở thẻ tín dụng, đăng ký người dùng, xác nhận đặt phòng, check-in,. GIỚI THIỆU PAYPAL PAYNENT GATEWAY Hình 6: Biểu tượng Paypal 5. Tổng quan [7] Paypal là một công ty hoạt động trong lĩnh vực thương mại điện tử, chuyên cung cấp các dịch vụ thanh toán và chuyển tiền qua mạng Internet 5. Paypal API [7] Paypal API cung cấp vụ thanh toán và chuyển khoản điện tử thay thế cho các phương thức truyền thống sử dụng giấy tờ như séc và các lệnh chuyển tiền.
Hiện nay Paypal được chấp nhận ở 200 quốc gia. Hiện nay có rất nhiều trang web không thể chuyển khoản trực tiếp về các tài khoản ngân hàng trong nước được vì có quá nhiều dữ liệu cũng như chính sách pháp lý của GVHD: PHAN NGỌC HOÀNG - SVTH: NGUYỄN HỮU PHƯỚC 17 từng đất nước. Chính vì điều đó mà Paypal ra đời, Paypal tuân thủ các chính sách pháp lý của từng đất nước khác nhau và Paypal chính là nơi trung gian để người dùng thực hiện các giao dịch tiền tệ. GIỚI THIỆU FIREBASE Hình 7 Biểu tượng Firebase 6.
Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính là giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu. Firebase Cloud Messaging (FCM) [8] Firebase Cloud Messaging (FCM) là một dịch vụ miễn phí của Google. Thông qua FCM, nhà phát triển ứng dụng có thể gửi thông điệp một cách nhanh chóng, an toàn tới các thiết bị cài đặt ứng dụng của họ.
GVHD: PHAN NGỌC HOÀNG - SVTH: NGUYỄN HỮU PHƯỚC 18 CHƯƠNG III: PHÂN TÍCH HỆ THỐNG 1. MÔ TẢ HỆ THỐNG 1.