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

BÁO CÁO LẬP TRÌNH ANDROID CƠ BẢN ĐỀ TÀI XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI XEM VIDEO NGẮN

38 2 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

Tiêu đề Xây Dựng Ứng Dụng Mạng Xã Hội Xem Video Ngắn
Tác giả Đinh Đức Anh, Bùi Quý Đôn, Nguyễn Quang Huy, Ngô Xuân Trọng
Người hướng dẫn TS. Lê Anh Tiến
Trường học Học Viện Kỹ Thuật Mật Mã
Chuyên ngành Lập Trình Android Cơ Bản
Thể loại Báo cáo
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 38
Dung lượng 4,87 MB

Nội dung

LỜI NÓI ĐẦUTrong thời đại công nghệ số hiện nay, các ứng dụng mạng xã hội xem video ngắn đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của hàng triệu người dùng trên kh

Trang 1

HỌC VIỆN KỸ THUẬT MẬT MÃ Khoa Công nghệ thông tin

BÁO CÁO LẬP TRÌNH ANDROID CƠ BẢN

ĐỀ TÀI:

XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI XEM VIDEO

NGẮN

Cán bộ hướng dẫn:

TS Lê Anh Tiến

Sinh viên thực hiện:

Đinh Đức Anh Bùi Quý Đôn Nguyễn Quang Huy Ngô Xuân Trọng

Lớp: L03 Nhóm: 17

CT050302 CT050310 CT050325 CT050350

Trang 3

HỌC VIỆN KỸ THUẬT MẬT MÃ Khoa Công nghệ thông tin

BÁO CÁO ANDROID CƠ BẢN

ĐỀ TÀI:

XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI XEM VIDEO

NGẮN

Nhận xét của cán bộ hướng dẫn:

Điểm chuyên cần:

Điểm báo cáo:

Xác nhận của cán bộ hướng dẫn

Trang 4

MỤC LỤC

DANH MỤC HÌNH ẢNH i

DANH MỤC BẢNG BIỂU iii

LỜI CẢM ƠN 1

LỜI NÓI ĐẦU 2

CHƯƠNG 1: PHÂN TÍCH YÊU CẦU HỆ THỐNG 3

1.1 Tổng quan hệ thống ứng dụng thương mại điện tử 3

1.2 Các công nghệ được sử dụng 3

1.2.1 Tổng quan về lập trình đa nền tảng 3

1.2.2 Tổng quan về Flutter framework 6

1.2.3 Tổng quan về NodeJS và framework ExpressJS 8

1.2.5 Tổng quan về Công nghệ Speech – to – text và thư viện speech – to – text của Flutter 14

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

2.1 Yêu cầu hệ thống 17

2.1.1 Yêu cầu chức năng 17

2.1.2 Yêu cầu phi chức năng 17

2.2 Biểu đồ Use case 18

2.2.1 Biểu đồ Use case Tổng quát 18

2.2.2 Phân rã biểu đồ Use case 19

2.3 Các biểu đồ tuần tự 22

2.3.1 Biểu đồ tuần tự Đăng ký 22

2.3.2 Biểu đồ tuần tự Đăng nhập 23

2.3.3 Biểu đồ tuần tự Tìm kiếm sản phẩm 23

2.3.4 Biểu đồ tuần tự Thêm sản phẩm vào giỏ hàng 24

2.3.5 Biểu đồ tuần tự Xoá sản phẩm ở giỏ hàng 24

2.3.6 Biểu đồ tuần tự Xem chi tiết sản phẩm 25

2.3.7 Biểu đồ tuần tự Thanh toán 26

2.3.8 Biểu đồ tuần tự Xem chi tiết đơn hàng 27

Trang 5

2.3.10 Biểu đồ tuần tự Sửa thông tin cá nhân 29

2.3.11 Biểu đồ tuần tự Đổi mật khẩu 30

2.3.12 Biểu đồ tuần tự Thêm sản phẩm 31

2.3.13 Biểu đồ tuần tự Sửa thông tin sản phẩm 32

2.3.14 Biểu đồ tuần tự Xoá sản phẩm 33

2.3.15 Biểu đồ tuần tự Cập nhật trạng thái đơn hàng 34

2.4 Thiết kế cơ sở dữ liệu 35

2.4.1 Sơ đồ kết nối bảng 35

2.4.2 Cấu trúc các bảng 35

CHƯƠNG 3: Kết quả thực nghiệm 37

3.1 Giao diện người dùng (User) 37

3.1.1 Giao diện Đăng nhập 37

3.1.2 Giao diện Đăng ký 38

3.1.3 Giao diện Trang chủ 39

3.1.4 Giao diện Phân loại sản phẩm 40

3.1.5 Giao diện Tìm kiếm sản phẩm 41

3.1.6 Giao diện Sản phẩm 42

3.1.7 Giao diện Giỏ hàng 43

3.1.8 Giao diện Thanh toán 44

3.1.10 Giao diện Thông tin cá nhân 46

3.1.11 Giao diện Đổi mật khẩu 47

3.2 Giao diện Quản lý bán hàng (Admin) 48

3.2.1 Giao diện Quản lý sản phẩm 48

3.2.2 Giao diện Thống kê doanh thu 49

3.2.3 Giao diện Quản lý đơn hàng 50

KẾT LUẬN 51

TÀI LIỆU THAM KHẢO 52

Trang 6

DANH MỤC HÌNH ẢN

Hình 1.1 Lập trình đa nền tảng 4

Hình 1.2 Flutter framework 6

Hình 1.3 Cách hoạt động của Node JS 9

Hình 1.4 Luồng hoạt động của ExpressJS 10

Hình 1.5 Cơ chế định tuyến giúp duy trì website của ExpressJS 11

Hình 1.6 Logo của Hệ quản trị cơ sở dữ liệu MongoDB 12

Hình 1.7 Lệnh truy vấn dữ liệu trong MongoDB 13

Hình 1.8 Công nghệ Speech – to – text 14

Hình 2.1 Biểu đồ Use case Tổng quát 18

Hình 2.2 Phân rã biểu đồ Use case Quản lý giỏ hàng 19

Hình 2.3 Phân rã biểu đồ Use case Theo dõi đơn hàng cá nhân 19

Hình 2.4 Phân rã biểu đồ Use case Quản lý sản phẩm 20

Hình 2.5 Phân rã biểu đồ Use case Quản lý đơn hàng 20

Hình 2 6 Phân rã biểu đồ Quản lý thông tin cá nhân 21

Hình 2 7 Biểu đồ tuần tự Đăng ký 22

Hình 2.8 Biểu đồ tuần tự Đăng nhập 23

Hình 2.9 Biểu đồ tuần tự Tìm kiếm sản phẩm 23

Hình 2.10 Biểu đồ tuần tự Thêm sản phẩm vào giỏ hàng 24

Hình 2.11 Biểu đồ tuần tự Xoá sản phẩm ở giỏ hàng 24

Hình 2.12 Biểu đồ tuần tự Xem chi tiết sản phẩm 25

Hình 2.13 Biểu đồ tuần tự Thanh toán 26

Hình 2.14 Biểu đồ tuần tự Xem chi tiết đơn hàng 27

Hình 2.15 Biểu đồ tuần tự Xem thông tin cá nhân 28

Hình 2.16 Biểu đồ tuần tự Sửa thông tin cá nhân 29

Hình 2.17 Biểu đồ tuần tự Đổi mật khẩu 30

Hình 2.18 Biểu đồ tuần tự Thêm sản phẩm 31

Hình 2.19 Biểu đồ tuần tự Sửa thông tin sản phẩm 32

Hình 2.20 Biểu đồ tuần tự Xoá sản phẩm 33

Hình 2.21 Biểu đồ tuần tự Cập nhật trạng thái đơn hàng 34

Hình 2.22 Sơ đồ kết nối các bảng 35

Hình 3.1 Giao diện Đăng nhập 37

Hình 3.2 Giao diện Đăng ký 38

Hình 3.3 Giao diện trang chủ 39

Trang 7

Hình 3.5 Giao diện Tìm kiếm sản phẩm 41

Hình 3.6 Giao diện Sản phẩm 42

Hình 3.7 Giao diện Giỏ hàng 43

Hình 3.8 Giao diện Thanh toán 44

Hình 3.9 Giao diện Quản lý tài khoản 45

Hình 3.10 Giao diên Thông tin cá nhân 46

Hình 3.11 Giao diện Đổi mật khẩu 47

Hình 3 12 Giao diện Quản lý sản phẩm (Admin) 48

Hình 3 13 Giao diện Thống kê doanh thu (Admin) 49

Hình 3 14 Giao diện Quản lý đơn hàng (Admin) 50

Trang 8

DANH MỤC BẢNG BIỂU

Bảng 2.1 Bảng người dùng 35

Bảng 2.2 Bảng đơn hàng 36

Bảng 2.3 Bảng sản phẩm 36

Bảng 2.4 Bảng đánh giá sản phẩm 36

Trang 9

Nhóm sinh viên thực hiện đề tài

Trang 10

LỜI NÓI ĐẦU

Trong thời đại công nghệ số hiện nay, các ứng dụng mạng xã hội xem video ngắn đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của hàng triệu người dùng trên khắp thế giới Với sự phát triển nhanh chóng và phổ biến rộng rãi, các nền tảng như TikTok, Instagram Reels và YouTube Shorts không chỉ cung cấp những trải nghiệm giải trí tuyệt vời

mà còn tạo nên những xu hướng mới, kết nối cộng đồng và thúc đẩy sự sáng tạo không ngừng.

Đề tài “Xây dựng ứng dụng mạng xã hội xem video ngắn” này sẽ cung cấp một cái nhìn tổng

quan cơ bản về hệ thống ứng dụng mạng xã hội xem video ngắn hiện nay, từ giao diện người dùng, hệ thống backend, lưu trữ và phân phối nội dung, tính năng xã hội Qua đó, chúng ta sẽ hiểu rõ hơn về cách thức hoạt động, tầm quan trọng và ảnh hưởng của các ứng dụng này trong cuộc sống số hiện đại.

Nội dung của báo cáo bao gồm:

Chương 1 Phân tích yêu cầu hệ thống – Trình bày một số khái niệm, định

nghĩa cơ bản và cơ sở lý thuyết liên quan; Tổng quan về yêu cầu hệ thống và cáccông nghệ được sử dụng

Chương 2 Phân tích và thiết kế hệ thống – Trình bày tổng quan quá trình

phân tích và thiết kế hệ thống: Phân tích và xác định quan hệ giữa các lớp trong hệthống; Thiết kế cấu trúc hệ thống

Chương 3 Kết quả thực nghiệm – Trình bày kết quả đạt được: Giao diện và

các chức năng của hệ thống; Phương hướng phát triển

Trang 11

CHƯƠNG 1: PHÂN TÍCH YÊU CẦU HỆ THỐNG

1.1 Tổng quan hệ thống ứng dụng mạng xã hội xem video ngắn

Hệ thống ứng dụng mạng xã hội xem video ngắn, như TikTok, Instagram Reels và YouTube Shorts, đã trở thành một phần không thể thiếu của cuộc sống số hiện đại Các ứng dụng này cho phép người dùng tạo, chia sẻ và xem các video ngắn, thường từ 15 giây đến 1 phút, với các tính năng mạnh mẽ và trải nghiệm người dùng phong phú.

1.2 Các công nghệ được sử dụng

1.2.1 Tổng quan về lập trình Android

1.2.1.1 Khái niệm về nền tảng Android

Android là một hệ điều hành dựa trên nền tảng Linux Nó được thiết kế ra

để 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 minhhay máy tính bảng

Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phépApache Chính mã nguồn mở và những giấy phép không có quá nhiều ràng buộc

Đã tạo điều kiện thuận lợi để Android phát triển 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 Androidmột cách tự do Thêm vào đó Android còn có một cộng đồng đông đảo các lậptrình viên và các chuyên gia có thể chuyên viết các ứng dụng để mở rộng chứcnăng của thiết bị

Hình 1.1 Nền tảng Android

Trang 12

Về kiến trúc của hệ điều hành Android, bao gồm các tầng kiến trúc sau:

Tầng Applications: Là tầng chứa các ứng dụng Danh bạ, Gọi điện, Trình

duyệt, Nghe nhạc, … các ứng dụng này thường mua máy về chúng ta đã có sẵn rồi

Tầng Framework: Là tầng chứa các API để làm việc với hệ điều hành như

lấy thông tin danh bạ, quản lý các Activity (Activity là gì thì giờ chúng ta chưa cần quan tâm, các bài sau sẽ giải thích kĩ), quản lý địa điểm, quản lý các View (cũng chưa cần quan tâm)

Tầng Libraries: Chứa các thư viện, API gần như là cốt lõi của Android, bao

gồm bộ quản lý bề mặt cảm ứng (Surface Manager), OpenGL (phục vụ cho việc dựng đồ họa phức tạp), …

Tầng Android Runtime: Chứa các thư viện lõi của Android và máy ảo

Dalvik Virtual Machine (từ Android 4 trở lên chúng ta có thêm máy ảo ART)

Tầng Kernel: Là nhân lõi của hệ điều hành, chứa các tập lệnh, driver giao

tiếp giữa phần cứng và phần mềm của Android

1.2.1.2 Các ngôn ngữ lập trình Android phổ biến ngày nay

Mặc dù Android hỗ trợ nhiều ngôn ngữ lập trình khác nhau, nhưng nhữngngôn ngữ phổ biến nhất cho lập trình Android được sử dụng để phát triển là:

Ngôn ngữ Java: Java là ngôn ngữ lập trình Android đầu tiên được hỗ trợ

trên nền tảng Android Với sự ổn định và thư viện phong phú, Java vẫn làlựa chọn phổ biến cho nhiều nhà phát triển Android

Ngôn ngữ Kotlin: Kotlin, được Google chính thức hỗ trợ vào năm 2017,

nhanh chóng trở thành ngôn ngữ chính thay thế Java Kotlin được ưachuộng vì cú pháp ngắn gọn, an toàn và hiện đại hơn

Ngôn ngữ C++: C++ được sử dụng trong Android thông qua Android

NDK (Native Development Kit) Ngôn ngữ này chủ yếu được sử dụng đểviết các phần mềm yêu cầu hiệu suất cao, như các game hoặc ứng dụng

đồ họa phức tạp

Ngôn ngữ Python: Python không phổ biến như Java hay Kotlin trong lập

trình Android, nhưng vẫn có thể sử dụng thông qua các công cụ và thưviện như Kivy hoặc BeeWare

Trang 13

Ngôn ngữ Dart: Dart, được sử dụng với framework Flutter, là một ngôn

ngữ lập trình mới nổi cho phát triển ứng dụng Android Flutter cho phéptạo ra các ứng dụng đẹp mắt và hiệu suất cao trên cả Android và iOS

1.2.2 Tổng quan về Flutter framework

1.2.2.1 Giới thiệu về Flutter framework

Kotlin là một ngôn ngữ lập trình hiện đại, tĩnh (statically typed), được phát

triển bởi JetBrains và chính thức công bố vào năm 2011 Kotlin được thiết kế để tương thích hoàn toàn với Java và Java Virtual Machine (JVM), đồng thời cung cấp

cú pháp gọn gàng, dễ đọc và nhiều tính năng hữu ích Vào năm 2017, Google công

bố Kotlin là ngôn ngữ chính thức để phát triển ứng dụng Android, bên cạnh Java

Hình 1.2 Ngôn ngữ Kotlin

1.2.2.2 Tại sao nên sử dụng Kotlin

Tương thích với Java: Kotlin có thể làm việc cùng với Java mà không gặp

vấn đề gì, cho phép các lập trình viên sử dụng cả hai ngôn ngữ trong cùng một dự

án Điều này giúp dễ dàng chuyển đổi từ Java sang Kotlin mà không cần phải viếtlại toàn bộ mã nguồn

Cú pháp ngắn gọn và dễ đọc: Kotlin cung cấp cú pháp ngắn gọn, giúp giảm

thiểu lượng mã nguồn cần viết và tăng tính đọc được của mã Điều này giúp lậptrình viên dễ dàng duy trì và quản lý mã nguồn

Null Safety: Kotlin được thiết kế để giảm thiểu các lỗi liên quan đến giá trị

null, một vấn đề phổ biến trong Java Bằng cách cung cấp hệ thống loại không chấp

Trang 14

nhận giá trị null (nullable types), Kotlin giúp lập trình viên tránh được lỗiNullPointerException.

Hỗ trợ các tính năng hiện đại: Kotlin hỗ trợ nhiều tính năng lập trình hiện

đại như lambda expressions, higher-order functions, extension functions, vàcoroutines (được sử dụng để xử lý lập trình bất đồng bộ một cách hiệu quả)

Cộng đồng và hỗ trợ: Kotlin có một cộng đồng lập trình viên năng động và

tài liệu phong phú, giúp dễ dàng tìm kiếm hỗ trợ và học hỏi từ các nguồn tàinguyên trực tuyến

1.2.2.3 Những điểm cần lưu ý khi sử dụng Kotlin

Những điểm yếu của Kotlin:

Hiệu suất biên dịch chậm hơn: Kotlin có thể có thời gian biên dịch chậm

hơn so với Java, đặc biệt là trong các dự án lớn Tuy nhiên, JetBrains vàcộng đồng đang liên tục cải thiện hiệu suất biên dịch

Kích thước tệp biên dịch lớn hơn: Do tích hợp nhiều tính năng và thư

viện, tệp biên dịch Kotlin có thể lớn hơn so với Java Điều này có thể ảnhhưởng đến kích thước cuối cùng của ứng dụng

Khó làm quen với người mới: Mặc dù Kotlin dễ học đối với lập trình viên

Java, những người mới bắt đầu lập trình hoặc không quen với các tínhnăng hiện đại của ngôn ngữ lập trình có thể cần thời gian để làm quen

Thiếu tài liệu và ví dụ so với Java: Mặc dù đang ngày càng phổ biến,

Kotlin vẫn chưa có nhiều tài liệu và ví dụ thực tế như Java Điều này cóthể gây khó khăn cho lập trình viên khi tìm kiếm giải pháp cho các vấn đề

Các dịch vụ và tính năng chính của Firebase:

Trang 15

Realtime Database: Một cơ sở dữ liệu NoSQL cho phép lưu trữ và đồng

bộ dữ liệu giữa người dùng trong thời gian thực Dữ liệu được lưu trữ

dưới dạng JSON và có thể được truy cập từ cả ứng dụng di động và web.

Firestore (Cloud Firestore): Một cơ sở dữ liệu NoSQL linh hoạt và có

khả năng mở rộng cao, cũng hỗ trợ đồng bộ dữ liệu thời gian thực.Firestore cung cấp các truy vấn phức tạp và tích hợp tốt với các sản phẩmkhác của Firebase

Authentication: Dịch vụ xác thực người dùng hỗ trợ nhiều phương thứcđăng nhập khác nhau như email/mật khẩu, số điện thoại, và các dịch vụbên thứ ba như Google, Facebook, Twitter

Cloud Storage: Lưu trữ và quản lý các tệp lớn như ảnh, video, và các nội

dung đa phương tiện khác Cloud Storage cung cấp khả năng mở rộng,bảo mật và tính sẵn sàng cao

Cloud Functions: Cho phép chạy mã backend tùy chỉnh trong môi trường

đám mây mà không cần quản lý server Cloud Functions có thể được kíchhoạt bởi nhiều sự kiện khác nhau như thay đổi trong Firestore, xác thựcngười dùng, hoặc từ các yêu cầu HTTP

Firebase Hosting: Cung cấp dịch vụ hosting cho các trang web tĩnh và

nội dung động với hiệu suất cao và bảo mật Firebase Hosting tích hợp tốtvới các dịch vụ khác của Firebase như Cloud Functions và CloudFirestore

Analytics: Cung cấp công cụ phân tích chi tiết về cách người dùng tương

tác với ứng dụng Firebase Analytics giúp theo dõi các sự kiện, hành vingười dùng và các thông tin quan trọng khác

Cloud Messaging (FCM): Dịch vụ gửi thông báo đẩy (push notifications)miễn phí cho các ứng dụng iOS, Android và web FCM hỗ trợ gửi thôngbáo theo nhiều tiêu chí khác nhau và theo dõi hiệu quả của chúng

Remote Config: Cho phép thay đổi cấu hình và hành vi của ứng dụng từ

xa mà không cần cập nhật lại ứng dụng Remote Config giúp điều chỉnh

và cá nhân hóa trải nghiệm người dùng một cách nhanh chóng

Firebase Performance Monitoring: Công cụ giám sát hiệu suất ứng dụng,giúp theo dõi và phân tích các vấn đề liên quan đến hiệu suất để cải thiện

trải nghiệm người dùng

Trang 16

Hình 1.3 Các dịch vụ của Firebase

Trang 17

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

2.1.2 Yêu cầu phi chức năng

Hiệu suất: Hệ thống cần phải đáp ứng được số lượng lớn người dùng

đồng thời mà không làm giảm hiệu suất

Bảo mật: Dữ liệu của người dùng cần được bảo vệ khỏi các cuộc tấn công

và rò rỉ thông tin

Tính sẵn sàng: Hệ thống cần phải hoạt động liên tục, 24/7, để đáp ứng

nhu cầu của người dùng

Dễ sử dụng: Giao diện người dùng cần phải thân thiện và dễ sử dụng.

Tính mở rộng: Hệ thống cần được thiết kế để có thể mở rộng khi nhu cầu

người dùng tăng

2.2 Biểu đồ Use case

2.2.1 Biểu đồ Use case Tổng quát

Ta thấy hệ thống có tác nhân là: Người dùng cùng với các chức năng chính

Trang 18

Hình 2.1 Biểu đồ Use case Tổng quát

2.2.2 Phân rã biểu đồ Use case

2.2.2.1 Phân rã biểu đồ Use case Quản lý thông tin cá nhân

Trang 19

Use case Quản lý thông tin cá nhân được thực hiện bởi Người dùng và có thểphân rã thành hai Use case là: Xem thông tin cá nhân, Đổi avatar.

Hình 2.2 Phân rã biểu đồ Use case Quản lý thông tin cá nhân

2.2.2.2 Phân rã biểu đồ Use case Tương tác video

Use case Tương tác video được thực hiện bởi Người dùng và có thể phân rãthành hai Use case là: Thích video và Bình luận video

Hình 2.3 Phân rã biểu đồ Use case Tương tác video

Ngày đăng: 26/10/2024, 20:32

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

TÀI LIỆU LIÊN QUAN

w