Tải bản đầy đủ (.docx) (56 trang)

Xây dựng mạng xã hội học tập cho sinh viên trường Đại học Tài Nguyên và Môi Trường Hà Nội

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1007.96 KB, 56 trang )

1

MỤC LỤC


2

DANH MỤC CÁC BẢNG


3

DANH MỤC HÌNH ẢNH


4

DANH MỤC VIẾT TẮT
Viết tắt
ADMIN
HTML

Thuật ngữ tiếng anh
Administrator
Hyper Text Markup Language

SQL
CSDL
JSP

Structured Querd Language


Database
JavaServer Pages

JDK

Java Development Kit

Framework
OOP

Object Oriented Program

Thuật ngữ tiếng việt
Người quản lý
Ngôn ngữ dánh dấu siêu văn
bản
Ngôn ngữ cơ sở dữ liệu
Cơ sở dữ liệu
Công nghệ để phát triển các
trang web động
Bộ phần mềm cung cấp môi
trường phát triển
Bộ thư viện
Lập trình hướng đối tượng


5

MỞ ĐẦU
1. Lý do chọn đề tài

Mạng xã hội hiện nay được xem như một cơng cụ tiện ích giúp con người giải trí,
giao tiếp với nhau dù ở bất cứ nơi đâu. Hiện nay việc bùng nổ của công nghệ 4.0 và
nhu cầu trong cuộc sống của mọi người ngày một tăng cao, góp phần thúc đẩy, phát
triển các phương tiện công nghệ trên các nền tảng khác nhau. Đặc biệt, chúng ta đang
sống ở thời đại của các thiết bị di động. Chính vì vậy, các ứng dụng trên nền tảng di
động được tối ưu nhằm nâng cao chất lượng cuộc sống, đảm bảo sự tiện ích hàng đầu.
Sự ra đời của một mạng xã hội công nghệ là giải pháp tiện lợi, xây dựng một không
gian mở cho sinh viên trường Đại Học Tài Nguyên và Môi Trường để chia sẻ các hoạt
động liên quan đến học tập, nghiên cứu khoa học. Nhằm nâng cao nhận thức của sinh
viên về vai trò, ý nghĩa của việc xây dựng một mạng xã hội học tập, tạo điều kiện cho
sinh viên trường Đại học Tài Nguyên và Môi Trường Hà Nội có mơi trường học tập
tốt, chuẩn bị cho thời đại khoa học cơng nghệ phát triển. Do đó, em lựa chọn đề tài
“Xây dựng mạng xã hội học tập cho sinh viên trường Đại học Tài Nguyên và Môi
Trường Hà Nội” nhằm giải quyết những vấn đề trên.
2. Nội dung nghiên cứu






Hệ thống ứng dụng Android.
Ngôn ngữ lập trình Java.
Cơ sở dữ liệu Firebase Google.
Các ứng dụng mạng xã hội phổ biến hiện nay.
Phương thức học tập của sinh viên trường Đại Học Tài Nguyên và Môi Trường Hà

Nội.
− Các hoạt động liên quan đến tương tác mạng xã hội.
3. Mục tiêu của đề tài

Xây dựng được ứng dụng mạng xã hội học tập cho sinh viên trên nền tảng
Android có các chức năng sau:
Chức năng cho Người dùng (Sinh viên):
 Quản lý tài khoản: Đăng ký, đăng nhập, đổi mật khẩu,…
 Quản lý trang cá nhân: Cho phép sinh viên cập nhật ảnh đại diện, tên, ảnh bìa, số
điện thoại.
 Quản lý bài đăng: Cho phép sinh viên thêm, sửa, xóa bài viết kèm theo ảnh và nội
dung.
 Tìm kiếm: Tìm kiếm người dùng khác hoặc nhóm trong mạng xã hội.


6
 Tương tác với người dùng khác: Có thể nhắn tin, thích bài viết, chia sẻ, comment,

chặn, tham gia vào cùng chung một nhóm,…
 Thơng báo: Hiển thị thơng báo khi có người trong mạng xã hội tương tác với người
dùng.
 Tạo nhóm: Sinh viên có thể tạo nhóm học tập trong ứng dụng hoặc tham gia vào
nhóm để trị chuyện.
4. Phương pháp nghiên cứu
− Phương pháp nghiên cứu lý thuyết: Nghiên cứu, tìm hiểu nghiệp vụ xây dựng mạng xã

hội, thu thập tài liệu, thông tin về xây dựng, phát triển ứng dụng Android.
− Phương pháp tổng hợp: Tổng hợp các tài liệu, cơ sở lý thuyết về xây dựng app
Android bằng ngôn ngữ Java. Tổng hợp thông tin khảo sát.
− Phương pháp lập trình: Nghiên cứu, tìm hiểu và sử dụng Android Studio, Firebase để

phân tích, thiết kế cơ sở dữ liệu và xây dựng hệ thống mã nguồn.
− Phương pháp kiểm thử: Chạy đi chạy lại ứng dụng cùng các chức năng trước khi giao
sản phẩm cho khách hàng thực nghiệm.

− Phương pháp thực nghiệm: Tiến hành triển khai, hướng dẫn khách hàng sử dụng app
demo.
5. Kết quả đạt được
− Xây dựng ứng dụng mạng xã hội hoàn chỉnh với các chức năng cụ thể đáp ứng với bài

toán đặt ra.
− Báo cáo đồ án tốt nghiệp trình độ Đại học, phù hợp với chuyên ngành.
6. Cấu trúc đồ án
Ngồi phần ở đầu và kết luận thì bố cục đồ án gồm 3 chương sau:
Chương 1: Tổng quan về bài tốn.
Chương 2: Phân tích và thiết kế hệ thống.
Chương 3: Xây dựng phần mềm.


7

CHƯƠNG 1: TỔNG QUAN VỀ BÀI TỐN
1.1. Mơ tả bài toán
1.1.1. Phát triển bài toán
Xuất phát từ nhu cầu kết nối và phát triển một cộng đồng sử dụng mạng xã hội
do người Việt. Cụ thể đối với thực trạng phương thức học tập của sinh viên trường Đại
học Tài Nguyên và Môi Trường hiện nay, chủ yếu học tập theo cách truyền thống, còn
học tập nhiều qua sách vở, học qua internet và qua giảng viên, do đó thời gian học và
hiệu suất còn thấp. Sinh viên chưa thực sự có một nền tảng chuyên biệt dành riêng cho
việc học tập.
Với một mạng xã hội học tập dành cho sinh viên, người dùng , cụ thể là sinh
viên, có thể giao tiếp, truyền tải, chia sẻ dữ liệu, đặc biệt là học tập và trao đổi kiến
thức trên chính nền tảng của mình mà khơng cần thơng qua một nền tảng khác như
Facebook, Instagram như hiện tại. Đối với người dùng, hồn tồn có thể lựa chọn truy
cập ứng dụng, tự mình chỉnh sửa trang cá nhân và tương tác với người dùng khác

thông qua nền tảng này. Các thao tác của ứng dụng đơn giản, thân thiện với người
dùng, tránh làm mất mát thông tin, dễ hiểu, dễ sử dụng dành cho những người không
được qua đào tạo cũng có thể sử dụng những thao tác cơ bản. Chính từ những vấn đề
đó dẫn đến việc xây dựng ứng dụng sử dụng ngơn ngữ lập trình Java và công cụ
Android Studio làm nền tảng để đáp ứng những nhu cầu trên.
1.1.2. Yêu cầu hệ thống phần mềm
* Về mặt thiết bị, phần mềm.





Một máy chủ có hệ điều hành Microsoft Windows.
Cơ sở dữ liệu: Google Firebase Realtime Database.
Môi trường phần mềm: Android Studio.
Ngơn ngữ lập trình: Ngơn ngữ lập trình Java.
* Về mặt dữ liệu.

− Cập nhật dữ liệu trực tuyến.

* Về giao diện.
− Hệ thống hoạt động trên môi trường Android.

* Yêu cầu của ứng dụng: Người dùng dễ dàng sử dụng ứng dụng để tạo, thiết lập theo
ý muốn, dễ dàng sử dụng, giao diện thân thiện và có khả năng kết nối với người dùng
khác cùng sử dụng ứng dụng.
1.1.3. Hướng giải quyết để xây dựng bài toán


8

− Dùng phương pháp hướng đối tượng để tiếp cận vấn đề rõ hơn, tạo khung tổng thể của

bài toán.
− Phân tích mơ hình tổng qt cho từng bộ phận.
− Thiết kế: Dùng cơ sở dữ liệu Firebase để thiết kế cơ sở dữ liệu và thiết kế giao diện
bằng Android Studio.
1.2. Tổng quan về ngơn ngữ lập trình Java
1.2.1. Tổng quan về ngơn ngữ lập trình Java
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun Microsystems
năm 1991. Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi; do bên ngồi
cơ quan của ơng Gosling có trồng nhiều loại cây này), họ dự định ngơn ngữ đó thay
cho C++, nhưng các tính năng giống Objective C. Không nên lẫn lộn Java với
JavaScript, hai ngơn ngữ đó chỉ giống tên và loại cú pháp như C. Công ty Sun
Microsystems đang giữ bản quyền và phát triển Java thường xuyên. Tháng 04/2011,
công ty Sun Microsystems tiếp tục cho ra bản JDK 1.6.24 [1].
Java được tạo ra với tiêu chí "Viết code một lần, thực thi khắp nơi". Chương
trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng khác nhau thông qua một
mơi trường thực thi, với điều kiện có mơi trường thực thi thích hợp để hỗ trợ nền tảng
đó. Mơi trường thực thi của Sun Microsystems hiện đang hỗ trợ Sun Solaris, Linux,
Mac OS, FreeBSD & Windows. Ngoài ra, một số công ty, tổ chức cũng như cá nhân
khác cũng phát triển môi trường thực thi Java cho những hệ điều hành khác như BEA,
IBM, HP,... Trong đó đáng nói đến nhất là IBM Java Platform hỗ trợ Windows, Linux,
AIX & z/OS [1].
Java là một ngơn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp. Khác
với phần lớn ngơn ngữ lập trình thơng thường, thay vì biên dịch mã nguồn thành mã
máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn
thành bytecode, bytecode sau đó sẽ được mơi trường thực thi [4].
Trước đây, Java chạy chậm hơn những ngôn ngữ dịch thẳng ra mã máy như C
và C++, nhưng sau này nhờ công nghệ "biên dịch tại chỗ", khoảng cách này đã được
thu hẹp, và trong một số trường hợp đặc biệt Java có thể chạy nhanh hơn. Java chạy

nhanh hơn những ngôn ngữ thông dịch như Python, Perl, PHP gấp nhiều lần. Java
chạy tương đương so với C#, một ngôn ngữ khá tương đồng về mặt cú pháp và quá
trình dịch/chạy [4].


9

Cú pháp Java được vay mượn nhiều từ C và C++ nhưng có cú pháp hướng đối
tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chương
trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn. Nhưng về lập trình
hướng đối tượng thì Java phức tạp hơn [4].
Trong Java, hiện tượng rị rỉ bộ nhớ hầu như khơng xảy ra do bộ nhớ được quản
lý bởi Java Virtual Machine (JVM) bằng cách tự động "dọn dẹp rác". Người lập trình
khơng phải quan tâm đến việc cấp phát và xóa bộ nhớ như C, C++. Tuy nhiên khi sử
dụng những tài nguyên mạng, tập tin IO, cơ sở dữ liệu (nằm ngồi kiểm sốt của JVM)
mà người lập trình khơng đóng các dịng thì rị rỉ dữ liệu vẫn có thể xảy ra [3].
* Có 6 mục tiêu chính trong việc xây dựng ngôn ngữ Java [4]:







Đơn giản, hướng đối tượng và quen thuộc.
Mạnh mẽ và an toàn.
Kiến trúc trung lập và di động.
Thực thi với hiệu suất cao.
Dịch ra bytecode, phân luồng và năng động.
Dễ sử dụng cho người dùng Java.

1.2.2. Các khái niệm cơ bản trong lập trình ứng dụng Android
Giới thiệu Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các
thiết bị di động có màn hình cảm ứng như điện thoại thơng minh và máy tính bảng.
Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ
Google và sau này được chính Google mua lại vào năm 2005. Android ra mắt vào năm
2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm
các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu
chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android được bán
vào tháng 10 năm 2008. Android có mã nguồn mở và Google phát hành mã nguồn theo
giấy phép Apache. Chính mã nguồn mở cùng với một giấy phép khơng có nhiều ràng
buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt
huyết được điều chỉnh và phân phối Android một cách tự do. Ngồi ra, Android cịn có
một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức
năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi. Vào tháng 10 năm
2012, có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google
Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt.


10

Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ
biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010, và được các công ty công
nghệ lựa chọn khi họ cần một hệ điều hành khơng nặng nề, có khả năng tinh chỉnh, và
giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu. Kết quả là mặc dù
được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện trên TV,
máy chơi game và các thiết bị điện tử khác. Bản chất mở của Android cũng khích lệ
một đội ngũ đơng đảo lập trình viên và những người đam mê sử dụng mã nguồn mở để
tạo ra những dự án do cộng đồng quản lý. Những dự án này bổ sung các tính năng cao
cấp cho những người dùng thích tìm tịi hoặc đưa Android vào các thiết bị ban đầu

chạy hệ điều hành khác. Android chiếm 75% thị phần điện thoại thông minh trên toàn
thế giới vào thời điểm quý 3 năm 2012, với tổng cộng 500 triệu thiết bị đã được kích
hoạt và 1,3 triệu lượt kích hoạt mỗi ngày. Sự thành cơng của hệ điều hành cũng khiến
nó trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong
cái gọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ [2].
Giao diện Android
Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp, sử
dụng cảm ứng chạm tương tự như những động tác ngoài đời thực như vuốt, chạm, kéo
giãn và thu lại để xử lý các đối tượng trên màn hình. Sự phản ứng với tác động của
người dùng diễn ra gần như ngay lập tức, nhằm tạo ra giao diện cảm ứng mượt mà,
thường dùng tính năng rung của thiết bị để tạo phản hồi rung cho người dùng. Những
thiết bị phần cứng bên trong như gia tốc kế, con quay hồi chuyển và cảm biến khoảng
cách được một số ứng dụng sử dụng để phản hồi một số hành động khác của người
dùng, ví dụ như điều chỉnh màn hình từ chế độ hiển thị dọc sang chế độ hiển thị ngang
tùy theo vị trí của thiết bị, hoặc cho phép người dùng lái xe đua bằng xoay thiết bị,
giống như đang điều khiển vô lăng.
Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính, điểm khởi đầu
với các thơng tin chính trên thiết bị, tương tự như khái niệm desktop (bàn làm việc)
trên máy tính để bàn. Màn hính chính Android thường gồm nhiều biểu tượng (icon) và
tiện ích 10 (widget); biểu tượng ứng dụng sẽ mở ứng dụng tương ứng, cịn tiện ích
hiển thị những nội dung sống động, cập nhật tự động như dự báo thời tiết, hộp thư của
người dùng, hoặc những mẩu tin thời sự ngay trên màn hình chính. Màn hình chính có
thể gồm nhiều trang xem được bằng cách vuốt ra trước hoặc sau, mặc dù giao diện


11

màn hình chính của Android có thể tùy chỉnh ở mức cao, cho phép người dùng tự do
sắp đặt hình dáng cũng như hành vi của thiết bị theo sở thích.
Những ứng dụng do các hãng thứ ba có trên Google Play và các kho ứng dụng

khác còn cho phép người dùng thay đổi "chủ đề" của màn hình chính, thậm chí bắt
chước hình dáng của hệ điều hành khác như Windows Phone chẳng hạn. Phần lớn
những nhà sản xuất, và một số nhà mạng, thực hiện thay đổi hình dáng và hành vi của
các thiết bị Android của họ để phân biệt với các hãng cạnh tranh.
Ở phía trên cùng màn hình là thanh trạng thái, hiển thị thơng tin về thiết bị và
tình trạng kết nối. Thanh trạng thái này có thể "kéo" xuống để xem màn hình thông
báo gồm thông tin quan trọng hoặc cập nhật của các ứng dụng, như email hay tin nhắn
SMS mới nhận, mà không làm gián đoạn hoặc khiến người dùng cảm thấy bất tiện.
Trong các phiên bản đời đầu, người dùng có thể nhấn vào thơng báo để mở ra ứng
dụng tương ứng, về sau này các thông tin cập nhật được bổ sung theo tính năng, như
có khả năng lập tức gọi ngược lại khi có cuộc gọi nhỡ mà không cần phải mở ứng
dụng gọi điện ra. Thông báo sẽ ln nằm đó cho đến khi người dùng đã đọc hoặc xóa
nó đi.
Ứng dụng Android
Android có lượng ứng dụng của bên thứ ba ngày càng nhiều, được chọn lọc và
đặt trên một cửa hàng ứng dụng như Google Play hay Amazon Appstore để người
dùng lấy về, hoặc bằng cách tải xuống rồi cài đặt tập tin APK từ trang web khác. Các
ứng dụng trên Cửa hàng Play cho phép người dùng duyệt, tải về và cập nhật các ứng
dụng do Google và các nhà phát triển thứ ba phát hành. Cửa hàng Play được cài đặt
sẵn trên các thiết bị thỏa mãn điều kiện tương thích của Google. Ứng dụng sẽ tự động
lọc ra một danh sách các ứng dụng tương thích với thiết bị của người dùng, và nhà
phát triển có thể giới hạn ứng dụng của họ chỉ dành cho những nhà mạng cố định hoặc
những quốc gia cố định vì lý do kinh doanh. Nếu người dùng mua một ứng dụng mà
họ cảm thấy khơng thích, họ được hoàn trả tiền sau 15 phút kể từ lúc tải về, và một vài
nhà mạng cịn có khả năng mua giúp các ứng dụng trên Google Play, sau đó tính tiền
vào trong hóa đơn sử dụng hàng tháng của người dùng. Đến năm 2017, có hơn 3,6
triệu ứng dụng dành cho Android, và số lượng ứng dụng tải về từ Cửa hàng Play ước
tính đạt 64 tỷ lượt.



12

Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java sử dụng bộ phát
triển phần mềm Android (SDK). SDK bao gồm một bộ đầy đủ các công cụ dùng để
phát triển, gồm có cơng cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại dựa trên
QEMU, tài liệu hướng dẫn, mã nguồn mẫu, và hướng dẫn từng bước. Mơi trường phát
triển tích hợp (IDE) được hỗ trợ chính thức là Eclipse sử dụng phần bổ sung Android
Development Tools (ADT). Các cơng cụphát triển khác cũng có sẵn, gồm có Bộ phát
triển gốc dành cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc C++, Google
App Inventor, một môi trường đồ họa cho những nhà lập trình mới bắt đầu, và nhiều
nền tảng ứng dụng web di động đa nền tảng phong phú.
Nhân Linux
Android có một hạt nhân dựa trên nhân Linux phiên bản 2.6, kể Android 4.0 Ice
Cream Sandwich (bánh ngọt kẹp kem) trở về sau, là phiên bản 3.x, với middleware,
thư viện và API viết bằng C, còn phần mềm ứng dụng chạy trên một nền tảng ứng
dụng gồm các thư viện tương thích với Java dựa trên Apache Harmony. Android sử
dụng máy ảo Dalvik với một trình biên dịch động để chạy 'mã dex' (Dalvik
Executable) của Dalvik, thường được biên dịch sang Java bytecode. Nền tảng phần
cứng chính của Android là kiến trúc ARM. Người ta cũng hỗ trợ x86 thông qua dự án
Android x86, và Google TV cũng sử dụng một phiên bản x86 đặc biệt của Android.
Một số tính năng cũng được Google đóng góp ngược vào nhân Linux, đáng chú ý là
tính năng quản lý nguồn điện có tên wakelock, nhưng bị những người lập trình chính
cho nhân từ chối vì họ cảm thấy Google khơng có định sẽ tiếp tục bảo trì đoạn mã do
họ viết.
Google thơng báo vào tháng 4 năm 2010 rằng họ sẽ thuê hai nhân viên để làm
việc với cộng đồng nhân Linux, nhưng Greg Kroah-Hartman, người bảo trì nhân Linux
hiện tại của nhánh ổn định, đã nói vào tháng 12 năm 2010 rằng ông ta lo ngại rằng
Google không còn muốn đưa những thay đổi của mình vào Linux dịng chính nữa. Một
số lập trình viên Android của Google tỏ ý rằng "nhóm Android thấy chán với quy trình
đó" vì nhóm họ khơng có nhiều người và có nhiều việc khẩn cấp cần làm với Android

hơn. Vào tháng 8 năm 2011, Linus Torvalds rằng "rốt cuộc thì Android và Linux cũng
sẽ trở lại với một bộ nhân chung, nhưng điều đó có thể sẽ không xảy ra trong 4 hoặc 5
năm nữa". Vào tháng 12 năm 2011, Greg Kroah-Hartman thơng báo kích hoạt Dự án
Dịng chính Android, nhắm tới việc đưa một số driver, bản vá và tính năng của


13

Android ngược vào nhân Linux, bắt đầu từ Linux 3.3. Linux cũng đưa tính năng
autosleep (tự nghỉ hoạt động) và wakelocks vào nhân 3.5, sau nhiều nỗ lực phối trộn
trước đó. Tương tác thì vẫn vậy nhưng bản hiện thực trên Linux dịng chính cho phép
hai chế độ nghỉ: bộ nhớ (dạng nghỉ truyền thống mà Android sử dụng), và đĩa (là ngủ
đơng trên máy tính để bàn). Việc trộn sẽ hồn tất kể từ nhân 3.8, Google đã cơng khai
kho mã nguồn trong đó có những đoạn thử nghiệm đưa Android về lại nhân3.8. Bộ lưu
trữ flash trên các thiết bị Android được chia thành nhiều phân vùng, như "system"
dành cho hệ điều hành và "/data" dành cho dữ liệu người dùng và cài đặt ứng dụng.
Khác với các bản phân phối Linux cho máy tính để bàn, người sở hữu thiết bị
Android không được trao quyền truy cập root vào hệ điều hành và các phân vùng nhạy
cảm như /system được thiết lập chỉ đọc. Tuy nhiên, quyền truy cập root có thể chiếm
được bằng cách tận dụng những lỗ hổng bảo mật trong Android, điều mà cộng đồng
mã nguồn mở thường xuyên sử dụng đểnâng cao tính năng thiết bị của họ, kể cả bị
những người ác ý sử dụng để cài virus và phần mềm ác ý. Việc Android có được xem
là một bản phân phối Linux hay khơng vẫn cịn là vấn đề gây tranh cãi, tuy được Linux
Foundation và Chris DiBona, trưởng nhóm mã nguồn mở Google, ủng hộ. Một số
khác, như linux-magazine.com thì không đồng ý, do Android không không hỗ trợ
nhiều công cụ GNU, trong đó có glibc.
Activity
Một Activity là một thể hiện của ứng dụng. Một ứng dụng có thể gồm chỉ 1
hoặc nhiều Activity. Activity chính phải được hiển thị đầu tiên khi khởi động chương
trình. Chuyển từ một Activity này sang một Activity khác bằng cách cho Activity hiện

thời khởi động Activity kế tiếp.
Một cây phân cấp view được đặt trong một cửa sổ của Activity bằng phương
thức Activity.setContentView(), Content view là đối tượng View ở gốc của cây phân
cấp.
Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng đời của
một hoạt động [5].


14

Hình 1.1. Vịng đời của một Activity
Class Activity định nghĩa các sự kiện sau đây:







onCreate(): Được gọi khi hoạt động được tạo ra lần đầu tiên.
onStart(): Được gọi khi hoạt động trở nên hữu hình so với người dùng.
onResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử dụng.
onPause(): Được gọi để dừng các hoạt động hiện tại và nối lại các hoạt động trước đó.
onStop(): Được gọi khi hoạt động khơng cịn hiển thị với người dùng.
onDestroy(): Được gọi trước khi hoạt động bị phá hủy bởi hệ thống (bằng tay hoặc
bằng hệ thống để bảo tồn bộ nhớ).

− onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại một lần nữa.

Service

Một Service khơng có giao diện trực quan, nó chạy nền trong một khoảng thời
gian không xác định.
Trong khi kết nối, người dùng có thể giao tiếp với Service thơng qua giao diện
mà Service đó thơng qua.


15

Service chạy trong Thread chính của ứng dụng, vì thế chúng không ngăn chặn
các thành phần khác hay giao diện của người sử dụng, chúng thường tạo ra các Thread
khác cho các nhiệm vụ hao tổn thời gian.
Content provider
Content Providers là một tập dữ liệu được bao bọc trong một custom API để có
thể cho phép đọc và ghi. Nó hoạt động như một interfacae cho phép bạn lưu trữ và truy
xuất dữ liệu từ một nguồn lưu trữ dữ liệu (repository). Và nó đối tượng này cũng cho
phép bạn chia sẻ dữ liệu giữa các ứng dụng khác nhau. Content Providers tách lớp ứng
dụng khỏi lớp dữ liệu bằng cách trừu tượng nguồn dữ liệu cơ bản, do đó làm cho ứng
dụng nguồn dữ liệu độc lập. Chúng cho phép kiểm sốt permisstion, cho phép ứng
dụng khác có quyền truy cập đến nguồn lưu trữ dữ liệu hay không, giúp cho việc chia
sẻ dữ liệu trở lên dễ dàng. Và tất nhiên, bất kỳ ứng dụng nào có quyền (permissions)
phù hợp đều có thể thêm, xóa, cập nhật và truy xuất dữ liệu của một ứng dụng khác
bao gồm dữ liệu trong một số cơ sở dữ liệu Android Native.
Có 2 loại Content Providers:
− Native content providers: Chúng cung cấp quyền truy cập vào cơ sở dữ liệu tích hợp

có sẵn, chẳng hạn như Contacts, Media player, Message và các cơ sở dữ liệu gốc khác.
Bạn cần cấp các quyền cần thiết cho ứng dụng của mình trước khi sử dụng nhà cung
cấp nội dung gốc.
− Custom content providers: 1 dạng custom cở sở dữ liệu tự tạo bởi nhà phát triển để
phù hợp với các yêu cầu của ứng dụng.

Content Resolver
Để nhận dữ liệu và tương tác với Content Provider, một ứng dụng sử dụng đối
tượng đó là Content Resolver để gửi yêu cầu tới Content Provider. Đối tượng
ContentResolver cung cấp các phương thức query (), insert (), update () và delete () để
truy cập dữ liệu từ Content Provider.
Broadcast Receive
Một Broadcast Rreceiver là một thành phần không làm gì ngồi việc nhận và đáp
lại các thơng báo broadcast. Nhiều broadcast khởi đầu trong mã hệ thống. Các ứng
dụng có thể tạo ra các broadcast, chẳng hạn để ứng dụng khác biết được một số dữ liệu
đã được tải về thiết bị và sẵn sàng cho việc sử dụng chúng.


16

Broadcast Receiver không hiển thị một giao diện người dùng. Tuy nhiên, chúng
có thể bắt đầu một activity để đáp lại thơng tin mà chúng nhận, hay chúng có thể sử
dụng NotificationManager để cảnh báo người dùng. Notifications có thể thấy sự chú ý
của người dùng bằng nhiều cách.
View
Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối
tượng View và ViewGroup. Có nhiều kiểu View và ViewGroup. Mỗi một kiểu là một
con của class View và tất cả các kiểu đó gọi là các Widget.
Tất cả các Widget đều có chung các thuộc tính cơ bản như là trình bày vị trí,
background, kích thước, lề,… Tất cả những thuộc tính này được thể hiện hết ở trong
đối tượng View.
Để thể hiện một màn hình thì trong hàm onCreate của mỗi Activity cần phải
được gọi một hàm là setContentView (R.layout.my_layout). Hàm này sẽ load giao
diện từ file XML lên để phân tích thành mã bytecode.
Intent
Là cầu nối giữa các Activity: Ứng dụng Android thường bao gồm nhiều Activity,

mỗi Activity hoạt động độc lập với nhau và thực hiện những cơng việc khác nhau.
Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũng như truyền các
dữ liệu cần thiết tới một Activity khác [3].
1.3. Firebase Database
1.3.1. Giới thiệu
Firebase (tiền thân là Evolve) trước đây là một start up được thành lập vào năm
2011 bởi Andrew Lee và James Tamplin. Ban đầu, Evolve chỉ cung cấp cơ sở dữ liệu
để các lập trình viên thiết kế các ứng dụng chat (và hiện tại thì để làm quen với
realtime db thì bạn cũng làm ứng dụng chat đó). Tuy nhiên, họ nhanh chóng nhận ra
tiềm năng sản phẩm của mình khi nhận thấy các khách hàng không sử dụng CSDL để
làm ứng dụng chat, mà thay vào đó, để lưu các thơng tin như game progress. Bộ đôi
Lee và Tamplin quyết định tách mảng realtime ra để thành lập một cơng ty độc lập –
chính là Firebase – vào tháng 4 năm 2012. Sau nhiều lần huy động vốn và gặt hái được
những thành công nổi bật, Firebase đã được Google để ý. Vào tháng 10 năm 2014,
Firebase gia nhập gia đình Google [4].
1.3.2. Xây dựng Firebase Database


17

Hình 1.2. Cách Firebase hoạt động
Firebase giúp hỗ trợ lập trình viên bằng cách sử dụng các platform sẵn có để tạo
ra một nền tảng real-time database giúp quản lý và kết nối các bảng trong cơ sở dữ liệu
một cách tự động và có trật tự, đồng thời cũng hỗ trợ các IDE lập trình, đơn cử như
Android Studio.
1.4. Cơ sở dữ liệu NoSQL
1.4.1. Giới thiệu
Cơ sở dữ liệu NoSQL là cơ sở dữ liệu được xây dựng dành riêng cho mơ hình dữ liệu và có sơ
đồ linh hoạt để xây dựng các ứng dụng hiện đại. Cơ sở dữ liệu NoSQL được cơng nhận rộng
rãi vì khả năng dễ phát triển, chức năng cũng như hiệu năng ở quy mô lớn. Các cơ sở dữ liệu

này sử dụng nhiều mơ hình dữ liệu đa dạng, trong đó có văn bản, đồ thị và khóa - giá trị.
Trang này có các tài nguyên giúp bạn hiểu thêm về cơ sở dữ liệu NoSQL và bắt đầu sử dụng
[6].

1.4.2. Cách hoạt động
Cơ sở dữ liệu NoSQL sử dụng nhiều loại mơ hình dữ liệu đa dạng để truy cập
và quản lý dữ liệu, ví dụ như văn bản, đồ thị, khóa – giá trị, trong bộ nhớ và tìm kiếm.
Các loại cơ sở dữ liệu này được tối ưu hóa dành riêng cho các ứng dụng u cầu mơ
hình dữ liệu linh hoạt có lượng dữ liệu lớn và độ trễ thấp, có thể đạt được bằng cách
giảm bớt một số hạn chế về tính nhất quán của dữ liệu của các cơ sở dữ liệu khác [6].
1.4.3. Các dạng cơ sở dữ liệu NoSql


18
Khóa–giá trị: Cơ sở dữ liệu khóa–giá trị có khả năng phân mảnh cao và cho phép thay
đổi quy mô theo chiều ngang ở các quy mô lớn mà các loại hình cơ sở dữ liệu khác khơng thể
làm được. Mơ hình dữ liệu khóa–giá trị được dùng cho trị chơi, cơng nghệ quảng cáo và đặc
biệt thích hợp cho IoT. Amazon DynamoDB được thiết kế để có độ trễ ổn định chỉ vài mili
giây cho khối lượng công việc thuộc quy mô bất kỳ. Hiệu năng ổn định này là lý do chính để
di chuyển tính năng Stories của Snapchat (kể cả khối lượng công việc ghi lưu trữ lớn nhất của
Snapchat) sang DynamoDB [6].
Tài liệu: Trong mã ứng dụng, dữ liệu thường được biểu diễn dưới dạng một đối tượng
hoặc văn bản dạng JSON vì đây là mơ hình dữ liệu hiệu quả và trực quan cho các nhà phát
triển. Cơ sở dữ liệu văn bản giúp nhà phát triển dễ dàng lưu trữ và truy vấn dữ liệu trong một
cơ sở dữ liệu bằng cách sử dụng cùng một định dạng mơ hình văn bản họ sử dụng trong mã
ứng dụng của mình. Tính chất linh hoạt, bán cấu trúc và phân cấp của các văn bản và cơ sở dữ
liệu văn bản cho phép chúng phát triển phù hợp với yêu cầu của ứng dụng. Mô hình văn bản
phát huy hiệu quả với danh mục, hồ sơ người dùng và hệ thống quản lý nội dung, nơi từng
văn bản là duy nhất và phát triển theo thời gian. Amazon DocumentDB (với khả năng tương
thích MongoDB) và MongoDB là các cơ sở dữ liệu văn bản phổ biến cung cấp các API mạnh

mẽ và trực quan để phát triển linh hoạt và lặp lại [6].
Đồ thị: Mục đích của cơ sở dữ liệu đồ thị là giúp việc dựng và chạy ứng dụng hoạt
động với các bộ dữ liệu có khả năng kết nối cao trở nên dễ dàng. Cơ sở dữ liệu đồ thị thường
được sử dụng cho các đồ thị tri thức, mạng xã hội, công cụ đề xuất và phát hiện lừa
đảo. Amazon Neptune là dịch vụ cơ sở dữ liệu đồ thị được quản lý đầy đủ. Neptune hỗ trợ cả
mơ hình Đồ thị thuộc tính lẫn Framework mơ tả tài ngun (RDF), cung cấp cho người dùng
lựa chọn hai API đồ thị: TinkerPop và RDF/SPARQL. Các cơ sở dữ liệu đồ thị phổ biến gồm
có Neo4j và Giraph [6].
Trong bộ nhớ: Ứng dụng trị chơi và cơng nghệ quảng cáo đã sử dụng loại Cơ sở dữ
liệu này trong nhiều trường hợp như bảng xếp hạng, kho lưu trữ phiên và phân tích thời gian
thực yêu cầu thời gian phản hồi đạt mức micro giây và lưu lượng có thể đạt mức đỉnh điểm
vào bất kỳ thời điểm nào. Amazon ElastiCache cung cấp Memcached và Redis, để phục vụ
các khối lượng công việc có độ trễ thấp và thơng lượng cao, chẳng hạn như không thể đáp
ứng nhu cầu của McDonald’s bằng kho dữ liệu trên ổ đĩa. Amazon DynamoDB Accelerator
(DAX) là ví dụ khác về kho dữ liệu được xây dựng chuyên dụng. DAX giúp DynamoDB đọc
yêu cầu cường độ nhanh hơn [6].

* Xây dựng cơ sở dữ liệu bằng Firebase:


19

Bước 1: Tạo một tài khoản trên Firebase hoặc bạn có thể login vào Firebase bằng
tài khoản gmail.
Bước 2: Sau khi đã đăng nhập tài khoản Firebase. Chúng ta tạo một app mới trên
Firebase. Ở đây mình tạo một app có tên devpro-firebase. Chúng ta viết vào dịng APP
NAME và chọn CREAT NEW APP.
Bước 3: Sau khi đã tạo app mới. Ta nhấn chọn Manager App trên app chúng ta
vừa tạo để vào trang quản trị.
Bước 4: Load lại trang sau khi tạo app. Toàn bộ dữ liệu của app sẽ được hiển thị ở

phần Data. Như vậy chúng ta đã tạo xong một app mới trên Firebase.
Kết luận chương 1
Xác định được mục đích xây dựng ứng dụng mạng xã hội, các nội dung nghiên
cứu, phương pháp nghiên cứu cùng các cơng nghệ sử dụng đã tạo nền móng cho vững
chắc cho bài báo cáo đồ án. Khi đã có được nền móng thì việc phân tích thiết kế là
khơng thể thiếu, giúp cho q trình xây dựng đồ án trở nên rõ ràng hơn, tránh mất thời
gian. Sau đây là chương 2: Phân tích và thiết kế hệ thống.


20

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1. Phân tích
2.1.1. u cầu đặt ra của hệ thống
a) Quy trình nghiệp vụ
Đối với ứng dụng, người dùng (Cụ thể là sinh viên) có thể dễ dàng tìm kiếm,
thực hiện các tác vụ trên trang cá nhân của mình hoặc tương tác với người dùng khác
thông qua bài viết hoặc tin nhắn riêng. Ngồi ra, người dùng có thể tạo nhóm hoặc
tham gia các nhóm thảo luận để cùng tương tác với người dùng khác cũng sử dụng
mạng xã hội.
Người dùng chọn nút “Register” thì đồng nghĩa với việc đăng ký tài khoản mới
để đăng nhập vào ứng dụng.
Ở trang cá nhân, người dùng tùy ý chỉnh sửa thông tin cá nhân theo ý muốn và
sở thích để hiển thị với người dùng khác.
Sau khi tạo ảnh đại diện và thông tin cá nhân, người dùng có thể tùy ý sử dụng
các tính năng khác của ứng dụng như là đăng bài, tương tác bài viết, nhắn tin,…
b) Phân tích yêu cầu
* Yêu cầu chức năng.
− Module chức năng quản lý tài khoản: Sinh viên có thể tự quản lý tài khoản cá nhân và


các thông tin khác như mật khẩu, số điện thoại, email,…
− Module chức năng quản lý trang cá nhân: Sinh viên có thể chỉnh sửa các thơng tin của
trang cá nhân như ảnh đại diện, tên người dùng, ảnh bìa,…
− Module chức năng quản lý bài đăng: Sinh viên có thể đăng ảnh, đăng topic học tập,

cũng như xóa hoặc chỉnh sửa bài đăng theo ý muốn.
− Module chức năng tìm kiếm: Người dùng có thể tìm kiếm người dùng khác hoặc nhóm
trị chuyện (Nếu đã tham gia nhóm).
− Module chức năng tạo nhóm: Người dùng có thể tạo nhóm, thêm người dùng khác và
thực thi các chức năng trong nhóm.
− Module chức năng tương tác: Người dùng có thể tương tác bài qua lại với nhau qua bài

viết hoặc thông qua tin nhắn.
− Module chức năng thơng báo: Người dùng có thể tùy chọn nhận thơng báo hoặc
không.
* Yêu cầu phi chức năng.


21
− Tính đúng đắn: Ứng dụng đảm bảo chính xác các chức năng đặc tả và thỏa mãn các

mục đích yêu cầu.
− Tính khoa học: Thể hiện qua các mặt: giao diện, nội dung và hình thức thao tác.
− Tính tin cậy: Ứng dụng được trông chờ thực hiện các chức năng dự kiến với độ chính
xác được yêu cầu.
− Tính kiểm thử: Ứng dụng có thể dễ dàng để có thể kiểm tra được, đảm bảo rằng nó
thực hiện đúng các chức năng dự định.
− Tính sáng tạo: Ứng dụng đảm bảo được phục vụ chính cho mục đích học tập.
− Tính an tồn: Khơng bị xảy ra lỗi như chạy trùng lặp, mất nội dung,…
− Tính tồn vẹn: Không gây ra những nhập nhằng trong thao tác, đảm bảo tính nhất quán

về cú pháp.
2.1.2. Các tác nhân và ca sử dụng của ứng dụng
* Tác nhân.
− User: Là người dùng của ứng dụng.

* Đặc tả các ca sử dụng.
− User đăng ký tài khoản.

Bảng 2.1. Đặc tả ca sử dụng User đăng ký tài khoản
User đăng ký tài khoản
Mơ tả
Hiển thị màn hình đăng ký thơng tin cần có để đăng ký, sau đó
chuyển đến màn hình đăng nhập của ứng dụng.
Đầu vào
Nhập thông tin: Email và mật khẩu đăng ký.
Tiền điều kiện
Khơng có điều kiện.
Điều kiện
Các thơng tin nhập chính xác và đúng định dạng.
Hậu điều kiện
Hệ thống đăng ký thông tin người dùng.
Xử lý
Truy vấn CSDL, kiểm tra thông tin nhập, ký tự đăng nhập.
Đầu ra
Đăng nhập thành công.
− User đăng nhập ứng dụng.
Bảng 2.2. Đặc tả ca User đăng nhập ứng dụng
User đăng nhập ứng dụng
Mơ tả
Hiển thị màn hình đăng đăng nhập vào ứng dụng, sau khi đăng nhập

thành công sẽ hiển thị giao diện trong ứng dụng.
Đầu vào
Nhập thông tin: Email và mật khẩu đăng nhập.
Tiền điều kiện
Người dùng đã đăng ký tài khoản.
Điều kiện
Các thơng tin nhập chính xác và đúng định dạng.
Hậu điều kiện
Hệ thống kiểm tra thông tin đăng nhập.
Xử lý
Truy vấn CSDL, kiểm tra thông tin nhập, ký tự đăng nhập.
Đầu ra
Đăng nhập thành công.
− User quản lý tài khoản


22

Bảng 2.3. Đặc tả ca User quản lý tài khoản
User quản lý tài khoản
Mơ tả
Hiển thị màn hình giao diện tài khoản người dùng, người dùng có
thể tùy ý chỉnh sửa thông tin theo ý muốn.
Đầu vào
Nhập thông tin người dùng.
Tiền điều kiện
Người dùng đã đăng nhập vào ứng dụng.
Điều kiện
Các thơng tin nhập chính xác.
Hậu điều kiện

Hệ thống kiểm tra thông tin người dùng.
Xử lý
Truy vấn CSDL, kiểm tra thông tin nhập.
Đầu ra
Thông tin người dùng được chỉnh sửa.
− User quản lý bài đăng
Bảng 2.4. Đặc tả ca User quản lý bài đăng
User quản lý bài đăng
Mô tả
Người dùng có thể đăng bài có nội dung bất kỳ hoặc kèm ảnh, thêm
sửa xóa bài đăng của mình.
Đầu vào
Nhập thơng tin bài đăng.
Tiền điều kiện
Người dùng đã đăng nhập vào ứng dụng.
Điều kiện
Các thơng tin nhập chính xác và đúng định dạng.
Hậu điều kiện
Hệ thống kiểm tra thông tin người dùng nhập vào.
Xử lý
Truy vấn CSDL, kiểm tra thông tin nhập.
Đầu ra
Xử lý bài viết thành công.


23
− User tìm kiếm

Bảng 2.5. Đặc tả ca User tìm kiếm
User tìm kiếm

Mơ tả
Đầu vào
Tiền điều kiện
Điều kiện
Hậu điều kiện
Xử lý
Đầu ra
− User tương tác

Người dùng nhập thông tin vào ơ tìm kiếm, tìm kiếm người dùng
khác hoặc nhóm theo nhu cầu.
Nhập thơng tin tìm kiếm.
Khơng điều kiện.
Các thơng tin nhập chính xác và đúng định dạng.
Hệ thống kiểm tra thông tin người dùng nhập.
Truy vấn CSDL, kiểm tra thông tin nhập, ký tự đăng nhập.
Hiển thị thơng tin tìm kiếm.

Bảng 2.6. Đặc tả ca User tương tác
User tương tác
Mô tả

Người dùng tương tác với người dùng khác thông qua các chức
năng sẵn có trong giao diện ứng dụng.
Đầu vào
Sử dụng các chức năng của ứng dụng.
Tiền điều kiện
Người dùng đã đăng nhập vào ứng dụng.
Điều kiện
Người dùng sử dụng đúng chức năng của ứng dụng.

Hậu điều kiện
Hệ thống thực thi chức năng người dùng yêu cầu.
Xử lý
Truy vấn CSDL, kiểm tra thông tin.
Đầu ra
Thực thi chức năng thành công.
− User tạo nhóm và tương tác nhóm
Bảng 2.7. Đặc tả ca User tạo nhóm
User tạo nhóm và tương tác nhóm
Mơ tả
Người dùng tạo nhóm, thêm người khác vào nhóm và nhắn tin trong
nhóm.
Đầu vào
Người dùng tạo nhóm theo ý muốn.
Tiền điều kiện
Người dùng đã đăng nhập vào ứng dụng.
Điều kiện
Người dùng nhập đầy đủ thơng tin của nhóm.
Hậu điều kiện
Hệ thống xử lý yêu cầu tạo nhóm.
Xử lý
Hệ thống tạo nhóm dựa theo thơng tin người dùng nhập vào.
Đầu ra
Hệ thống hiển thị nhóm đã tạo trong chức năng nhóm chat.
− User nhận thông báo
Bảng 2.8. Đặc tả ca User nhận thông báo
User nhận thông báo
Mô tả
Người dùng nhận thông báo từ tương tác bài viết.
Đầu vào

Người dùng khác tương tác với bài viết.
Tiền điều kiện
Người dùng có bài viết được người dùng khác tương tác.
Điều kiện
Người dùng khác tương tác với bài viết (like, share, comment).


24

Hậu điều kiện
Hệ thống xử lý thông báo.
Xử lý
Truyền thông báo cho người dùng có bài viết được tương tác.
Đầu ra
Người dùng nhận thông báo thành công.
2.1.3. Các biểu đồ của hệ thống
a) Biểu đồ use case tổng quát
Việc xây dựng các sơ đồ phân rã chức năng này, dựa vào việc phân tích các
chức năng của phần mềm và các tác nhân thực hiện các chức năng đó.
Cơng cụ hỗ trợ: Sử dụng phần mềm vẽ trực tuyến Visual Paradigm Online (VP
Online) Express Edition. Đây là phần mềm phát triển vẽ trực tuyến miễn phí, có thể
tạo nhiều sơ đồ khác nhau như UML, ER, Use case… Phần mềm này tương thích với
tất cả các trình duyệt web (Chrome, Firefox, Safari…) và đặc biệt sẽ lưu bản vẽ trên
Google Drive rất thuận tiện.

Hình 2.1. Biểu đồ use case tổng quát


25


* Mơ tả Use case tổng qt: Người dùng có thể đăng ký tài khoản để đăng nhập
vào ứng dụng, sau đó có thể sử dụng tất cả các chức năng của ứng dụng.
b) Biểu đồ use case phân rã chức năng của hệ thống
 Biểu đồ user case phân rã chức năng đăng nhập tài khoản.

Hình 2.2. Biểu đồ phân rã chức năng đăng ký tài khoản
− Kịch bản use case đăng nhập ứng dụng.

Tên Usecase
Tác nhân chính
Tiền điều kiện
Đảm bảo tối thiểu

Đăng nhập ứng dụng
User.
User phải đăng ký tài khoản.
Hệ thống loại bỏ các thông tin đã thêm, kiểm tra đúng ký tự
đăng nhập.
Thông tin người dùng được cập nhật vào CSDL.
User chọn nút “Login”.

Đảm bảo thành cơng
Kích hoạt
Chuỗi sự kiện chính:
1. Hiển thị giao diện đăng nhập.
2. User nhập đúng email và password.
3. User chọn nút “Login”.
4. Hệ thống gửi thông báo đăng nhâp thành công.

 Biểu đồ user case phân rã chức năng quản lý tài khoản.



×