Chương 1 GIỚI THIỆU1.1 - Tên dự án Ứng dụng mạng xã hội trên Android 1.2 - Sinh viên thực hiện Phan Thanh Tùng - MSV: 18IT115 1.3 – Đặt vấn đề Cùng với sự phát triển của Internet thì
Trang 1KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Giảng Viên Hướng Dẫn: TS Nguyễn Đức Hiển
Sinh Viên Thực Hiện: Phan Thanh Tùng 18IT2
Trang 2LỜI MỞ ĐẦU
Ngày nay, ứng dụng công nghệ thông tin và việc mọi người kết nối với nhau đểtương tác, trao đổi thông tin, là một trong những nhu cầu thiết yếu giúp mọingười dễ dàng kết nối với nhau, từ đó giúp mọi người có thể xích lại gần nhauhơn Mạng Internet là một trong những sản phẩm có giá trị hết sức lớn lao vàngày càng trở nên một công cụ không thể thiếu, là nền tảng chính cho sự truyềntải, trao đổi thông tin trên toàn cầu
Với mong muốn tạo ra một “Mạng xã hôi” để đáp ứng nhu cầu nêu trên, chúng
em đã tìm hiểu và thiết kế “Mạng xã hội ZBIO” dành cho người dùng Việt Namchúng ta Với sự hướng dẫn tận tình của thầy Nguyễn Đức Hiển, người đã cónhững đóng góp ý kiến để em có thể hoàn thành đồ án này Mặc dù đã tìm hiểu kĩ
và phân tích thiết kế nhưng khó tránh khỏi những thiếu sót không mong muốn.Chúng em kính mong nhận được sự thông cảm và góp ý của các quý thầy cô
Em xin kính chúc quý thầy cô dồi dào sức khỏe, tiếp tục đào tạo ra những thế hệtrẻ, nguồn nhân lực chất lượng tốt cho đất nước Em xin chân thành cảm ơn!
Trang 3NHẬN XÉT CỦA GVHD
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, tháng 8 , năm 2020
CHỮ KÍ GVHD
TS NGUYỄN ĐỨC HIỂN
Trang 4MỤC LỤC
Trang
Chương 1 GIỚI THIỆU 1
1.1 - Tên dự án 1
1.2 - Sinh viên thực hiện 1
1.3 – Đặt vấn đề 1
1.3.1 - Mạng xã hôi là gì? 1
1.3.2 – Những mạng xã hội phổ biến hiện nay 1
1.3.3 Đặc điểm chung các mạng xã hội 3
1.3.4 – Nhu cầu sử dụng mạng xã hội của người Việt 3
1.3.5 Lợi ích của mạng xã hội 4
1.4 - Mục tiêu dự án 4
1.5 - Phương pháp thực hiện: 4
1.6 - Nội dụng thực hiện 4
1.7 - Kế hoạch thực hiện 5
Chương 2 NGHIÊN CỨU VÀ THIẾT KẾ 7
2.1 Framework hổ trợ, ngôn ngữ và công cụ lập trình được sử dụng: 7
2.1.1 Laravel Framework: 7
2.1.2 Android Studio: 7
2.1.3 Visual Studio Code (VS Code hay VSC): 8
2.1.4 XamPP: 8
2.1.5 Java (Android): 8
2.1.6 PHP (Hypertext Preprocessor): 8
2.1.7 Restful API: 9
2.1.8 Postman: 9
2.2 Phân tích thiết kệ hệ thống website: 9
2.2.1 Các actor và phân tích chức năng: 9
2.2.2 Sơ đồ phân tích thiết kế hệ thống: 10
2.2.3 Mô tả các chức năng chính 10
Chương 3 TRIỂN KHAI XÂY DỰNG 12
3.1 Kết quả xây dựng cơ sở dữ liệu: 12
Trang 53.1.1 Mô tả cấu trúc một số bảng cơ sở dữ liệu: 12
3.1.2 Cơ sở dữ liệu tổng thể: 14
3.2 Giao diện website 15
3.2.1 Trang đăng nhập 15
3.2.2 Trang đăng ký 15
3.2.3 Trang chủ 16
3.2.4 Trang cá nhân 17
3.2.5 Trang Nổi Bật 18
3.2.6 Trang Thông báo 19
3.2.7 Trang Tìm kiếm 20
3.2.8 Trang lời mời và gợi ý kết bạn 20
3.2.9 Trang quản trị viên (admin) 21
3.3 Giao diện ứng dụng trên Android 24
3.3.1 Màn hình chờ 24
3.3.2 Đăng nhập, đăng ký 25
3.3.3 Trang chủ 26
3.3.4 Giao diện lời mời và gợi ý kết bạn 26
3.3.5 Thông báo 27
3.3.6 Trang cá nhân 28
3.3.7 Tìm kiếm 29
3.3.8 Chi tiết bài viết và chi tiết bình luận 30
3.3.9 Tạo bài viết 31
Chương 4 KẾT LUẬN 32
4.1 Kết quả đạt được 32
4.2 Hướng phát triển 32
Chương 5 TÀI LIỆU THAM KHẢO 33
Trang 6DANH MỤC HÌNH ẢNH
Trang
Hình 2-1 Sơ đồ Use-case 7
Hình 3-1 Cơ sở dữ liệu 11
Hình 3-3 Giao diện website đăng nhập 12
Hình 3-4 Giao diện website đăng ký 13
Hình 3-5 Giao diện website Trang chủ 13
Hình 3-6 Giao diện website Trang cá nhân -1 15
Hình 3-7 Giao diện website Trang cá nhân -2 15
Hình 3-8 Giao diện website Trang Nổi Bật 16
Hình 3-9 Giao diện website Thông báo 16
Hình 3-10 Giao diện website Tìm kiếm 17
Hình 3-11 Giao diện website Lời mời và gợi ý kết bạn 18
Hình 3-12 Giao diện đăng nhập admin 18
Hình 3-13 Giao diện website Trang quản trị viên -1 19
Hình 3-14 Giao diện website Trang quản trị viên -2 20
Hình 3-15 Giao diện website Trang quản trị viên -3 20
Hình 3-16 Giao diện ứng dụng: Màn hình chờ 21
Hình 3-17 Giao diện ứng dụng: Đăng nhập / Đăng ký 22
Hình 3-18 Giao diện ứng dụng: Trang chủ 23
Hình 3-19 Giao diện ứng dụng: Lời mời và gợi ý kết bạn 24
Hình 3-20 Giao diện ứng dụng: Thông báo 24
Hình 3-21 Giao diện ứng dụng: Trang cá nhân 25
Hình 3-22 Giao diện ứng dung: Tìm kiếm 26
Hình 3-23 Giao diện ứng dụng: Chi tiết bài viết và chi tiết bình luận 27
Hình 3-24 Giao diện ứng dụng: Tạo bài viết 28
Trang 7DANH MỤC CÁC BẢNG
TrangBảng 3-1 Cấu trúc bảng – User 11Bảng 3-2 Cấu trúc bảng - Relationship 12Bảng 3-3 Cấu trúc bảng – Posts 12
Trang 8Chương 1 GIỚI THIỆU
1.1 - Tên dự án
Ứng dụng mạng xã hội trên Android
1.2 - Sinh viên thực hiện
Phan Thanh Tùng - MSV: 18IT115
1.3 – Đặt vấn đề
Cùng với sự phát triển của Internet thì mạng xã hội cũng phát triển không ngừng vàđang ngày càng lớn mạnh với số lượng người dùng lên tới hàng chục triệu, trăm triệu hayhàng tỷ Có thể kể đến một số mạng xã hội phổ biến hiện nay như: Facebook, Instagram,Youtube, Twitter, TikTok,… Mạng xã hội cho phép người dùng giao lưu và chia sẻ thôngtin một cách có hiệu quả, vượt ra ngoài những giới hạn về địa lý và thời gian
Ở Việt Nam đã có rất nhiều mạng xã hội được ra đời, nhưng rất ít trong số đó tồn tạiđược quá lâu Zalo.vn có lẽ là mạng xã hội thành công nhất của Việt Nam từ trước đếnnay, hiện đã thu hút được hơn 100 triệu tài khoản người dùng tại Việt Nam Điểm mạnhcủa Zalo là sự riêng tư, theo mặc định nội dung phần bình luận của người khác chỉ hiển thịcho người xem nếu họ đã kết bạn với nhau
Theo số liệu thống kê Internet Việt Nam đầu năm 2020, có tới 65 triệu người dùngmạng xã hội trên thiết bị di động tính đến đầu năm 2019, chiếm tỉ lệ 67% tổng toàn bộ dân
số Việt Nam và cũng theo số liệu thu được, người dùng Việt Nam dùng trung bình 2 giờ
33 phút mỗi ngày để dùng mạng xã hội, cao hơn so với mức trung bình trên thế thới là 2giờ 16 phút Từ số liệu thống kê trên cho thấy nhu cầu sử dụng mạng xã hội của ngườiViệt Nam là rất lớn và đang ngày một tăng lên
1.4 - Mục tiêu dự án
- Xây dựng ứng dụng trên nền tảng android dựa trên nền tảng webstite đã xây dựng
- Back-end restful API (Laravel Framework)
Trang 9- Kiểm tra, khắc phục lỗi trên website đã xây dựng.
- Phân tích thiết kế hệ thống và cơ sở dữ liệu
- Tìm hiểu và xây dựng web service restful api
- Tìm hiểu các công nghệ sử dụng cho android
- Thiết kế giao diện và chức năng
- Hoàn thiện, kiểm tra và sửa lỗi
- Thực hiện làm báo cáo Word và bản thuyết trình
Trang 10Tuần thứ bảy
( Từ 22/06-28/06)
- Tiếp tục xây dựng giao diện và phát triển chức năng:
+Danh sách bạn bè online+ Đóng góp ý kiến của người dùng ( trên website và app)+Một số chức năng khác (nếu có)
Tuần thứ tám
( Từ 29/06-05/07)
- Hoàn thiện giao diện và các chức năng
- Kiểm tra và khắc phục các lỗi (nếu có)
Các tuần còn lại
(Từ 06/07 trở đi)
- Thực hiện làm báo cáo Word và bản thuyết trình
Trang 11Chương 2 NGHIÊN CỨU VÀ THIẾT KẾ
2.1 Framework hổ trợ, ngôn ngữ và công cụ lập trình được
sử dụng:
2.1.1 Laravel Framework:
2.1.1.1 Framework:
Framework là một thư viện các lớp đã được xây dựng hoàn chỉnh, bộ khung để phát
triển các Phần mềm ứng dụng Có thể ví Framework như các “Vật liệu” ở từng lĩnh vực chongười lập trình viên, thay vì họ phải mất nhiều thời gian để tự thiết kế trước khi dùng Dovậy,người lập trình viên chỉ cần tìm hiểu và khai thác các vật liệu này rồi thực hiện để gắnkết chúng lại với nhau, tạo ra sản phẩm
2.1.1.2 Laravel Framework:
Laravel là một PHP Framework mã nguồn mở và miễn phí, được phát triển bởi Taylor
Otwell và nhắm mục tiêu hổ trợ phát triển các ứng dụng dụng web theo cấu trúc view-controller (MVC) Những tính năng nổi bật của laravel bao gồm cú pháp dễ hiểu-rõràng, một hệ thống đóng gói Modular và quản lý gói phụ thuộc, nhiều cách khác nhau đểtruy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai vàobảo trì ứng dụng
model-Laravel được phát hành theo giấy phép MIT, với mã nguồn được lưu trữ tại Github
2.1.2 Android Studio:
Android Studio là một phầm mềm bao gồm các bộ công cụ khác nhau dùng để phát
triển ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android như các loại điện thoại
smartphone, các tablet Android Studio được đóng gói với một bộ code editor, debugger,
các công cụ performance tool và một hệ thống build/deploy (trong đó có trình giả lậpsimulator để giả lập môi trường của thiết bị điện thoại hoặc tablet trên máy tính) cho phépcác lập trình viên có thể nhanh chóng phát triển các ứng dụng từ đơn giản tới phức tạp
Trang 122.1.3 Visual Studio Code (VS Code hay VSC):
Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux và macOS,
Visual Studio Code được phát triển bởi Microsoft Nó được xem là một sự kết hợp hoàn
hảo giữa IDE và Code Editor
Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax highlighting, tự
hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tính năng tùy chỉnh, VisualStudio Code cũng cho phép người dùng thay đổi theme, phím tắt, và các tùy chọn khác
2.1.4 XamPP:
Xampp là một mã nguồn mở máy chủ web đa nền được phát triển bởi Apache Friends,
bao gồm chủ yếu là Apache HTTP Server, MariaDB database, và interpreters dành chonhững đối tượng sử dụng ngôn ngữ PHP và Perl Xampp là viết tắt của Cross-Platform (đanền tảng-X), Apache (A), MariaDB (M), PHP (P) và Perl (P) Nó phân bố Apache nhẹ vàđơn giản, khiến các lập trình viên có thể dễ dàng tạo ra máy chủ web local để kiểm tra vàtriển khai trang web của mình Tất cả mọi thứ cần cho phát triển một trang web - Apache(ứng dụng máy chủ), Cơ sở dữ liệu (MariaDB) và ngôn ngữ lập trình (PHP) được gói gọntrong 1 tệp Xampp cũng là 1 đa nền tảng vì nó có thể chạy tốt trên cả Linux, Windows vàMac Hầu hết việc triển khai máy chủ web thực tế đều sử dụng cùng thành phần nhưXAMPP nên rất dễ dàng để chuyển từ máy chủ local sang máy chủ online
2.1.5 Java (Android):
Java là ngôn ngữ chính thức để phát triển Android Đây là ngôn ngữ có sự hỗ trợ nhiều
nhất từ Google Nó cũng là ngôn ngữ mà hầu hết các ứng dụng trên Play Store được xâydựng Nó cũng là ngôn ngữ chính thức của Android Hệ điều hành Android của Google sử
dụng Java như là cơ sở cho tất cả các ứng dụng Android.
2.1.6 PHP (Hypertext Preprocessor):
Thường được viết tắt thành PHP là một ngôn ngữ lập trình kịch bản hay một loại mã
lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùngcho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trangHTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C
và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữkhác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới
Trang 132.1.7 Restful API:
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web
(thiết kế Web services) để tiện cho việc quản lý các resource Nó chú trọng vào tài nguyênhệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng tháitài nguyên được định dạng và được truyền tải qua HTTP
2.1.8 Postman:
Postman là một App Extensions, cho phép làm việc với các API, nhất là REST, giúp ích
rất nhiều cho việc kiểm thử Hỗ trợ tất cả các phương thức HTTP (GET, POST, PUT,DELETE, OPTIONS, HEAD ) Postman cho phép lưu lại các lần sử dụng Sử dụng cho cánhân hoặc team lớn
2.2 Phân tích thiết kệ hệ thống website:
2.2.1 Các actor và phân tích chức năng:
Các tác nhân và chức năng:
Administrator(admin):
Đăng nhập bằng quyền admin
Quản lý người dùng: khóa, xóa tài khoản người dùng
Quản lý các bài đăng: khóa, xóa bài viết của người dùng
Nhận và trả lời phản hồi người dùng
Người sử dụng (Users):
Đăng nhập, đăng ký tài khoản
Xem trang cá nhân của mình và người khác
Chỉnh sửa thông tin cá nhân
Đăng, chỉnh sửa, xóa bài viết của người dùng
Xem bảng tin: các bài viết của mọi người
Thích, bình luận và phản hồi bình luận
Trang 14 Xem chi tiết bài viết
Sao chép nội dung hoặc đường dẫn bài viết
Tìm kiếm: người dùng và các bài viết liên quan
Xem lời mời, gợi ý kết bạn: trả lời lời mời hoặc thêm bạn bè mới
Xem thông báo của mình
+ Đăng nhập: Khi có tài khoản thì người dùng có thể đăng nhập và sử dụng ZBIO
- Bảng tin: Hiện thị nội dung chính của ứng dụng bao gồm:
+ Tạo bài viết : Người dùng có thể tạo bài viết mình muốn tại đây
Trang 15+ Bảng tin: Hiện thị các bài viết của người dùng và bạn bè Tại đây người dùng cóthể like, bình luận các bài viết mình muốn.
- Lời mời và gợi ý kết bạn: Hiện thị danh sách các lời mời và gợi ý kết bạn : Ngườidùng có thể chấp nhận hoặc hủy các yêu cầu kết bạn cũng như gửi lời mời cho nhữnggợi ý kết bạn
- Thông báo: Hiển thị danh sách những thông báo của người dùng: Người dùng có thểbấm vào xem cụ thể từng thông báo của mình
- Tìm kiếm: Người dùng có thể tìm kiếm bạn bè hoặc các bài viết tại đây
- Tin nhắn: Người dùng có thể nhắn tin với bạn bè của mình
- Menu bao gồm:
+ Trang cá nhân: người dùng có thể bấm vào xem trang cá nhân của mình tại đây+ Danh sách bạn bè : Xem danh sách bạn bè online và offline
+ Hỗ trợ người dùng: Người dùng có thể gửi hỗ trợ và ý kiến tại mục này
+ Đăng xuất : Người dùng có thể đăng xuất ứng dụng bằng cách nhấn nút này
Trang 16Chương 3 TRIỂN KHAI XÂY DỰNG
3.1 Kết quả xây dựng cơ sở dữ liệu:
3.1.1 Mô tả cấu trúc một số bảng cơ sở dữ liệu:
3.1.1.1 Bảng User:
Tên Kiểu Mô tả
username varchar Tên đăng nhập
firstName varchar Tên
lastName varchar Họ
password varchar Mật khẩu
gender varchar Giới tính
phone varchar Điện thoại
img_avt varchar Ảnh đại diện
img_cover varchar Ảnh bìa
fbID bigint ID đăng nhập facebook của người dùng
status int Trạng thái tài khoản: + 0: hoạt động
+ 1: khóaauth int Loại tài khoản: + 0: người dùng
+ 1: admincreated_at datetime Thời gian tạo tài khoản
update_at datetime Thời gian chỉnh sửa tài khoản gần nhất
Bảng 3-1 Cấu trúc bảng – User
3.1.1.2 Bảng quan hệ bạn bè (Relationship):
Tên Kiểu Mô tả
relaID bigint ID relationship
UserID_1 bigint ID người dùng 1
UserID_2 bigint ID người dùng 2
Status int Trạng thái quan hệ:
0: đã gửi lời mời kết bạn1: bạn bè
Trang 172: chặnAction_userID bigint ID người dùng gửi hành động cuối
Bảng 3-2 Cấu trúc bảng – Relationship
3.1.1.3 Bảng bài viết (Posts)
Tên Kiểu Mô tả
postID bigint ID bài viết
userID bigint ID người dùng đăng bài viết
post_Content varchar Nội dung bài viết
post_Image varchar Ảnh của bài viết
Trạng thái bài viết:
0: hiển thị1: khóa bởi quản trị viêncreated_at datetime Thời gian tạo tài bài viết
update_at datetime Thời gian chỉnh sửa bài viết
Bảng 3-3 Cấu trúc bảng – Posts
3.1.2 Cơ sở dữ liệu tổng thể:
Trang 19Hình 3-3 Giao diện website đăng nhập
3.2.2 Trang đăng ký
- Người dùng có thể đăng ký tài khoản mới tại đây Khi đăng ký thành côngngười dùng được chuyển tới trang đăng nhập Nếu đã có tài khoản người dùng
có thể nhấp nút Đăng nhập để chuyển tới trang đăng nhập
Hình 3-4 Giao diện website đăng ký
Trang 203.2.3 Trang chủ
Hình 3-5 Giao diện website Trang chủ
- Giao diện trang chủ gồm có:
o Header (trên cùng trang web) bao gồm:
Logo
Nút chuyển hướng tới bảng tin
Nút chuyển hướng tới mục Nổi Bật
Nút chuyển hướng tới Trang cá nhân