1.2 Mục đích đề tài Mục đích của dự án này là phát triển một ứng dụng mạng xã hội đáp ứngnhu cầu của người dùng hiện đại.. Trong phần này, chúng ta sẽ tìm hiểu về cấu trúc và kiến trúc c
Trang 1VÀ TRUYỀN THÔNG VIỆT - HÀN
KHOA KHOA KỸ THUẬT MÁY TÍNH VÀ ĐIỆN TỬ
ĐỒ ÁN CƠ SỞ 3
XÂY DỰNG VÀ PHÁT TRIỂN MẠNG XÃ HỘI
Sinh viên thực hiện : ĐẶNG SỸ HOÀI NAM
Giảng viên hướng dẫn: TS.ĐẶNG QUANG HIỂN
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
& TRUYỀN THÔNG VIỆT HÀN
KHOA KỸ THUẬT MÁY TÍNH VÀ ĐIỆN TỬ
ĐỒ ÁN CƠ SỞ 3
XÂY DỰNG VÀ PHÁT TRIỂN MẠNG XÃ HỘI
Sinh viên : ĐẶNG SỸ HOÀI NAM
Mã sinh viên : 22IT.B140 Giảng viên hướng dẫn: TS ĐẶNG QUANG HIỂN
Đà Nẵng, tháng 5 năm 2024
Trang 3LỜI CẢM ƠN
Trước tiên chúng em xin bày tỏ lòng biết ơn vô cùng chân thành tới những thầy giáotrong Đại học công nghệ thông tin và truyền thông Việt Hàn đã nhiệt tình giúp đỡ, chia sẻ với
em nhiều tri thức, kinh nghiệm bổ ích xuyên suốt trong quá trình vừa qua
Đặc biệt em xin bày tỏ lời biết ơn đối với thầy giáo Đặng Quang Hiển đã nhiệt tình giảng dạy,tận tâm chỉ bảo và hỗ trợ sinh viên xuyên suốt thời gian triển khai ĐỒ ÁN CƠ SỞ 3 Trong khilàm việc, em không ngừng tiếp nhận được nhiều thông tin hữu ích mà còn học tập cả phongcách làm việc, phương pháp nghiên cứu khoa học tích cực, nghiêm túc, đây là các hành trang
vô cùng quý báu đối với em cho quá trình giảng dạy và công tác sau này
Tuy đã cố gắng hết mình mới có thể hoàn thiện bài đồ án cơ sở lần này Tuy nhiênchúng em chắc chắn cũng không thể nào thoát ra khỏi khiếm khuyết Kính mong tiếp tục cónhững hướng dẫn và hỗ trợ của quý thầy cô cùng các bạn để sản phẩm của tụi em ngày càngphát triển hoàn thiện hơn nữa
Một lần nữa, chúng em xin trân trọng cảm ơn!
Trang 4NHẬN XÉT GIÁO VIÊN HƯỚNG DẪN
Đà Nẵng, ngày tháng năm 2024
(Chữ kí giáo viên hướng dẫn)
Trang 5MỤC LỤC HÌNH ẢNH
Hình 1.1 - Biểu đồ usercase 10
Hình 1.2 - Biểu đồ tuần tự 11
Hình 1.3 - Biểu đồ class digram 12
Hình 1.4 -Hình trang đăng nhập và đăng kí 14
Hình 1.5 - Hình hiển thị trang Home 15
Hình 1.6 - Hình hiển thị phần thêm vào danh sách yêu thích 16
Hình 1.7 - Hình trang hiển thị bình luận bài viết 16
Hình 1.8 - Trang tìm kiếm người dùng 17
Hình 1.9 - Trang đăng bài viết và Story 18
Hình 1.10 - Trang hiển thị thông báo 19
Hình 1.11 - Trang cá nhân hiển thị bài đăng và thông tin tài khoản 20
Hình 1.12 - Trang hiển thị Story của mình và bạn bè 21
Trang 6MỤC LỤC
LỜI CẢM ƠN 1
NHẬN XÉT GIÁO VIÊN HƯỚNG DẪN 2
MỤC LỤC HÌNH ẢNH 3
MỤC LỤC 4
CHƯƠNG 1: ĐẶT VẤN ĐỀ, ĐỊNH HƯỚNG VÀ GIẢI PHÁP 5
1.1 Giới thiệu đề tài 5
1.2 Mục đích đề tài 5
1.3 Nội dung đề tài 5
CHƯƠNG 2: CƠ SỞ LÍ THUYẾT 6
2.1 Hệ điều hành Android 6
2.2 Ngôn ngữ lập trình Kotlin 8
2.3 Cơ sở dữ liệu Firebase Realtime Database 9
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 10
3.1 Kế hoạch thực hiện dự án 10
3.2 Biểu đồ 11
CHƯƠNG 4: TRIỂN KHAI XÂY DỰNG DỰ ÁN 14
4.1 Bottom Menu 14
4.2 Chức năng của các trang 15
CHƯƠNG 5: TỔNG KẾT ĐÁNH GIÁ 23
5.1 Tổng Kết 23
5.2 Đánh Giá 23
5.3 Kết Luận 23
TÀI LIỆU THAM KHẢO 24
Trang 7CHƯƠNG 1: ĐẶT VẤN ĐỀ, ĐỊNH HƯỚNG VÀ GIẢI PHÁP
1.1 Giới thiệu đề tài
Trong thời đại kỹ thuật số ngày nay, mạng xã hội đã trở thành một phầnkhông thể thiếu của cuộc sống hàng ngày Sự phát triển của công nghệ di động vàInternet đã tạo ra một số lượng lớn các ứng dụng mạng xã hội, nhưng vẫn còn nhucầu cho các nền tảng mới và sáng tạo để đáp ứng nhu cầu ngày càng tăng của ngườidùng Trong ngữ cảnh này, đề tài này giới thiệu về ứng dụng mạng xã hội Story,một nền tảng chia sẻ ảnh và video mới mẻ và tiềm năng
1.2 Mục đích đề tài
Mục đích của dự án này là phát triển một ứng dụng mạng xã hội đáp ứngnhu cầu của người dùng hiện đại Story sẽ mang lại cho người dùng trải nghiệmchia sẻ ảnh và video dễ dàng và thú vị, đồng thời cung cấp cơ hội kiếm tiền và bảo
vệ quyền lợi của họ trên mạng xã hội
1.3 Nội dung đề tài
Phát triển ứng dụng Story: Sử dụng nền tảng Kotlin và Android Studio đểphát triển ứng dụng mạng xã hội Story trên hệ điều hành Android
Tính năng chia sẻ ảnh và video: Phát triển các tính năng cho phép ngườidùng tải lên và chia sẻ ảnh và video, cũng như tương tác với nội dung từ ngườidùng khác
Mong muốn kiếm tiền từ lượt view: Xây dựng cơ chế cho phép người dùngkiếm tiền từ lượt xem trên các bài đăng của họ, tạo cơ hội kiếm thu nhập từ việc sửdụng ứng dụng
Chính sách bảo vệ người dùng: Thiết lập các chính sách bảo vệ quyền lợicủa người dùng, bao gồm bảo mật thông tin cá nhân và ngăn chặn các hành vi viphạm
Trang 8CHƯƠNG 2: CƠ SỞ LÍ THUYẾT
2.1 Hệ điều hành Android
Hệ điều hành Android là một trong những hệ điều hành di động phổ biến nhất trên thế giới Được phát triển bởi Google, Android cung cấp một nền tảng linh hoạt cho việc phát triển ứng dụng di động Trong phần này, chúng ta sẽ tìm hiểu về cấu trúc và kiến trúc của hệ điều hành Android, các thành phần chính của một ứng dụng Android, và quá trình phát triển và triển khai ứng dụng trên nền tảng này
* Lịch sử và phát triển của Android
- Android bắt đầu từ một công ty có tên là Android Inc., được thành lập vào tháng 10 năm 2003 Google đã mua lại công ty này vào năm 2005 và từ đó phát triển Android thành một hệ điều hành di động Phiên bản đầu tiên của Android, Android 1.0, được phát hành vào tháng 9 năm 2008 trên chiếc điện thoại HTC Dream Từ đó, Android đã trải qua nhiều phiên bản nâng cấp, mỗi phiên bản đềumang tên một món tráng miệng hoặc đồ ngọt, chẳng hạn như Cupcake, Donut, Eclair, và Oreo
* Kiến trúc của Android
- Android được xây dựng trên một kiến trúc phân lớp bao gồm:
+ Linux Kernel: Cung cấp các dịch vụ cơ bản như bảo mật, quản lý bộ nhớ, quản lý tiến trình, và điều khiển thiết bị Linux Kernel trong Android giúp đảm bảo tính ổn định và bảo mật của hệ điều hành
+ Libraries: Tập hợp các thư viện C/C++ bao gồm các thành phần như Surface Manager, OpenGL, Media Framework và SQLite Những thư viện này cung cấp
Trang 9các tính năng cơ bản cho việc phát triển ứng dụng, như đồ họa, âm thanh, video,
và lưu trữ dữ liệu
+ Android Runtime: Bao gồm máy ảo Dalvik (trong các phiên bản trước) và ART (Android Runtime) trong các phiên bản hiện tại ART giúp cải thiện hiệu suất và quản lý bộ nhớ tốt hơn so với Dalvik
+ Application Framework: Cung cấp các API cao cấp cho các nhà phát triển ứng dụng Application Framework bao gồm các thành phần như Activity
Manager, Content Providers, Resource Manager, và Notification Manager, giúp quản lý các chức năng cơ bản của ứng dụng
+ Applications: Đây là lớp trên cùng, nơi các ứng dụng như danh bạ, email, trình duyệt và các ứng dụng khác được cài đặt Các ứng dụng này được viết bằng ngôn ngữ Java hoặc Kotlin và sử dụng các API từ Application Framework
* Các thành phần chính của ứng dụng Android
- Một ứng dụng Android bao gồm các thành phần chính sau:
+ Activity: Đại diện cho một màn hình giao diện người dùng Mỗi activity thường tương ứng với một màn hình trong ứng dụng và có vòng đời riêng, quản
lý các trạng thái như bắt đầu, dừng, tiếp tục, và kết thúc
+ Service: Xử lý các tác vụ chạy ngầm mà không cần giao diện người dùng Ví
dụ, service có thể được sử dụng để phát nhạc trong nền hoặc tải dữ liệu từ
internet
+ Broadcast Receiver: Xử lý các thông báo hệ thống hoặc sự kiện phát sóng, chẳng hạn như khi có tin nhắn mới hoặc khi kết nối mạng thay đổi Broadcast Receiver giúp ứng dụng có thể phản ứng với các sự kiện toàn hệ thống
+ Content Provider: Quản lý dữ liệu chia sẻ giữa các ứng dụng Content
Provider cho phép một ứng dụng có thể truy cập dữ liệu từ một ứng dụng khác,
ví dụ như danh bạ hoặc ảnh
Trang 10* Quá trình phát triển và triển khai ứng dụng
- Quá trình phát triển một ứng dụng Android bao gồm các bước từ thiết kế, viết mã, kiểm thử cho đến triển khai Android Studio là môi trường phát triển tích hợp (IDE) chính thức được Google cung cấp để phát triển ứng dụng
Android Android Studio cung cấp các công cụ mạnh mẽ để thiết kế giao diện, viết mã, kiểm thử và gỡ lỗi ứng dụng
- Việc triển khai ứng dụng Android thường thông qua Google Play Store, nhưng cũng có thể thông qua các cửa hàng ứng dụng khác hoặc cài đặt trực tiếp qua file APK Quá trình triển khai yêu cầu nhà phát triển phải ký kết ứng dụng với một khóa bảo mật và tuân theo các quy định của cửa hàng ứng dụng
2.2 Ngôn ngữ lập trình Kotlin
Kotlin là một ngôn ngữ lập trình mới mẻ, được phát triển bởi JetBrains và công bố cho việc phát triển ứng dụng Android Kotlin được thiết kế để cung cấp một cú pháp gọn gàng, linh hoạt và an toàn hơn so với Java, ngôn ngữ chính thức trước đó cho phát triển Android
* Lịch sử và sự phát triển của Kotlin
- Kotlin được công bố lần đầu tiên vào năm 2011 bởi JetBrains, công ty nổi tiếng với các công cụ phát triển như IntelliJ IDEA Phiên bản chính thức 1.0 của Kotlin được phát hành vào năm 2016, và đến năm 2017, Google đã chính thức công nhận Kotlin là ngôn ngữ chính thức cho phát triển ứng dụng Android Sự công nhận này đã thúc đẩy sự phổ biến và áp dụng rộng rãi của Kotlin trong cộng đồng phát triển Android
Trang 11* Tính năng nổi bật và lợi ích của Kotlin
- Kotlin mang lại nhiều tính năng nổi bật như:
+ Null Safety: Giảm thiểu các lỗi null pointer bằng cách loại bỏ khả năng gán null cho các biến không rõ ràng
+ Extension Functions: Cho phép mở rộng chức năng của các lớp mà không cần sửa đổi mã nguồn của chúng Điều này giúp tăng khả năng tái sử dụng và
mở rộng mã nguồn
+ Coroutines: Hỗ trợ lập trình bất đồng bộ dễ dàng hơn, giúp viết mã bất đồng
bộ trở nên rõ ràng và dễ hiểu hơn
* Lợi ích của việc sử dụng Kotlin
- Kotlin giúp tăng hiệu quả và chất lượng mã nguồn, giảm thiểu các lỗi thông thường trong Java, và tương thích hoàn toàn với mã Java hiện có Việc chuyển đổi từ Java sang Kotlin dễ dàng nhờ vào khả năng tương thích của Kotlin với các thư viện và công cụ hiện có của Java Kotlin cũng có một cộng đồng hỗ trợ lớn và tài liệu phong phú, giúp các nhà phát triển dễ dàng học hỏi và áp dụng
2.3 Cơ sở dữ liệu Firebase Realtime Database
Firebase Realtime Database là một dịch vụ cơ sở dữ liệu thời gian thực được cung cấp bởi Google Nó cho phép các nhà phát triển xây dựng ứng dụng di động và web mà không cần thiết kế và triển khai một cơ sở dữ liệu riêng
Firebase Realtime Database lưu trữ dữ liệu dưới dạng JSON và đồng bộ hóa dữ liệu đó giữa tất cả các client trong thời gian thực
* Giới thiệu về Firebase Realtime Database Firebase
- Realtime Database cung cấp một giải pháp mạnh mẽ cho việc quản lý và đồng bộ hóa dữ liệu trong thời gian thực Điều này có nghĩa là khi dữ liệu thay đổi, tất cả các client kết nối sẽ nhận được cập nhật ngay lập tức Firebase
Realtime Database cũng cung cấp các tính năng bảo mật mạnh mẽ và khả năng
mở rộng, giúp dễ dàng quản lý và bảo vệ dữ liệu của ứng dụng
Trang 12CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.1 Kế hoạch thực hiện dự án
Trong kế hoạch thực hiện dự án, chúng tôi đã đề xuất một phần Bottom Menunhư là một phần quan trọng của giao diện người dùng trong ứng dụng Pun BottomMenu sẽ cung cấp các tính năng chính của ứng dụng và giúp người dùng dễ dàngtruy cập vào các chức năng cơ bản Dự kiến, Bottom Menu sẽ bao gồm các mụcsau: Home, Tìm kiếm, Upload, Notifications và Profile
Trong phần Bottom Menu, chúng tôi dự định rằng trang Home sẽ là trang chínhcủa ứng dụng, hiển thị danh sách các bài đăng từ tất cả người dùng theo thứ tự thờigian gần nhất Trang Tìm kiếm dự kiến sẽ cho phép người dùng tìm kiếm ngườidùng bằng tên hoặc ID Trang Upload dự kiến sẽ cho phép người dùng đăng bàiviết mới kèm theo video hoặc ảnh Trang Notifications dự kiến sẽ hiển thị cácthông báo mới như lượt thích, bình luận hoặc theo dõi mới trên các bài đăng củangười dùng Cuối cùng, trang Profile dự kiến sẽ hiển thị thông tin cá nhân củangười dùng và cho phép họ chỉnh sửa, lưu trữ bài đăng và quản lý danh sách yêuthích
Trong quá trình phát triển, chúng tôi sẽ tiến hành kiểm thử và đánh giá từng tínhnăng của Bottom Menu để đảm bảo tính ổn định và hiệu quả của chúng Các cuộckhảo sát và phản hồi từ người dùng thử nghiệm sẽ được thu thập để cải thiện giaodiện và trải nghiệm người dùng Chúng tôi cũng sẽ liên tục cập nhật và tối ưu hóacác thành phần của Bottom Menu dựa trên phản hồi và yêu cầu từ phía người dùng.Việc tích hợp Bottom Menu vào ứng dụng Pun được kỳ vọng sẽ tăng cường khảnăng tương tác và sự hài lòng của người dùng
Trang 133.2 Biểu đồ
* Biểu đồ Use-case: Biểu đồ này minh họa các tương tác giữa người dùng
và hệ thống, chỉ ra các chức năng và tính năng mà người dùng có thể truy cập trongứng dụng
Hình 1.1 - Biểu đồ usercase
Trang 14* Biểu đồ Tuần tự: Biểu đồ này mô tả các luồng hoạt động cụ thể trong hệ
thống, từ khi người dùng tương tác với giao diện đến khi hệ thống xử lý các yêucầu và trả về kết quả tương ứng
Hình 1.2 - Biểu đồ tuần tự
Trang 15* Biểu đồ Class Digram: cung cấp cái nhìn tổng quan về cách các lớp
tương tác với nhau trong hệ thống
Hình 1.3 - Biểu đồ class digram
Trang 16CHƯƠNG 4: TRIỂN KHAI XÂY DỰNG DỰ ÁN
4.1 Bottom Menu
Bottom Menu là một thành phần giao diện quan trọng trong ứng dụng Pun,cung cấp cho người dùng quyền truy cập nhanh chóng vào các tính năng chính củaứng dụng Bottom Menu bao gồm các mục sau:
Home: Trang chính hiển thị danh sách các bài đăng từ tất cả người dùng
theo thời gian gần nhất Người dùng có thể duyệt qua các bài đăng và tương tác vớichúng bằng cách thả biểu tượng yêu thích, bình luận hoặc chia sẻ
Tìm kiếm: Trang này cho phép người dùng tìm kiếm người dùng bằng tên
hoặc ID Kết quả tìm kiếm sẽ hiển thị danh sách các người dùng phù hợp với từkhóa tìm kiếm
Upload: Trang này cho phép người dùng đăng bài viết mới kèm theo video
hoặc ảnh Người dùng có thể tải lên nội dung từ thiết bị của họ và gắn kèm mô tả
và thẻ cho bài đăng của mình trước khi đăng tải lên hệ thống
Notifications: Trang này hiển thị các thông báo mới như lượt thích, bình
luận hoặc theo dõi mới trên các bài đăng của người dùng Người dùng có thể xemcác thông báo và tương tác với chúng, ví dụ như trả lời bình luận hoặc thăm lại bàiđăng có thông báo mới
Profile: Trang cá nhân hiển thị thông tin cá nhân của người dùng như tên,
ID, ảnh đại diện và tiểu sử Người dùng cũng có thể chỉnh sửa thông tin cá nhân vàquản lý bài đăng của họ và danh sách yêu thích
Trang 174.2 Chức năng của các trang
* SignUp/SignIn :.Cho phép đăng kí đăng nhập tài khoản bằng cơ sở dữ liệu
firebase , và sử dụng gmai/password để bảo mật
Hình 1.4 -Hình trang đăng nhập và đăng kí
Trang 18* Home: Trang chính của ứng dụng, hiển thị danh sách các bài đăng từ tất cả
người dùng theo thứ tự thời gian gần nhất Người dùng có thể thực hiện các hoạtđộng như thả biểu tượng yêu thích, bình luận, chia sẻ và lưu bài đăng
Hình 1.5 - Hình hiển thị trang Home
Trang 19*Thêm vào danh sách yêu thích: cho phép lưu trữ bài viết của mình và bạn bè
vào danh sách yêu thích trong trang cá nhân
Hình 1.6 - Hình hiển thị phần thêm vào danh sách yêu thích
* Bình luận bài viết: cho phép người dùng bình luận lên bài viết của mình và
người khác
Trang 20Hình 1.7 - Hình trang hiển thị bình luận bài viết
* Tìm kiếm: Trang này cho phép người dùng tìm kiếm người dùng bằng tên hoặc
ID Kết quả tìm kiếm sẽ hiển thị danh sách các người dùng phù hợp với từ khóa tìmkiếm Người dùng có thể xem thông tin cá nhân của họ và tương tác với họ, chẳnghạn như theo dõi hoặc nhắn tin
Hình 1.8 - Trang tìm kiếm người dùng
Trang 21* Upload: Trang này cho phép người dùng đăng bài viết mới kèm theo video hoặc
ảnh Người dùng có thể chọn từ thiết bị của họ và gắn kèm mô tả và thẻ cho bàiđăng của mình trước khi đăng tải lên hệ thống
Hình 1.9 - Trang đăng bài viết và Story