1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỒ án xây DỰNG ỨNG DỤNG MẠNG xã hội TRÊN nền TẢNG WEB

73 86 0

Đ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 Một Ứng Dụng Mạng Xã Hội Trên Nền Tảng Web
Trường học Trường Đại Học
Chuyên ngành Công Nghệ Thông Tin
Thể loại đồ án
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 73
Dung lượng 8,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Xây dựng một trang mạng xã hội với những chức năng cơ bản như: Đăng bài viết,bày tỏ cảm xúc, bình luận, chia sẻ, tạo các nhóm để mọi người tham gia, quản lítrang cá nhân cũng như các t

Trang 1

MỤC LỤC

Trang 2

DANH MỤC HÌNH ẢNH

Trang 3

DANH MỤC BẢNG BIỂU

Trang 4

MỞ ĐẦU

Chúng ta đang sống thế kỉ XXI, nơi mà mạng Internet và các ứng dụng của nó đã trởthành thứ không thể thay thế trong tất cả các lĩnh vực kinh tế và trong cả đời sống thườngngày của hàng tỉ người trên thế giới Mọi loại thông tin, số liệu âm thanh, hình ảnh có thểđược đưa về dạng kỹ thuật số để bất kỳ máy tính nào cũng có thể lưu trữ, xử lý và chuyểntiếp cho nhiều người Những công cụ và sự kết nối của thời đại kỹ thuật số cho phépchúng ta dễ dàng thu thập, chia sẻ thông tin và hành động trên cơ sở những thông tin nàytheo phương thức hoàn toàn mới, kéo theo hàng loạt sự thay đổi về các quan niệm, các tậptục, các thói quen truyền thống, và thậm chí cả cách nhìn các giá trị trong cuộc sống Vàgiờ đây trong cuộc cách mạng công nghệ 4.0 thì mạng Internet càng trở nên quan trọnghơn bao giờ hết vì nó là cốt lõi trong mạng lưới trao đổi thông tin khổng lồ

Nói mạng Internet là một trong những công nghệ quan trọng nhất thế kỉ XXI thìmạng xã hội là một trong những ứng dụng nổi bật nhất của Internet nói chung và WorldWide Web nói riêng Các mạng xã hội đang phát triển mạng mẽ và sẽ không quá khi nóirằng đây là ứng dụng có ảnh hưởng lớn nhất tới đòi sống xã hội ở hầu hết tất các quốc giatrên thế giới, trong đó có Việt Nam Mạng xã hội – một xã hội thu nhỏ trên Internet, đã trởnên phổ biến với những tính năng vượt trội và đa dạng cho phép người dùng có thể kếtnối, chia sẻ, tiếp nhận thông tin một cách nhanh chóng và tiện lợi từ hầu như bất kì nơinào

Với sự phát triển của các mạng xã hội càng cho thấy tầm quan trọng của nó trongcuộc của hàng tỉ người Không chỉ là những công dụng đơn giản như chia sẻ hình ảnh,video, các bài viết, hay cảm xúc mà giờ đây mạng xã hội đang lấn sang cả các mảng liênquan đến thương mại điện tử Với mạng lưới người dùng đông đảo, các trang bán hàng có

thể dễ dàng tìm kiếm và quảng bá sản phẩm của mình Vì vậy, em chọn đề tài “Xây dựng một ứng mạng xã hội trên nền tảng web” để giúp em có thể hiểu và tận dụng được

những công nghệ đang rất phổ biến này

Trang 5

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI1.1 Tính cấp thiết của đề tài

Sự phát triển mạnh mẽ của Internet những năm gần đây đã mở ra không chỉ mộtngành nghề, một lĩnh vực mà là cả một kỉ nguyên mới trong cách mà cong người chúng ta

có thể giao tiếp, trao đổi không chỉ thông tin mà cũng như hàng hoá Đi cùng với sự pháttriển mạnh mẽ này của Internet không thể không nhắc đến một thành phần đã phát triển từrất sớm và vẫn luôn là khía cạnh mạnh mẽ nhất của Internet đó chính là World Wide Webhay Web Từ những ngày đầu chỉ là những những trang chia sẽ văn bản tĩnh khô khan đơnthuần, dần dần nó trở thành công cụ chia sẻ tất cả các loại dữ liệu đa phương tiện từ hìnhảnh đến âm thanh

Ngày nay những trang web này không chỉ có thể chia sẻ các dữ liệu tĩnh mà còn cóthể tương tác với chúng một cách vô cùng linh hoạt và nhanh chóng Những trang webnày được gọi là các ứng dụng web

Một trong những dịch vụ sử dụng sự thành công của Internet cũng như các côngnghệ ứng dụng web một cách hiệu quả nhất chính là các mạng xã hội Theo những thống

kê gần đây thì có khoảng 3 tỉ người dùng mạng xã hội, và trung bình những người nàymỗi ngày đều dành khoảng 2 tiếng rưỡi để tham gia cập nhật thông tin cũng như chia sẻchúng trên các trang mạng xã hội Với những con số như vậy không khó hiểu khi nhữngmãng xã hội này đang dần lấn sân sang mảng thương mại điện tử khi người dùng có thể

dễ dàng kết nối với những dùng khác có nhu cầu mua hàng một cách dễ dàng thông quacác nhóm trao đổi

Vậy cách thức hoạt động của một trang mạng xã hội là như thế nào cũng như nhữngcông nghệ làm ra nó là gì mà khiến các trang mạng hội trở thành một phần không thểthiếu của rất rất nhiều người trong cuộc sống hiện đại ngày nay? Đây chính là câu hỏi đãkhiến em chọn tìm hiểu và xây dựng một trang mạng xã hội để có thể hiểu rõ nhất về dịch

vụ Internet đình đám này

1.2 Mục tiêu của đề tài

• Nâng cao kiến thức chuyên môn của bản thân cũng như có thể áp dụng những kiếnthức đã được học tại trường

• Tìm hiểu các công nghệ được sử dụng trong các ứng dụng web cũng như phươngthức hoạt động của loại dịnh vụ Internet này

• Xây dựng một trang mạng xã hội với những chức năng cơ bản như: Đăng bài viết,bày tỏ cảm xúc, bình luận, chia sẻ, tạo các nhóm để mọi người tham gia, quản lítrang cá nhân cũng như các tài nguyên khác của bản thân, …

Trang 6

1.3 Phạm vi của đề tài

Bài toán xây dựng mạng xã hội là một bài toán rất rộng chính vì thế trong giới hạn

và phạm vi nghiên cứu của đề tài này em chỉ cho phép người dùng: Đăng ký; Đăng nhập;Tìm kiếm các bài viết, nhóm; Tạo các nhóm; Đăng bài viết trên trang cá nhân/nhóm;Quản lí trang cá nhân/nhóm; Xoá/chỉnh sửa bài viết; Bình luận; Chia sẻ; Thích bàiviết/bình luận/hình ảnh; Nhắn tin; Thông báo thời gian thực;

Với những hạn chế về thời gian cũng như khả năng Một số chức năng phổ biếnkhác của các trang mạng xã hội sẽ không được thực hiện như: Gọi điện; Gọi video; Tạocác trang page có nhiều người quản lý; Tối ưu giao diện cho đa thiết bị

1.4 Nội dung nghiên cứu

• Tìm hiểu về mạng xã hội

• Tìm hiểu các công nghệ để xây dựng ứng dụng như: Spring, MySQL, Angular

• Phân tích và thiết kếmột trang mạng xã hội

Các nội dung trên sẽ được chia làm các chương như sau:

Chương I Tổng quan về đề tài

Chương II Cơ sở lý thuyết và công nghệ Chương này sẽ trình bày về một số côngnghệ cho các ứng dụng web

Chương III Phân tích và đặc tả yêu cầu Chương này sẽ phân tích và mô tả bàitoán qua các ca sử dụng

Chương IV Thiết kế hệ thống Chương này trình bày về cài đặt và triển khai hệthống

Chương V: Kết quả thực nghiệm

Trang 7

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ2.1 Tổng quan về ứng dụng web

2.1.1 Ứng dụng web là gì?

Các ứng dụng web (web application) sử dụng kết hợp các server-side scripts (PHP

và ASP) để xử lý việc lưu trữ và truy xuất thông tin, và client-side scripts (JavaScript vàHTML) để trình bày thông tin cho người dùng Điều này cho phép người dùng tương tácvới doanh nghiệp bằng biểu mẫu trực tuyến, hệ thống quản lý nội dung, giỏ hàng muasắm và hơn thế nữa Ngoài ra, các ứng dụng còn cho phép nhân viên tạo tài liệu, chia sẻthông tin, cộng tác trên các dự án và làm việc trên các tài liệu chung bất kể vị trí hoặcthiết bị

Một số Web app phổ biến và được hàng triệu người sử dụng hàng ngày trên thế giớinhư: Netflix, Facebook, Twitter, Instagram, …

Trang 8

2.1.2 Các loại ứng dụng web

Bảng 2-1 Các loại ứng dụng web

Responsive Dynamic Serving Separate Mobile Site

Khái niệm Là trang web tự động

thay đổi kích thước vàhình thức hiển thị dựatheo kích cỡ màn hìnhthiết bị truy cập củangười dùng

Trang web tự độngcung cấp 2 phiên bảnkhác nhau về mặt dựatheo thiết bị mà ngườidùng truy cập vào

Điểm khác biệt củaDynamic Serving vớiResponsive là HTMLcủa từng thiết bị nhậnđược sẽ khác nhau

Tuy nhiên URL củatrang web sẽ thay đổi

Đây là hình thức xâydựng 2 trang web riêngbiệt cho Desktop vàmobile Các websitenày sẽ không phụthuộc nhau về nộidung, URL cũng khácnhau

Mô tả Thay đổi để phù hợp

với kích thước mànhình thiết bị truy cậpcủa người dùng

Thay đổi để phù hợpvới kích thước mànhình thiết bị truy cậpcủa người dùng

Thay đổi để phù hợpvới kích thước mànhình thiết bị truy cậpcủa người dùng

Thiết bị Thay đổi về CSS,

không thay đổiHTML

Phục vụ phiên bảnHTML khác nhau tùytheo thiết bị

1 Website cho Desktop

và 1 website chomobile

URL Không thay đổi Không thay đổi Khác nhau cho

Desktop và mobile

Bảo trì Ít tốn kém Cần nhiều nhân lực về

kỹ thuật 2 trang web riêng biệt,có thể giống hoặc khác

cho từng trang tùy theođịnh hướng phát triển

Nội dung Chỉ một nội dung cho cả

Desktop và mobile

Chỉ một nội dung cho cảDesktop và Mobile, cóthể khác nhau tùy theođịnh hướng phát triển

2 website riêng biệt, cóthể giống nhau hoặc riêngcho từng trang tùy theođịnh hướng phát triển

Trang 9

Tác động

đến SEO Không ảnh hưởng. Không ảnh hưởng. Chuẩn bị kỹ thuật để đảmbảo không bị trùng lặp

nội dung

Tốc độ

web Phiên bản mobile có thểload chậm hơn Tùy thuộc vào lập trình. Tùy thuộc vào lập trình.

Đặc điểm Tiện lợi, phù hợp với các

website tin tức, nội dungngười dùng chỉ cần đọc làchính

Chi phí thấp, bảo trì dễdàng

Thiết kế web app nhanhchóng, quản lý nội dung

dễ dàng, URL và SEO

Dynamic Serving kháphức tạp và tốn kém hơntrong quá trình xây dựngweb app

Dễ dàng bảo trì, quản lýnội dung, URL và SEO

Đem lại trải nghiệm tốthơn cho các website cónhiều tính năng nhưecommerce

Mang đến trải nghiệmngười tốt nhất trên điệnthoại di động

Tốn nhiều thời gian lậptrình web app

Chi phí thiết kế ứng dụngweb và bảo trì cao hơn

Quá trình quản lý nộidung, URL, SEO cũngphức tạp hơn

2.1.3 Một số ứng dụng của ứng dụng web

a) Quản lý tuyển dụng

• Quản lý các đợt ứng tuyển của công ty

• Lập phiếu và tạo đợt tuyển dụng

• Đăng thông tin, duyệt yêu cầu tuyển dụng

• Nhận hồ sơ đăng ký, quản lý kết quả phỏng vấn của ứng viên

• Đóng hệ thống và duyệt, nhận hồ sơ khi hết hạn

• Chấm điểm test tự động, gửi mail đến những ứng viên đạt yêu cầu và chờ

bộ phận tuyển dụng sắp xếp ngày, giờ phỏng vấn

• Gửi email cám ơn đến ứng viên không đạt và lưu vào danh sách ứng viên đãlàm test

• Gửi email hẹn ứng viên thời gian phỏng vấn sơ tuyển

• Tự động báo cáo với bộ phận tuyển dụng những ứng viên không xác nhận

Trang 10

• Chuyển thông tin ứng viên được tuyển vào danh sách nhân viên

• Theo dõi nhu cầu tuyển dụng từ các bộ phận, phòng ban chi tiết theo vị trícông việc đang cần ứng tuyển

• Khai báo nhanh chóng các thông tin ứng tuyển như: kinh nghiệm làm việc,thông tin sức khỏe hay trình độ học vấn, chứng chỉ và các kỹ năng…

• Lưu trữ các thông tin ứng viên chưa được tuyển để sử dụng cho các lầntuyển dụng sau, giúp công ty giảm chi phí về tuyển dụng

• Cung cấp kịp thời và chi tiết các báo cáo thống kê, phân tích tình hình tuyểndụng

• Tự động chuyển đổi toàn bộ thông tin ứng viên sang nhân viên mới vớinhững hồ sơ được trúng tuyển

b) Quản lý hàng bán lẻ, kho

• Quản lý nhóm hàng đang kinh doanh và tìm kiếm các mặt hàng tiện lợi

• Quản lý thông tin các nhà cung cấp hàng hóa, xuất nhập hàng vào kho

• Quản lý, thiết lập bảng giá, xuất hàng bán sỉ, lẻ

• Chức năng tìm kiếm, báo cáo kho hàng, thống kê doanh thu theo nhân viên

• Báo cáo lãi, lỗ và in báo cáo cụ thể

c) Quản lý trường học

• Quản lý tuyển sinh, thi xếp lớp, kết quả học tập

• Quản lý học viên và giáo viên

• Quản lý đào tạo - lớp học

• Quản lý thu chi, tính lương

d) Phần mềm kế toán

• Tìm kiếm, quản lý chứng từ, quản lý tiền tệ, nhập dữ liệu từ file Excel

• Điều chỉnh danh mục tài khoản, đối tượng tương tác và hợp đồng

• Xuất, trao đổi và sao lưu dữ liệu nhanh chóng

e) Phần mềm tính tiền siêu thị

• Quản lý các đơn hàng - giao dịch và phân quyền nhóm, nhân viên

Trang 11

• Quản lý công nợ, thông báo chính xác cụ thể số lượng hàng hóa tồn kho và sốlượng đã bán

• Lưu lại lịch sử chỉnh sửa kết hợp với máy in, các thiết bị đọc mã vạch,…

• Tự động lưu trữ, sao lưu dữ liệu, thống kê báo cáo đảm bảo an toàn hệ thống

2.1.4 Ưu điểm của ứng dụng web

• So với ứng dụng trên máy tính và các ứng dụng trên di động, ứng dụng webthường sẽ dễ dàng bảo trì hơn do đó kéo theo chi phí phát sinh cũng thấp hơn

• Ứng dụng web có thể dùng được trên tất cả các nền tảng: Máy tính (Linux,Mac, Windows, …), di động (Android, iOs, …) chỉ cần chúng hỗ trợ trìnhduyệt web

• Không qua sự kiểm duyệt cũng như kiểm soát của các chợ ứng dụng lớn nhưAppstore, Play store, …

• Không cần cài đặt để có thể sử dụng

• Dễ dàng cập nhật và không cần nhắc người dùng cập nhật

2.1.5 Nhược điểm của ứng dụng web

• Bảo mật không phải là một thế mạnh của các ứng dụng web khi truyền các dữliệu cá nhân qua Internet

• Ứng dụng web không phụ thuộc vào nền tảng nhưng lại phụ thuộc và trìnhduyệt web Một số trình duyệt khác nhau sẽ có các điểm khác biệt nhất định

• Phụ thuộc vào mạng Internet Hầu hết các ứng dụng web đều yêu cầu kết nốiInternet để hoạt động

• Có thể sẽ tiêu tốn nhiều dữ liệu di động hơn so với các nền tảng khác do ứngdụng web sẽ phải tải tất cả dữ liệu từ Internet về và không thể sử dụng lại(hoặc rất ít) các dữ liệu đã được tải về từ trước

Trang 12

2.1.6 Sự khác nhau giữa ứng dụng web và website

Bảng 2-2 Sự khác nhau giữa ứng dụng web và website

Đối tượng Được thiết kế với mục tiêu là

tương tác với người dùng Thường

sẽ lưu thông tin người dùng và tuỳbiến theo các dữ liệu cá nhân củangười dùng

Website thường là các trang vớinội dung tĩnh Nội dung của trang

sẽ không đổi với tất cả ngườidùng

Tương tác

người dùng

Người dùng không chỉ xem cácnội dung trong trang mà còntương tác, sử dụng, điều khiểnchúng

Chỉ cung cấp các nội dung hìnhảnh và văn bản để người dùngxem và người dùng sẽ không thểhoặc rất ít có khả năng tương tácvới chúng

Đăng nhập Ứng dụng web cần người dùng

đăng nhập để có thể tối ưu giaodiện và các chức năng dựa theotừng người dùng

Việc đăng nhập là không bắt buộccho các trang thông tin Ngườidùng cũng có thể đăng nhậpnhưng thường sẽ không có tácđộng nhiều đến nội dung củatrang trước và sau đăng nhập

Nhiệm vụ và

độ phức tạp

Ứng dụng web sẽ có các chứcnăng cao và phức tạp hơn so vớiwebsite

Thường sẽ chỉ có chức năng làhiển thị các nội dung nhất định

Những sự thay đổi nhỏ không cầnphải tải lại toàn bộ mà chỉ cần cậpnhật phần HTML code

2.2 Spring (Spring boot)

2.2.1 Spring là gì?

Spring được xem là một Framework có vai trò phát triển cho các ứng dụng Java.Trong số đó, phổ biến nhất là Java Enterprise và nó được sử dụng bởi hàng triệu lập trìnhviên khác nhau Framework này được phát triển đầu tiên bởi Rod Johnson và được ban

Trang 13

hành giấy phép Apache 2.0.

Spring có kích thước nhẹ và trong suốt nên có thể hoạt động một cách trong suốtnhất với lập trình viên Spring mặc dù nhẹ nhưng lại có khả năng hỗ trợ cho các ứng dụngtạo ra hiệu năng cao, sử dụng lại code dễ dàng và dễ kiểm thử,… Nhờ vậy mà các lậptrình viên có thể dễ dàng thực hiện việc tối ưu hóa được hầu hết mọi công việc cũng nhưtiết kiệm được tối đa thời gian làm việc

Các tính năng chính của Spring chủ yếu được sử dụng để có thể xây dựng được cácứng dụng bên trong Java Desktop, một số ứng dụng mobile, các Java Web Một trongnhững mục tiêu chính nhất của Spring là đảm bảo cho việc phát triển những ứng dụngJ2EE một cách dễ dàng hơn dựa trên mô hình sử dụng POJO (Plain Old Java Object)

2.2.2 Các module của Spring

a) Test: Đây là tầng cung cấp cho người dùng khả năng hỗ trợ kiểm thử với JUnit và

TestNG

b) Spring Core Container: Nó có bao gồm một số module khác như:

• Spring core, bean: Có khả năng cung cấp các tính năng như: IOC vàDependency Injection

• Spring Context: Hỗ trợ các dạng đa ngôn ngữ và các tính năng Java EE chongười dùng như: EJB, JMX

• Expression Language: Có khả năng mở rộng từ Expresion Language bêntrong JSP Từ đó, cung cấp các hỗ trợ cho quá trình setting hoặc getting cácgiá trị Hầu hết các method đều sẽ thực hiện cải tiến cho phép truy cập vàocollections, index, các toán tử logic…

c) AOP, Aspects and Instrumentation: Các module này sẽ giữ nhiệm vụ hỗ trợ cho

các cài đặt lập trình thiên hướng khía cạnh và khả năng hỗ trợ tích hợp vớiAspectJ

d) Data Access / Integration: Đây là nhóm bao gồm JDBC, ORM, OXM, JMS và

module Transaction Chúng có khả năng cung cấp giao tiếp cùng với database

Trang 14

e) Web: Nó hay còn gọi là Spring MVC, đây là một trong những nhóm bao gồm:

Web, Web-Servlet… Nó sẽ hỗ trợ cho việc tạo ra các ứng dụng web

2.2.3 Thành phần cốt lõi của Spring

Spring Core là một trong những thành phần quan trọng cốt lõi của SpringFramework Đây là một trong những nền tảng được đánh giá bao nhờ có sự vững chắcgiúp bạn có thể xây dựng được nhiều thành phần khác từ các hệ sinh thái SpringFramework

2.2.3.1 Spring Bean

Spring Bean được xem là trung tâm của Spring Core và là một trong những trái timứng dụng của Spring Bởi vì Spring Framework được thiết kế bằng cách sử dụng cácPOJO hoặc các Spring Bean và bạn có thể hiểu Spring Bean là những đối tượng Javatương đối đơn giản

2.2.3.2 Dependency Injection (DI)

Dependency Injection là một trong những sức mạnh vô cùng nổi bật của SpringFramework Trong một số phiên bản gốc thì EJB người ta thường không nhận thấy sự

Hình 2-2 Kiến trúc của Spring

Trang 15

xuất hiện của các Dependency Injection.

Tuy nhiên, do nhận thấy được sự thành công từ Spring nên các phiên bản EJB 3.xcũng đã cung cấp các annotation để bạn có thể thực hiện inject các dependency.Dependency Injection được đánh giá là một trong những mẫu thiết kế phần mềm đốitượng phụ thuộc thì sẽ được inject vào một lớp nào đó

2.2.3.3 Spring Context

Spring Context giúp bạn mang mọi thứ lại với nhau và Spring Context thường được

kế thừa từ những tính năng từ Spring Bean Từ đó, bổ sung và hỗ trợ cho cácinternationalization (ví dụ như các resource bundle), event propagation, resourceloading…

Ngoài ra, Spring Context có khả năng hỗ trợ các tính năng mới của Java như EEhoặc EJB, JMX,… Trong đó, Interface Application Context mới chính là một trong nhữngtrọng tâm quan trọng của Spring Context

2.2.3.4 Spring Expression Language (SpEL)

Spring Expression Language là loại ngôn ngữ ngắn gọn có thể giúp cho các cấu hìnhSpring Framework trở nên linh hoạt và dễ hiểu hơn

2.2.4 Lý do chọn Spring trong đồ án

• Spring có các công nghệ giúp xây dựng REST API một cách nhanh chóng

• Spring JPA giúp giao tiếp và thực hiện các tác vụ với database một cách thuận tiện

lý tưởng của bất kỳ công nghệ Server nào

Angular sử dụng kiến trúc Model-View-Controller (MVC), được sử dụng trong pháttriển ứng dụng web Kiểu kiến trúc này bao gồm:

Trang 16

• Model – cấu trúc dữ liệu quản lý thông tin và nhận đầu vào từ controller

• View – bản đại diện của thông tin

• Controller – đáp ứng đầu vào và tương tác với model

Trong Angular, model là framework, view là HTML và control là JavaScript

2.3.2 Những tính cơ bản của Angular

• Controller : xử lý dữ liệu cho đối tượng $scope, từ đây bên views sẽ sử dụng các

dữ liệu trong scope để hiển thị ra tương ứng

• Data-binding : tự động đồng bộ dữ liệu giữa model và view

Service : Nó được xem là singleton object có khả năng khởi tạo 1 lần duy nhất dànhriêng cho mỗi ứng dụng và nó cung cấp các phương án dữ liệu có sẵn như: ($http,

$sce, $rootElement, $controller, $document, $httpBackend, $compile, $parse,

• Temple : Là một thành phần của view có khả năng hiển thị thông tin từ controller

• Routing : là sự chuyển đổi giữa các action trong controller, qua lại ngay giữa cácview

• MVC & MVVM : Là mô hình thiết kế nhằm mục đích phân chia các ứng dụng cónhiều thành nhiều phần khác nhau (nó được gọi là Model, View và Controller) vàmỗi phần thường sẽ sở hữu một nhiệm vụ nhất định AngularJS thường không triểnkhai MVC dựa theo cách truyền thống mà chủ yếu gắn liền với Model-View-ViewModel hơn

• Deep link : Liên kết sâu này cho phép lập trình viên mã hóa các trạng thái của ứngdụng bên trong URL để có thể bookmark với nhiều công cụ tìm kiếm khác Hầuhết, các ứng dụng này đều có thể được phục hồi lại từ những địa chỉ URL với cùngtrạng thái

• Dependency Injection: AngularJS có sẵn dependency injection hỗ trợ bạn tạo ra

Trang 17

các ứng dụng có tiềm năng phát triển, dễ hiểu và kiểm tra.

2.3.3 Lý do chọn Angular trong đồ án

• Giúp xây dựng ứng dụng một trang (SPA – Single Page Application)

• Dễ dàng thay đổi các dữ liệu khi tương tác với người dùng

• Hỗ trợ sẵn Typescript giúp xây dựng và sửa lỗi các dự án phức tạp một cách đơngiản và an toàn hơn

2.4 MySQL

2.4.1 MySQL là gì?

SQL là viết tắt của Structured Query Language có nghĩa là ngôn ngữ truy vấn có cấutrúc, là một ngôn ngữ máy tính để lưu trữ, thao tác và truy xuất dữ liệu được lưu trữ trongmột cơ sở dữ liệu quan hệ

SQL là ngôn ngữ chuẩn cho hệ cơ sở dữ liệu quan hệ Tất cả các hệ thống quản lý cơ

sở dữ liệu quan hệ (RDMS) như MySQL, MS Access, Oracle, Sybase, Informix, Postgres

và SQL Server đều sử dụng SQL làm ngôn ngữ cơ sở dữ liệu chuẩn

MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational DatabaseManagement System, viết tắt là RDBMS) hoạt động theo mô hình client-server RDBMS

là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữ liệu (Database) theohình thức quản lý các mối liên hệ giữa chúng

MySQL là một trong số các phần mềm RDBMS RDBMS và MySQL thường đượccho là một vì độ phổ biến quá lớn của MySQL Các ứng dụng web lớn nhất nhưFacebook, Twitter, YouTube, Google, và Yahoo! đều dùng MySQL cho mục đích lưu trữ

dữ liệu Kể cả khi ban đầu nó chỉ được dùng rất hạn chế nhưng giờ nó đã tương thích vớinhiều hạ tầng máy tính quan trọng như Linux, macOS, Microsoft Windows, và Ubuntu

2.4.2 Tại sao nên sử dụng MySQL

• Miễn phí

• Cho phép người dùng truy cập dữ liệu trong các hệ thống quản lý cơ sở dữ liệuquan hệ

• Cho phép người dùng mô tả dữ liệu

• Cho phép người dùng xác định dữ liệu trong cơ sở dữ liệu và thao tác dữ liệu đó

• Cho phép nhúng trong các ngôn ngữ khác sử dụng mô-đun SQL, thư viện và trìnhbiên dịch trước

Trang 18

• Cho phép người dùng tạo và thả các cơ sở dữ liệu và bảng.

• Cho phép người dùng tạo chế độ view, thủ tục lưu trữ, chức năng trong cơ sở dữliệu

• Cho phép người dùng thiết lập quyền trên các bảng, thủ tục và view

2.4.3 Nhược điểm của MySQL

Giới hạn: Theo thiết kế, MySQL không có ý định làm tất cả và nó đi kèm với các

hạn chế về chức năng mà một vào ứng dụng có thể cần

Độ tin cậy: Cách các chức năng cụ thể được xử lý với MySQL (ví dụ tài liệu tham

khảo, các giao dịch, kiểm toán,…) làm cho nó kém tin cậy hơn so với một số hệquản trị cơ sở dữ liệu quan hệ khác

Dung lượng hạn chế: Nếu số bản ghi của bạn lớn dần lên thì việc truy xuất dữ liệu

của bạn là khá khó khăn, khi đó chúng ta sẽ phải áp dụng nhiều biện pháp để tăngtốc độ truy xuất dữ liệu như là chia tải database này ra nhiều server, hoặc tạo cacheMySQL

Trang 19

CHƯƠNG 3 PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU3.1 Mô tả bài toán và đặc tả yêu cầu

3.1.1 Mô tả bài toán

Ứng dụng mạng xã hội dùng để kết nối các thành viên có cùng sở thích, nghềnghiệp,… hoặc với cả những người có mối quan hệ ngoài đời thực trên Internet khôngphân biệt không gian và thời gian Mạng xã hội là một trang web mang mọi người đến vớinhau để nói chuyện, chia sẻ ý tưởng và sở thích, hay làm quen với những người bạn mới.Mạng xã hội có các chức năng như đăng bài, thích, bình luận, chia sẻ, tạo nhóm,

3.1.2 Đối tượng sử dụng

Việc xác định đối tượng người dùng là vô cùng quan trọng trong bất kì hệ thống nào

Nó là bước đầu tiên để ta có thể xác định các chức năng và mục tiêu của hệ thống Việcxác định sai các đối tượng sử dụng sẽ làm trang web mất đi tính ứng dụng của nó Quatìm hiểu thì em đã phân chia các nhóm đối tượng người sử dụng như sau:

3.1.2.1 Nhóm người dùng thông thường

Đây là nhóm người dùng cơ bản của ứng dụng Tất cả mọi thành viên khi đã đăngnhập vào trang web đều có các quyền của một người dùng như: Đăng bài, quản lí trang cánhân, bình luận, thích, …

3.1.2.2 Nhóm người dùng là quản lí nhóm

Đây là những người dùng đang là quản lí của một nhóm Những người này sẽ cóquyền quản lý nhóm, các thành viên cũng như các tài nguyên nhóm Một số chức năngchính trong nhóm quyền này như: Cho phép người dùng đăng bài, cho phép người dùngtham gia nhóm, loại người dùng khỏi nhóm, gỡ bài đăng, quản lí cài đặt nhóm, …

3.1.3 Các yêu cầu cần đạt được

3.1.3.1 Yêu cầu về chức năng

a) Đối với người dùng thông thường

• Đăng nhập, đăng xuất

• Đăng bài viết

• Bình luận

• Thích

• Tìm kiếm

• Chia sẻ

Trang 20

• Quản lý trang cá nhân.

• Nhắn tin

b) Đối với người dùng là quản lý nhóm

• Tất cả chức năng của người dùng thông thường

• Quản lý tài nguyên, cài đặt nhóm

• Xoá bài viết, bình luận

• Quản lí thành viên: Thêm thành viên mới, loại thành viên khỏi nhóm

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

Hầu hết thời gian mà người dùng khi truy cập vào một trang mạng xã hội sẽ là đểđọc và tìm kiếm thông tin Chính vì thế mà giao diện và sự thuận tiện cũng như hợp lítrông phân tách bố cục của trang web là một yếu tố vô cùng quan trọng trong việc đánhgiá một trang web Như vậy ngoài việc có các chức năng tốt đáp ứng nhu cầu của ngườidùng thì một trang web cần phải có thêm các yếu tố sau đây:

• Các thành phần trang web được bố trí hợp lí, thuận tiện cho người sử dụng

• Sử dụng ngôn ngữ, phông chữ rõ ràng dễ hiểu

• Không sử dụng các màu sắc quá sặc sỡ cũng như những hiệu ứng không cần thiết

• Tương thích với nhiều nền tảng trình duyệt

• Tối ưu hoá thời gian tải trang

3.2 Xác định các ca sử dụng của hệ thống

Qua quá trình khảo sát và phân tích bài toán, ứng dụng gồm các chức năng sau:

Đăng nhập: Chức năng đăng nhập sẽ yêu cầu nhập đầy đủ tên đăng nhập và mật

khẩu để đăng nhập vào hệ thống hoặc có thể đăng nhập bằng tài khoản bên thứ banhư Google, …

Đăng xuất: Chức năng này cho phép người dùng thoát trang ứng dụng cũng như

xoá các dữ liệu liên quan được lưu trên trình duyệt

Đăng bài viết: Chức năng này cho phép người dùng có thể tạo bài viết mới trên

trang cá nhân hoặc trong nhóm

Xoá bài viết: Chức năng này cho phép người dùng có thể xoá bài viết của bản thân

trên trang cá nhân hoặc trong nhóm Hoặc người quản lí nhóm có thể xoá bài củacác thành viên

Thích: Chức năng này cho phép người dùng có thể thích một bài viết, hình ảnh

Trang 21

hoặc bình luận của người khác.

Share: Chức năng này cho phép người dùng có thể chia sẻ các bài viết có thiết lập

riêng tư là “Công khai” trên trang cá nhân của mình hoặc trong nhóm

Bình luận: Chức năng này cho phép người dùng có thể tạo bình luận trong các bài

viết hoặc ảnh có mở chức năng bình luận

Xoá bình luận: Chức năng này cho phép người dùng xoá bình luận của bản thân

hoặc cho phép quản trị viên xoá bình luận vi phạm của các thành viên trong nhóm

Theo dõi: Cho phép người dùng theo dõi một bài viết hoặc trang, nhóm và sẽ nhận

được thông báo khi các đối tượng đó có bài đăng mới, bình luận mới, …

Bỏ theo dõi: Bỏ theo dõi các trang đã theo dõi.

Nhắn tin: Cho phép người dùng nhắn tin với một người dùng khác.

Chặn người dùng: Cho phép người dùng chặn một người dùng khác Người dùng

bị chặn sẽ không thể xem trang cá nhân của người chặn cũng như bình luận, bàiviết của người chặn tại mọi nơi

Tìm kiếm: Người dùng có thể tìm kiếm bài viết, trang cá nhân, nhóm theo tên, nội

dung, …

Chỉnh sửa bài viết: Cho phép người dùng chỉnh sửa bài viết của mình.

Chỉnh sửa hình ảnh: Cho phép người dùng chỉnh sửa hình ảnh của mình.

Chỉnh sửa bình luận: Cho phép người dùng chỉnh sửa bình luận của mình.

Chỉnh sửa trang cá nhân: Cho phép người dùng có thể chỉnh sửa các thông tin cá

nhân, ảnh đại diện, ảnh bìa, … trên trang cá nhân của bản thân

Sửa cài đặt riêng tư của bài viết hoặc hình ảnh: Chức năng này cho phép người

dùng chỉnh sửa cài đặt riêng tư của các bài viết hoặc hình ảnh của bản thân

Gửi lời mời kết bạn: Chức năng này cho phép người dùng có thể gửi lời mời kết

bạn đến một người khác

Trả lời kết bạn: Khi nhận được một lời mời kết bạn người dùng có thể từ chối

hoặc chấp nhận lời mời đó

Gửi yêu cầu gia nhập nhóm: Cho phép người dùng gửi yều cầu gia nhập một

nhóm

Trả lời yêu cầu gia nhập nhóm: Các quản trị viên có thể chấp nhận hoặc từ chối

yêu cầu gia nhập nhóm của người dùng

Trang 22

Loại người dùng khỏi nhóm: Cho phép quản trị viên loại người dùng ra khỏi

• Người dùng đăng nhập vào hệ thống

• Hệ thống kiểm tra tính hợp lệ của các thông tin mà người dùng nhập Nếuthông tin không hợp lệ sẽ chuyển qua luồng A1

 Các luồng rẽ nhánh

• Luồng A1: Thông tin đưa vào không hợp lệ

 Hệ thống thông báo cho người dùng biết thông tin vừa nhập là không hợplệ

 Yêu cầu người dùng nhập lại

c) Tiền điều kiện

 Người dùng đã đăng nhập vào hệ thống

d) Hậu điều kiện

 Nếu đăng nhập thành công người dùng sẽ được chuyển hướng đến trang chủ và cóthể bắt đầu sử dụng các chức năng của trang

Trang 23

 Người dùng đã đăng nhập vào hệ thống.

d) Hậu điều kiện

 Nếu người dùng khác đồng ý thì sẽ có thông báo trả về là lời mời kết bạn đã đượcchấp thuận

3.3.3 Ca sử dụng yêu cầu gia nhập nhóm

a) Mô tả

 Tên ca sử dụng: Yêu cầu gia nhập nhóm

 Mục đích: Mô tả người dùng gửi yêu cầu tham gia nhóm

 Tác nhân: Người dùng, Quản trị nhóm

b) Các luồng sự kiện

 Các luồng sự kiện chính

• Người dùng nhấn vào nút yêu cầu tham gia nhóm tại trang của nhóm

• Thông báo yêu cầu gia nhập mới sẽ được gửi đến các quản trị viên

• Quản trị viên có thể chấp nhận, từ chối hoặc không trả lời

c) Tiền điều kiện

 Người dùng đã đăng nhập vào hệ thống

d) Hậu điều kiện

 Nếu được chập thuận người dùng có thể xem các bài viết, nội dung trong nhómcũng như có thể đăng bài, bình luận, like các bài viết trong nhóm

Trang 24

3.3.4 Ca sử dụng đăng bài

a) Mô tả

 Tên ca sử dụng: Đăng bài viết

 Mục đích: Mô tả người dùng thực hiện đăng bài viết

 Tác nhân: Người dùng

b) Các luồng sự kiện

 Các luồng sự kiện chính

• Người dùng nhấn vào nút tạo bài viết mới

• Người dùng nhập chữ vào bài viết, thêm hình ảnh

• Người dùng nhấn vào nút đăng bài để tiến hành đăng

c) Tiền điều kiện

 Người dùng đã đăng nhập vào hệ thống Nếu đăng bài trong nhóm thì người dùngcần là thành viên của nhóm

d) Hậu điều kiện

 Bài đăng sẽ được đăng trên trang cá nhân/nhóm và sẽ được nhìn thấy bời tất cảngười khác Nếu người dùng theo dõi nhóm/trang cá nhân nơi bài đăng được đăngthì sẽ có thông báo có bài đăng mới được gửi đến

3.3.5 Ca sử dụng xoá bài viết.

a) Mô tả

 Tên ca sử dụng: Xoá bài viết

 Mục đích: Mô tả quá trình xoá bài viết của người dùng

 Tác nhân: Người dùng, quản trị nhóm

b) Các luồng sự kiện

 Các luồng sự kiện chính

• Người dùng nhấn vào nút tuỳ chọn trên bài đăng muốn xoá

• Cửa sổ tuỳ chọn sẽ hiện lên Nếu người dùng là chủ bài viết hoặc là quản trịnhóm mà bài viết được đăng thì sẽ có tuỳ chọn xoá bài viết trong đó

• Người dùng nhấn nút xoá bài đăng để xoá bài

c) Tiền điều kiện

Trang 25

 Người dùng đã đăng nhập, người dùng là chủ bài viết hoặc quản trị nhóm nơi bàiviết được đăng.

d) Hậu điều kiện

 Bài đăng sẽ bị xoá cùng tất cả các hình ảnh, bình luận có trong bài đăng

3.3.6 Ca sử dụng thay ảnh đại diện/ảnh bìa.

a) Mô tả

 Tên ca sử dụng: Thay ảnh đại diện/ảnh bìa

 Mục đích: Mô tả cách người dùng thêm/chỉnh sửa thông tin, hình ảnh trên trang cánhân của mình

• Người dùng nhấn vào hình máy ảnh trên hình đại diện/ảnh bìa để thay ảnh

• Cửa sổ chọn ảnh hiện lên

• Người dùng có thể chọn ảnh đã đăng lên của bản thân hoặc đăng một ảnh mới

• Sau khi chọn xong cửa sổ xác nhận hiện lên

• Người dùng nhấn đồng ý để thay ảnh hoặc huỷ bỏ để quay trở lại giao diệnchọn ảnh

c) Tiền điều kiện

 Người dùng đã đăng nhập vào hệ thống

d) Hậu điều kiện

 Nếu chọn ảnh từ ảnh đã đăng sẵn thì ảnh đại diện sẽ được thay đổi, nếu đăng ảnhthì ảnh sẽ được đăng và hình đại diện sẽ đổi

Trang 26

• Người dùng nhấn vào ô bình luận trong bài đăng.

• Người dùng nhấn Enter hoặc nút gửi để gửi bình luận

c) Tiền điều kiện

 Người dùng đã đăng nhâp, bài đăng có mở chức năng bình luận

d) Hậu điều kiện

 Bình luận sẽ được hiển thị trong mục bình luận của bài đăng Những người theodõi bài đăng sẽ nhận được thông báo có bình luận mới trong bài đăng

• Cửa sổ tin nhắn sẽ hiện lên

• Người dùng nhập dữ liệu trong input tương ứng và nhấn Enter hoặc nút gửi đểgửi tin nhắn

c) Tiền điều kiện

 Người dùng đã đăng nhập

 Không bị người cần nhắn chặn

 Là đối tượng nằm trong nhóm có thể nhắn tin với người cần nhắn

Trang 27

d) Hậu điều kiện

 Tin nhắn sẽ được gửi và người cần nhắn sẽ nhận được thông báo có tin nhắn mới

 Không có nội dung nào phù hợp với thông tin mà người dùng nhập vào

 Hiện lên thông báo không có bài viết liên quan

 Người dùng có thể tìm kiếm lại hoặc thoát

c) Tiền điều kiện

 Người dùng đã đăng nhập

d) Hậu điều kiện

 Người dùng có thể chọn và xem mục đã tìm kiếm

3.4 Xây dựng biểu đồ ca sử dụng

3.4.1 Biểu đồ ca sử dụng mức tổng quát

Trang 28

3.4.2 Biểu đồ ca sử dụng cho gói người dùng

Hình 3-3 Biểu đồ UC tổng quát

Hình 3-4 Biểu đồ ca sử dụng gói người dùng

Trang 29

3.4.3 Biểu đồ ca sử dụng gói quản trị nhóm

3.4.4 Biểu đồ ca sử dụng gói Quản lý trang cá nhân

Hình 3-5 Biểu đồ UC gói quản trị nhóm

Trang 30

3.4.5 Biểu đồ ca sử dụng gói quản trị bình luận

Hình 3-6 Biểu đồ UC gói Quản lý trang cá nhân

Hình 3-7 Biểu đồ UC quản trị bình luận

Trang 32

3.4.9 Biểu đồ ca sử dụng yêu cầu tham gia nhóm

Hình 3-11 Biều đồ UC yêu cầu tham gia nhóm

Trang 33

3.5 Biểu đồ tuần tự cho các ca sử dụng

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

Hình 3-12 Biểu đồ tuần tự cho UC đăng nhập

Trang 34

3.5.2 Biểu đồ tuần tự UC Kết bạn

Hình 3-13 Biểu đồ tuần tự cho UC kết bạn

Trang 35

3.5.3 Biểu đồ tuần tự UC Yêu cầu gia nhập nhóm

Hình 3-14 Biểu đồ tuần tự cho UC yêu cầu gia nhập nhóm

Trang 36

3.5.4 Biểu đồ tuần tự UC Đăng bài

Hình 3-15 Biểu đồ tuần tự cho UC đăng bài

Ngày đăng: 12/07/2021, 10:54

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w