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

Phát triển Ứng dụng trên nền tảng di Động xây dựng Ứng dụng Điểm danh cho trường học an toàn

15 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 15
Dung lượng 345,62 KB

Nội dung

Tổng quan về hệ điều hành di động Hệ điều hành di động mobile operating system là một hệ điều hành dành cho các thiết bị điện thoại di động, máy tính bảng, đồng hồ thông minh, laptop 2 t

Trang 1

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN TẢNG DI ĐỘNG

XÂY DỰNG ỨNG DỤNG ĐIỂM DANH CHO

TRƯỜNG HỌC AN TOÀN

Ngành: An toàn thông tin

Sinh viên thực hiện:

Trịnh Bá Quý - AT180340

Lớp: AT18CP

Nhóm: 18

Người hướng dẫn:

TS: Nguyễn Mạnh Thắng

Khoa ATTT - Học viện KTMM

Hà Nội - 2024

Trang 2

MỤC LỤC

Mục lục i

Danh mục hình vẽ iii

Danh mục bảng iii

Lời cảm ơn iv

Lời nói đầu v

Chương 1 Giới thiệu tổng quan 1

1.1 Khảo sát hiện trạng 1

1.2 Mục tiêu 1

1.3 Tổng quan về hệ điều hành di động 1

1.4 Công nghệ sử dụng 1

1.4.1 Ngôn ngữ lập trình Dart 1

1.4.2 Flutter Framework 3

1.5 Một số nguy cơ mất an toàn trong xác thực người dùng 8

1.5.1 Rò rỉ thông tin 8

1.5.2 Giả mạo danh tính 8

1.5.3 Đăng nhập bất cứ ví trị nào 8

1.5.4 Truy cập trái phép 8

Chương 2 Phân tích thiết kế hệ thống ứng dụng điểm danh cho trường học an toàn 8

2.1 Ý nghĩa khoa học và thực tiễn của hệ thống 8

2.1.1 Ý nghĩa khoa học 8

2.1.2 Ý nghĩa thực tiễn 8

2.2 Đặc tả yêu cầu hệ thống 8

2.2.1 Đặc tả chức năng 8

2.2.2 Đặc tả phi chức năng 8

2.3 Phân tích thiết kế hệ thống 8

2.3.1 Phạm vi hệ thống 8

2.3.2 Yêu cầu hệ thống 8

2.3.3 Biểu đồ usercase tổng quát 8

2.3.4 Đặc tả ca sử dụng 8

2.3.5 Phân tích ca sử dụng 8

2.3.6 Xây dựng cơ sở dữ liệu 8

Chương 3 TRIỂN KHAI ỨNG DỤNG điểm danh cho trường học 8

3.1 Xác thực người dùng 9

3.2 Tính năng an toàn 9

Trang 3

3.2.1 Chặn quay/chụp màn hình 9

3.2.2 Phát hiện cảnh báo đăng nhập trên cùng một thiết bị 9

3.2.3 Lưu vị trí khi điểm danh 9

3.3 Giao diện người dùng 9

3.4 Thực hiện kiểm thử 9

KẾT LUẬN 9

TÀI LIỆU THAM KHẢO 9

Trang 4

DANH MỤC HÌNH VẼ DANH MỤC BẢNG

Trang 5

LỜI CẢM ƠN

Em xin chân thành cảm ơn các thầy cô trường Học viện Kỹ thuật mật mã nói chung, quý thầy cô của khoa An toàn thông tin nói riêng đã tận tình dạy bảo, truyền đạt kiến thức cho chúng em trong suốt quá trình học

Kính gửi đến thầy cô lời cảm ơn chân thành và sâu sắc, cảm ơn thầy cô đã tận tình theo sát và chỉ dẫn cho nhóm em trong quá trình thực hiện đề tài này Thầy cô không những chỉ hướng dẫn chúng em kiến thức chuyên ngành, mà còn giúp chúng em học thêm những kĩ năng, tinh thần, thái độ khi làm việc nhóm

Trong quá trình tìm hiểu nhóm chúng em xin cảm ơn các bạn cùng khóa

đã góp ý, giúp đỡ nhóm em rất nhiều trong quá trình tìm hiểu và làm đề tài

Do kiến thức còn nhiều hạn chế nên không thể tránh khỏi những thiếu sót trong cách xây dựng ứng dụng, lỗi trình bày, Chúng em rất mong nhận được

sự đóng góp ý kiến của quý thầy cô để đề tài của chúng em đạt được kết quả tốt hơn

Chúng em xin chân thành cảm ơn!

Trang 6

LỜI NÓI ĐẦU

Ngày nay, với sự phát triển mạnh mẽ của khoa học công nghệ, Công nghệ Thông tin là một trong những ngành có vị thế dẫn đầu và có vai trò rất lớn trong

sự phát triển chung đó Các ứng dụng của công nghệ thông tin được áp dụng trong mọi lĩnh vực nghiên cứu khoa học cũng như trong mọi lĩnh vực của đời sống Là một phần của Công nghệ Thông tin, Công nghệ phần mềm đang có được sự phát triển mạnh mẽ và phổ biến rất nhanh bởi những lợi ích mà nó mang lại cho cộng đồng là rất lớn

Bằng việc lựa chọn và thực hiện đề tài “Xây dựng ứng dụng điểm danh cho trường học” nhóm chúng em mong muốn tìm hiểu và đưa ra một giải pháp tốt nhất nhằm xây dựng một nền tảng điểm danh nhanh chóng và hiệu quả với tất cả mọi người

Mục tiêu:

- Phát triển ứng dụng cung cấp một giao diện dễ sử dụng để thực hiện việc điểm danh sinh viên một cách nhanh chóng và hiệu quả, đồng thời đảm bảo tính chính xác

- Cung cấp một số tính năng cho phép người dùng quản lý thông tin điểm danh, thông tin cá nhân và lịch học

- Đảm bảo ứng dụng có thể chạy trên nhiều nền tảng di động phổ biến như iOS và Android để phục vụ cho sự đa dạng của người dùng

Nội dung đề tài gồm các chương:

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

CHƯƠNG 3: CHƯƠNG TRÌNH THỰC NGHIỆM

Trang 7

CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN 1.1 Khảo sát hiện trạng

1.2 Mục tiêu

1.3 Tổng quan về hệ điều hành di động

Hệ điều hành di động (mobile operating system) là một hệ điều hành dành cho các thiết bị điện thoại di động, máy tính bảng, đồng hồ thông minh, laptop 2 trong 1 (laptop có thể chuyển giữa chế độ máy tính và máy tính bảng), hoặc các thiết bị di động khác Trong khi đa phần các máy tính xách tay (laptop) cũng có tính "di động", nhưng các hệ điều hành thường được sử dụng trên chúng không được xem là hệ điều hành di động, vì các hệ điều hành này được thiết kế ban đầu cho máy tính để bàn và không có hoặc không cần các tính năng di động cụ thể Ngày nay, sự phân biệt giữa hệ điều hành cho máy tính để bàn và hệ điều hành

di động càng trở nên mờ dần, khi một số hệ điều hành mới hoặc các phiên bản mới cho phép hỗ trợ cả hai nền tảng di động và cố định

Hệ điều hành di động là tập hợp dữ liệu và chương trình chạy trên thiết bị

di động Nó quản lý phần cứng và làm cho điện thoại thông minh, máy tính bảng

và thiết bị đeo được có thể chạy các ứng dụng Một hệ điều hành di động cũng quản lý các chức năng đa phương tiện di động, kết nối di động và internet, màn hình cảm ứng, kết nối Bluetooth, điều hướng GPS, camera, nhận dạng giọng nói

và nhiều tính năng khác trong thiết bị di động Hầu hết các hệ điều hành không thể hoán đổi cho nhau giữa các thiết bị

Các hệ điều hành di động cần được nâng cấp thường xuyên để cải thiện khả năng của thiết bị và để vá các lỗ hổng bảo mật Người dùng nên giữ tất cả các thiết bị di động của mình được nâng cấp lên phiên bản mới nhất của hệ điều hành

1.4 Công nghệ sử dụng

1.4.1 Ngôn ngữ lập trình Dart

a) Giới thiệu tổng quan

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 Dart được chính thức công bố tại Hội thảo GOTO ngày 10 - 12 tháng 10 năm 2011 tại Aarhus Ngôn ngữ này đượ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ế garbage - collected, sử dụng cú pháp kiểu C

Trang 8

để dịch mã tùy ý sang JavaScript Ngôn ngữ này hỗ trợ interface, mixin, abstract, 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

Dart SDK cung cấp những công cụ cần thiết để phát triển ứng dụng viết bằng Dart Tuỳ thuộc sử dụng môi trường nào (Windows, Linux, MacOs) thì cài đặt Dart SDK tương ứng cho môi trường đó Các thành phần trong Dart SDK bao gồm: 

- Dart: máy ảo VM chạy mã Dart

- Dart2js: biên dịch Dart thành JavaScript

- Dartanalyzer: phân tích mã viết bằng Dart

- Dartdevc: công cụ biên dịch cho ứng dụng web

- Dartdoc: phát sinh tài liệu API

- Dartfmt: định dạng mã Dart (đảm bảo việc đẹp, đúng chuẩn và dễ đọc)

- Pub: quản lý gói trong Dart (giống npm của NodeJS)

Có nhiều IDE phức tạp hỗ trợ Dart thông qua các plugin như: Android Studio, IntelliJ, Visual Studio Code, … Tuỳ mục đích phát triển ứng dụng mà chọn IDE tương ứng

Các nhà phát triển tại Google và các nơi khác sử dụng Dart để tạo các ứng dụng chất lượng cao dành cho iOS, Android, Linux, Window và Web Với các tính năng nhắm đến sự phát triển phía khách hàng, Dart rất phù hợp cho cả ứng dụng di động và web Dart giúp các lập trình viên tạo ra những trải nghiệm đẹp, chất lượng cao trên tất cả các màn hình, với:

- Một ngôn ngữ được tối ưu hóa cho client

- Framework mạnh mẽ

- Công cụ linh hoạt

b) Các ưu điểm của Dart

- Năng suất: Cú pháp Dart rõ ràng và súc tích, công cụ đơn giản nhưng

mạnh mẽ Type-safe giúp các nhà phát triển xác định sớm các lỗi Dart có các thư viện cốt lõi và một hệ sinh thái gồm hàng nghìn package

- Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có được

dự đoán hiệu suất cao và khởi động nhanh trên các thiết bị di động và web

- Di động: Dart biên dịch thành mã ARM và x86, để các ứng dụng di động

của Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa Đối với các ứng dụng web, chuyển mã từ Dart sang JavaScript

Trang 9

- Dễ gần: Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú

pháp và định hướng đối tượng của nó Đối với các lập trình viên từng làm việc với C++, C# hoặc Java, việc làm quen và sử dụng Dart là tương đối

dễ dàng

- Reactive: Dart rất phù hợp với lập trình Reactive, với sự hỗ trợ để quản lý

các đối tượng tồn tại trong thời gian ngắn, chẳng hạn như các widget UI, thông qua phân bổ đối tượng nhanh và GC Dart hỗ trợ lập trình không đồng bộ thông qua các tính năng ngôn ngữ và API sử dụng các đối tượng Future và Stream

1.4.2 Flutter Framework

a) Giới thiệu tổng quan

Flutter được Google giới thiệu lần đầu tiên vào năm 2017 dưới dạng phiên bản beta Ý tưởng đằng sau Flutter là tạo ra một framework nhanh chóng và hiệu quả để xây dựng các ứng dụng di động hiệu suất cao và hấp dẫn trực quan Khung được xây dựng bằng ngôn ngữ lập trình Dart, cũng được tạo bởi Google

Phiên bản beta của Flutter đã nhận được phản hồi tích cực từ các nhà phát triển và Google tiếp tục làm việc trên framework này, thêm các tính năng mới và sửa lỗi Vào năm 2018, Flutter đã chính thức được phát hành dưới dạng phiên bản ổn định và kể từ đó, framework này đã trở nên phổ biến đối với các nhà phát triển và các công ty công nghệ

Qua 5 năm phát triển, Flutter đã tiếp tục phát triển và mở rộng khả năng của mình Giờ đây, Flutter không chỉ hỗ trợ phát triển ứng dụng dành cho thiết

bị di động mà còn hỗ trợ phát triển ứng dụng web và máy tính để bàn Google cũng đã phát hành một số package và plugin có thể được sử dụng để mở rộng chức năng của các ứng dụng Flutter

Trong những năm gần đây, Flutter đã đạt được sức hút đáng kể trong cộng đồng phát triển và hiện đang được nhiều công ty sử dụng để xây dựng các ứng dụng web và di động chất lượng cao với chi phí tiết kiệm

Flutter được dùng cho nhiều loại module của Google Assistant, ngoài ra là cho giao diện người dùng Google Home Hub Hiện có khoảng 50,000 ứng dụng Flutter sẵn có trên Google Play Store và con số này vẫn đang tiếp tục tăng dần Tập đoàn Alibaba, eBAY, Groupon và nhiều nền tảng thương mại khác cũng đang sử dụng Flutter để tạo ra diện mạo thống nhất giữa các website và ứng dụng của mình

Trang 10

b) Kiến trúc Flutter

Flutter được thiết kế như một hệ thống nhiều lớp, có thể mở rộng Các lớp tồn tại dưới dạng một loạt các thư viện độc lập mà mỗi thư viện phụ thuộc vào lớp bên dưới Không có lớp nào có quyền truy cập đặc quyền vào lớp bên dưới

và mọi phần của mức khung được thiết kế để trở thành tùy chọn và có thể thay thế

Hình 2.1 Kiến trúc Flutter

Embedder Platform-specific: Đối với hệ điều hành cơ bản, các ứng

dụng Flutter được đóng gói giống như các ứng dụng gốc khác Embedder Platform-specific cung cấp một điểm nhập, phối hợp với hệ điều hành cơ bản để truy cập vào các dịch vụ như hiển thị bề mặt, khả năng truy cập và đầu vào và quản lý vòng lặp sự kiện tin nhắn Trình nhúng được viết bằng ngôn ngữ phù hợp với nền tảng: hiện tại là Java và C ++ cho Android, Objective-C / Objective-C ++ cho iOS và macOS, và C ++ cho Windows và Linux Sử dụng công cụ nhúng, mã Flutter có thể được tích hợp vào ứng dụng hiện có dưới dạng mô-đun hoặc mã có thể là toàn bộ nội dung của ứng dụng Flutter bao gồm một

số trình nhúng cho các nền tảng mục tiêu chung

Flutter Engine: Cốt lõi của Flutter là Flutter Engine, phần lớn được viết

bằng C++ và hỗ trợ các nguyên tắc cần thiết để hỗ trợ tất cả các ứng dụng Flutter Flutter Engine chịu trách nhiệm sắp xếp các cảnh tổng hợp bất cứ khi nào cần sơn một khung mới cung cấp triển khai cấp thấp của API cốt lõi của Flutter, bao gồm đồ họa, bố cục văn bản, tệp và mạng I/O, hỗ trợ trợ năng, kiến trúc plugin và chuỗi công cụ biên dịch và thời gian chạy Dart

Trang 11

Flutter Framework: cung cấp một framework hiện đại được viết bằng

ngôn ngữ Dart Framework này bao gồm một bộ thư viện nền tảng, bố cục và nền tảng phong phú, bao gồm một loạt các lớp Làm việc từ dưới lên trên, gồm:

Foundation classes và các dịch vụ khối xây dựng như animation,

painting, and gestures cung cấp các nội dung trừu tượng thường được sử dụng trên nền tảng cơ bản

Rendering layer: cung cấp một sự trừu tượng để xử lý bố cục Với lớp

này, có thể xây dựng một cây các đối tượng có thể kết xuất, có thể thao tác động các đối tượng này, với cây tự động cập nhật bố cục để phản ánh các thay đổi

Widgets layer là một phần trừu tượng hóa thành phần Mỗi đối tượng kết

xuất trong lớp kết xuất có một lớp tương ứng trong lớp vật dụng Ngoài ra, lớp vật dụng cho phép xác định tổ hợp các lớp có thể sử dụng lại Đây là lớp mà tại

đó mô hình lập trình phản ứng được giới thiệu

Các thư viện Material và Cupertino cung cấp các bộ điều khiển toàn diện

sử dụng các thành phần native của lớp widget để triển khai ngôn ngữ thiết kế Material hoặc iOS

c) Ưu điểm và hạn chế của Flutter

 Ưu điểm

o Phát triển đa nền tảng

Flutter cho phép các nhà phát triển xây dựng một cơ sở mã duy nhất và sử dụng cho một số nền tảng như web, máy tính để bàn và thiết bị di động Điều này giúp khởi chạy ứng dụng nhanh hơn và tiết kiệm chi phí

o Hiệu suất giống như native

Đây là một trong những lợi thế nổi bật nhất của Flutter Flutter hoạt động với Skia, một công cụ đồ họa cho phép phát triển nhanh chóng và được tối ưu hóa tốt Ứng dụng Flutter cũng không thể phân biệt được với các ứng dụng native vì không dựa vào trình thông dịch hoặc biểu diễn mã trung gian

o Cộng đồng mạnh mẽ

Theo statista, Flutter đã trở thành một trong những framework phổ biến nhất và là lựa chọn hàng đầu của các nhà phát triển trên toàn cầu Hơn 40 phần trăm các nhà phát triển phần mềm đã chọn Flutter trong suốt bốn năm qua Biểu

đồ sau đây cho thấy mức độ quan tâm ngày càng tăng đối với Flutter so với các công cụ ứng dụng đa nền tảng khác

Trang 12

Hình 2.2 Biểu đồ sự phát triển của các nền tảng cross-platform từ 2019 – 2022

o Phát triển nhanh

Khả năng hot reload của Flutter cho phép các nhà phát triển thấy các thay đổi đối với ứng dụng trong thời gian thực khi họ sửa đổi code Điều này có thể làm tăng đáng kể tốc độ và hiệu quả của quá trình phát triển ứng dụng

o Giao diện người dùng đẹp

Flutter cung cấp một tập hợp phong phú các tiện ích tùy chỉnh có thể được

sử dụng để tạo giao diện đẹp và thân thiện với người dùng Framework này cũng nhấn mạnh vào thiết kế và sự hấp dẫn về mặt hình ảnh, làm cho Flutter trở thành một lựa chọn hàng đầu cho các dự án phát triển ứng dụng đòi hỏi mức độ hấp dẫn về mặt hình ảnh cao

o Hiệu suất cao

Flutter cung cấp hoạt ảnh và chuyển tiếp nhanh và mượt mà, đồng thời được thiết kế để chạy mượt mà trên các thiết bị cũ Framework này được tối ưu hóa cho hiệu suất, làm cho Flutter trở thành một lựa chọn hấp dẫn cho các ứng dụng di động đòi hỏi khắt khe Kết quả là số lượng người dùng mục tiêu tăng lên

o Dựa trên ngôn ngữ Dart

Trang 13

Lý do các nhà phát triển chọn Flutter là vì ngôn ngữ lập trình Dart mà Flutter dựa trên Dart có các tính năng nổi bật so với các ngôn ngữ khác:

 Trình biên dịch Ahead Of Time (AOT) giúp Flutter Widget có thể tùy chỉnh và khởi động nhanh

 Trình biên dịch Just In Time (JIT), cho phép tối ưu hóa mã trong khi mã đang chạy

Dart biên dịch thành JavaScript được tối ưu hóa cao trên nền tảng web Bước tiếp theo là WebAssugging cho Web sẽ cung cấp tốc độ thực thi/hoạt ảnh tốt hơn nhiều so với các nền tảng khác Đây chỉ là một số tính năng khiến Dart được coi là một lợi thế khi sử dụng Flutter cho mục đích phát triển

o Mã nguồn mở

Flutter là một framework mã nguồn mở và miễn phí, giúp nhiều nhà phát triển và công ty có thể truy cập nó Cộng đồng lớn gồm các nhà phát triển và người dùng làm việc với khung giúp đảm bảo rằng khung tiếp tục phát triển và

mở rộng khả năng của mình

 Hạn chế

o Giới hạn về số lượng thư viện bên thứ ba

Mặc dù Flutter có sẵn số lượng package/plugin lớn và ngày càng tăng, nhưng Flutter vẫn còn tương đối mới và số lượng thư viện bên thứ ba có sẵn bị hạn chế so với các framework lâu đời hơn như React Native

o Kích cỡ ứng dụng

Ứng dụng Flutter có kích thước tương đối lớn so với các ứng dụng truyền thống do gói chứa các phần tử giao diện gốc Điều này có thể ảnh hưởng đến thời gian tải và dung lượng ứng dụng

o Các vấn đề với iOS

Flutter hoạt động tốt trên cả Android và iOS Tuy nhiên, Flutter được phát triển bởi Google, mang lại lợi thế chính cho các ứng dụng Android Tuy hiện tại không được coi là một vấn đề lớn, nhưng đây là điều cần xem xét trong trường hợp một số vấn đề có thể xảy ra trong tương lai

Ngày đăng: 12/12/2024, 21:38

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

TÀI LIỆU LIÊN QUAN

w