Điều này bao gồm việc thiếtkế giao diện đẹp mắt, dễ sử dụng và tương thích trên nhiều thiết bị.Đồng thời, các tính năng tương tác như chia sẻ bài viết, tương tácrealtime và tìm kiếm nội
GIỚI THIỆU TỔNG QUAN
Đặt vấn đề
Trong vài năm gần đây, xu hướng con người sử dụng mạng xã hội ngày càng gia tăng, và nó đã trở nên phổ biến vào cuộc sống hàng ngày của hầu hết mọi người cùng với tỉ lệ sử dụng điện thoại thông minh và internet ngày càng tăng Mạng xã hội là một nền tảng trực tuyến với các mô hình, tính năng, cách sử dụng khác nhau, giúp mọi người dễ dàng truy cập và kết nối Đây là nơi mọi người có thể giao lưu, gặp gỡ, chia sẻ thông tin, hình ảnh, âm thanh hay xây dựng những mối quan hệ dựa trên điểm chung như sở thích, nghề nghiệp, Mạng xã hội là một xã hội thu nhỏ phản ánh mọi khía cạnh của đời sống thực và đồng thời cũng tác động lên đời sống thực Mạng xã hội không chỉ mang đến nguồn thông tin vô tận, mạng xã hội còn là nơi kết nối xã hội loài người, thúc đẩy sản xuất, kinh doanh và gia tăng giá trị cuộc sống Hiện nay, Việt Nam đang thuộc nhóm các quốc gia có tỷ lệ người dân sử dụng mạng xã hội cao trên thế giới và xu hướng đọc tin trên mạng xã hội ngày càng tăng Với đặc điểm nổi trội là tính kết nối nhanh, chia sẻ rộng, chỉ cần một chiếc điện thoại hay một máy tính kết nối Internet, chúng ta có thể truy cập và tham gia vào rất nhiều trang mạng Internet và các trang mạng xã hội đem lại rất nhiều lợi ích cho người sử dụng Mạng xã hội là một kho tàng thông tin và kiến thức khổng lồ Nó giúp chúng ta dễ dàng tìm kiếm thông tin một cách nhanh chóng và mang đến cho chúng ta những thông tin đa dạng, phong phú Với tốc độ thông tin nhanh, nội dung phong phú, đa dạng… nếu biết khai thác, sử dụng hợp lý thì nó mang lại hiệu quả rất lớn cả trong học tập, công tác, sinh hoạt và đời sống xã hội cho thanh niên Mạng xã hội có thể giúp ta làm quen, kết nối với tất cả mọi người ở khắp mọi nơi trên thế giới Hay có thể nói mạng xã hội đã xóa bỏ rào cản về vị trí địa lý để giúp con người sát gần nhau hơn, từ đó có thể xây dựng mối quan hệ tốt đẹp hoặc hợp tác với nhau về nhiều mặt.Nếu trước kia chúng ta chỉ biết được thông tin qua báo đài, thư từ, thì ngày nay chúng ta có thể trao đổi thông tin qua thư điện tử, hay cập nhật những thông tin mới nhất qua các bài đăng trên mạng xã hội.Ngoài ra, kinh doanh trên các nền tảng mạng xã hội hay còn gọi là bán hàng online cũng dần trở nên phổ biến Đây là một hình thức kinh doanh tiềm năng bởi nó giúp tiết kiệm chi phí vận hành và dễ dàng tìm kiếm cũng như dễ dàng tiếp cận khách hàng.
Mục tiêu đề tài
- Xây dựng được app bắt mắt, dễ sử dụng và tương thích trên nhiều thiết bị.
- App có thể chia sẻ thông tin một cách nhanh chóng.
- Xây dựng được các chức năng:
Chức năng Tìm kiếm, Khám phá
Chức năng Tạo bài viết
Chức năng xem thông tin trang cá nhân
Mô tả ứng dụng
Dreamers là một nền tảng truyền thông xã hội chuyên chia sẻ ảnh và video từ thiết bị di động của mình nên bản thân nó được thiết kế dựa trên cơ sở sáng tạo ra những hình ảnh đẹp và thu hút người nhìn Bên cạnh đó nó cũng cung cấp rất nhiều các chế độ chỉnh sửa ảnh theo sở thích của người dùng Chúng ta có thể đăng tải ảnh lên và chia sẻ chúng với người theo dõi của mình hoặc với một nhóm bạn bè chọn lọc Họ có thể xem, bình luận và thích bài viết mà bạn bè chia sẻ trên Dreamers Mọi người có thể truy cập Dreamers bằng cách tải ứng dụng này xuống thiết bị di động của mình.
Đối tượng và phạm vi nghiên cứu
- Đối tượng sử dụng: Tất cả người sử dụng Internet trên 13 tuổi tại Việt Nam và toàn thế giới có nhu cầu sử dụng mạng xã hội để kết nối và tương tác với người khác.
- Phạm vi nghiên cứu: Đồ án “Xây dựng ứng dung mạng xã hội trên thiết bị di động” xuất phát từ nhu cầu thực tế của người sử dụng Internet tại Việt Nam hiện nay Ứng dụng mạng xã hội Dreamers sẽ tập trung vào các chức năng nhằm tạo môi trường cho người dùng có thể thể hiện bản thân, kết nối và tương tác với nhau dễ dàng nhất có thể, từ đó mang lại trải nghiệm tối ưu và thoải mái nhất cho người dùng.
Trong quá trình xây dựng đồ án, nhóm đã sử dụng một số phần mềm và công cụ nhằm phục vụ cho việc tìm hiểu và xây dựng đề tài, cụ thể như sau:
Công cụ lập trình ứng dụng: Visual Studio Code.
Công cụ quản lý CSDL: MongoDB Atlas.
Công cụ thiết kế giao diện UI/UX: Figma.
Công cụ vẽ sơ đồ phân tích và thiết kế dữ liệu: StarUML, draw.io.
Công cụ quản lý mã nguồn, phiên bản: Github, Git.
Tính ứng dụng của đề tài
Mạng xã hội là một kho tàng thông tin và kiến thức khổng lồ miễn phí Nó giúp người dùng dễ dàng tìm kiếm thông tin một cách nhanh chóng và đưa đến cho người dùng những thông tin hữu ích và đa dạng Mạng xã hội còn là nơi kết nối tất cả mọi người ở khắp mọi nơi trên thế giới, nó giúp xóa bỏ rào cản về vị trí địa lý để có thể giúp con người gần lại với nhau hơn, từ đó tạo ra nhiều mối quan hệ tốt đẹp hơn Ngoài ra đây cũng là một kho tàng về thông tin vs kiến thức rất là lớn, người dùng có thể tìm hiểu và học hỏi trau dồi thêm nhiều kiến thức mới mẻ cũng như chia sẻ những kiến thức mà mình biết đến tất cả mọi người Mạng xã hội còn có thể trao đổi thông tin qua tin nhắn hay cập nhật những thông tin mới nhất của bạn bè, người thân hay những tin tức giải trí qua những bài đăng trên mạng xã hội Đây cũng là một thị trường kinh doanh tiềm năng vì nó giúp khách hàng có thể tiếp cận sản phẩm một cách nhanh chóng.
Bố cục báo cáo đề tài đồ án thực hành
Báo cáo đề tài được chia thành 08 chương như sau:
- Chương 01 Giới thiệu tổng quan.
Chương đầu tiên, trình bày sơ lược về tổng quan của đề tài Từ đó đặt ra mục tiêu và hướng giải quyết cho vấn đề, cũng như xác định đối tượng và phạm vi nghiên cứu vs tính ứng dụng của đề tài.
- Chương 02 Xác định và phân tích yêu cầu.
Trong chương 02, trình bày tổng quan về khảo sát hiện trạng và khảo sát cơ cấu tổ chức Xác định và phân tích từ đó đề ra được các yêu cầu về phần mềm, chức năng, phi chức năng để bắt tay vào xây dựng hệ thống đáp ứng đầy đủ nhất.
- Chương 03 Cơ sở lý thuyết.
Trong chương 03, trình bày một cách đầy đủ về định nghĩa và công dụng của các công cụ sẽ dùng để quản lý và lập trình ứng dụng cho đề tài đã chọn.
- Chương 04 Quản lí dự án.
Trong chương 04, sẽ mô tả quá trình triển khai dự án từ lúc bắt đầu dự án đến lúc dự án kết thúc Trong chương 04 sẽ mô tả chi tiết từng giai đoạn bao gồm những công việc liên quan đến quản lí dự án như lên kế hoạch, tổ chức và quản lí, phát triển dự án Ngoài ra còn có các nội dung quản lí phạm vi, quản lí thời gian, kế hoạch thực hiện cũng sẽ được trình bày trong chương này.
- Chương 05 Phân tích và thiết kế hệ thống.
Trong chương 05, trình bày một cách đầy đủ về việc phân tích và thiết kế hệ thống Use Case chức năng hệ thống, sơ đồ phân rã chức năng, thiết kế cơ sở dữ liệu và Timeline dự án Qua đó cho thấy tổng quan hơn về các chức năng trong hệ thống để nhà phát triển có cái nhìn khái quát để dễ dàng xây dựng ứng dụng một cách nhanh chóng.
- Chương 06 Hiện thực đề tài.
Trong chương 06, trình bày đầy đủ hình ảnh các màn hình giao diện của hệ thống và giải thích các chức năng trong đó Qua đó đánh giá được mức độ hoàn thiện của phần mềm đối với yêu cầu đề ra
- Chương 07 Kiểm thử hệ thống.
Trong chương 07, sẽ trình bày các nội dung liên quan đến tính năng, tính năng đã hoàn thiện và tính năng mà App Dreamers cần cải thiện thêm, ngoài nội dung kiểm thử chức năng thì cũng sẽ trình bày những bài học kinh nghiệm sau khi hoàn thành dự án trong chương này.
- Chương 08 Kết luận và hướng phát triển.
Trong chương 08, trình bày tổng quan về kết quả trong việc xây dựng hệ thống Nêu ra những hạn chế trong quá trình thực hiện và đề ra hướng phát triển trong tương lai.
XÁC ĐỊNH VÀ PHÂN TÍCH YÊU CẦU
Yêu cầu phần mềm
o Tương tác với các bài viết: bình luận, yêu thích, chia sẻ, báo cáo bài viết. o Tương tác với người dùng khác: Nhắn tin, theo dõi, tương tác với các bài viết của người dùng, báo cáo trang cá nhân.
Quản trị viên và người dùng: o Theo dõi lượt yêu thích, lượt chia sẻ, lượt bình luận của bài viết o Xem lượt theo dõi của trang cá nhân người dùng.
Đăng kí tài khoản: Người dùng có khả năng tạo tài khoản mới bằng cách cung cấp thông tin cá nhân cơ bản và địa chỉ email.
Đăng nhập: Người dùng cần có khả năng đăng nhập vào tài khoản của họ bằng cách nhập email và mật khẩu.
Quên mật khẩu: Cung cấp tính năng khôi phục mật khẩu bằng cách gửi email xác nhận và cho phép người dùng tạo mật khẩu mới.
Đăng xuất: Cho phép người dùng đăng xuất an toàn khỏi tài khoản của họ để đảm bảo sự bảo mật.
2.2.1.2 Quản lí tài khoản và nội dung
Quản lý hồ sơ cá nhân: Cho phép người dùng chỉnh sửa và cập nhật thông tin cá nhân, hình ảnh đại diện và mật khẩu.
Quản lí bài viết: Người dùng có thể tạo và đăng bài viết chứa văn bản, hình ảnh và video Cho phép người dùng chỉnh sửa và xóa bài viết của họ.
Chia sẻ nội dung: Cho phép người dùng chia sẻ bài viết của họ trên mạng xã hội và gửi thông báo đến bạn bè.
Bình luận và yêu thích: Người dùng có khả năng bình luận và thích bài viết của người khác.
2.2.1.3 Kết nối và tương tác
Tìm kiếm và kết nối bạn bè: Người dùng có khả năng tìm kiếm và kết nối với bạn bè bằng cách tìm kiếm tài khoản hoặc sử dụng danh bạ điện thoại.
Chat và tin nhắn: Cung cấp tính năng chat để người dùng có thể trò chuyện với bạn bè và gửi tin nhắn riêng tư.
Thích, bình luận và chia sẻ nội dung: Người dùng có khả năng thích, bình luận (bao gồm sửa bình luận) và chia sẻ bài viết của người khác trên nền tảng mạng xã hội và thể hiện sự tương tác xã hội.
Thông báo trong thời gian thực: Cung cấp thông báo liên quan đến bình luận, thích, và hoạt động của bạn bè trong thời gian thực.
Thông báo email: Gửi email thông báo cho người dùng khi có hoạt động mới trên tài khoản của họ.
Tải và chia sẻ hình ảnh và video: Cho phép người dùng tải lên hình ảnh và video, sau đó chia sẻ chúng trên nền tảng.
2.2.1.6 Tùy chỉnh và cài đặt
Cài đặt tài khoản: Cho phép người dùng tùy chỉnh cài đặt tài khoản cá nhân, bao gồm quyền riêng tư, thông báo, và tuỳ chọn liên quan khác.
2.2.1.7 Bảo trì và hỗ trợ
Hỗ trợ và gửi phản hồi: Cung cấp kênh liên hệ để người dùng có thể gửi phản hồi hoặc yêu cầu hỗ trợ kỹ thuật.
Cập nhật và sửa lỗi: Đảm bảo rằng ứng dụng được duyệt xét và cập nhật để sửa lỗi và cải tiến liên tục.
Thống kê hoạt động người dùng: Cung cấp thống kê về hoạt động người dùng, bao gồm số lượng lượt xem, lượt thích, và chia sẻ.
2.2.2 Yêu cầu phi chức năng
Thời gian tải trang: Ứng dụng cần phải tải nhanh và mượt mà, đảm bảo rằng người dùng không phải chờ đợi lâu để truy cập nội dung.
Thời gian phản hồi: Thời gian phản hồi của hệ thống cần phải nhanh chóng khi người dùng thực hiện các hành động, như đăng nhập, gửi tin nhắn, hoặc tải ảnh và các thao tác khác.
Quản lí truy cập: Chỉ những người dùng đã được xác thực mới có thể truy cập vào những nội dung chi tiết.
An toàn thông tin: Các dữ liệu cá nhân của người dùng đều được mã hóa an toàn Bảo vệ chống các hình thức tấn công mạng như DDoS hoặc SQL injection.
Thân thiện và dễ sử dụng: Giao diện người dùng cần phải thân thiện với người dùng và dễ sử dụng, bất kể trình độ kỹ thuật.
Tương thích với thiết bị di động: Đảm bảo giao diện hoạt động tốt trên các loại thiết bị di động khác nhau và có màn hình kích thước và độ phân giải khác nhau.
Đảm bảo thiết kế đáp ứng: Giao diện ứng dụng cần phải tự động điều chỉnh cho các kích thước màn hình khác nhau trên thiết bị di động để đảm bảo trải nghiệm người dùng tốt.
Tương thích hệ điều hành: Ứng dụng cần phải hoạt động trên cả hệ điều hành iOS và Android.
Thời gian đáp ứng chấp nhận được: Xác định mức độ chấp nhận được của thời gian đáp ứng khi người dùng thực hiện các hành động như đăng nhập và tải trang.
2.2.2.6 Bảo trì và cập nhật:
Chiến lược bảo trì và cập nhật: Xác định chiến lược dành cho việc bảo trì và cập nhật ứng dụng để duy trì tính ổn định, sửa lỗi, và cải tiến liên tục.
Khả năng mở rộng: Đánh giá khả năng của ứng dụng mở rộng để đáp ứng nhu cầu người dùng tăng lên theo thời gian.
Đảm bảo rằng ứng dụng tuân thủ các quy định và luật pháp liên quan đến quyền riêng tư và bảo mật dữ liệu người dùng,chẳng hạn như GDPR hoặc CCPA.
CƠ SỞ LÝ THUYẾT
Quản lý dự án – Mô hình Waterfall
- Lần đầu tiên được đưa ra bởi tiến sĩ Winston W.Royce trong một bài báo công bố vào năm 1970 Mô hình Waterfall (thác nước) diễn tả một quá trình phát triển phần mềm Mô hình Waterfall chú trọng vào sự tiến triển logoc của các bước được thực hiện trong suốt vòng đời phát triển login của các bước được thực hiện trong suốt vòng đời phát triển của một phần mềm (Software Development Life Cycle - SDLC), giống như các bước mà một dòng nước mà một dòng nước đổ xuống một dòng thác Mặt dù sự phổ biến của mô hình này đã giảm nhiều trong vài năm trở lại đây khi các phương pháp linh hoạt (Agile) hơn được ưu chuộng, tính logic tự nhiên của quá trình tuần tự được sử dụng trong phương pháp này là không thể phủ nhận, và nó vẫn là một quá trình thiết kế thông dụng trong ngành Công Nghệ Thông Tin [ CITATION Duc \l 1033 ]
3.1.2 Các giai đoạn của mô hình Waterfall
- Một mô hình Waterfall đơn giản có 6 giai đoạn
Bảng 3 1 Các giai đoạn của mô hình Waterfall
Yêu cầu Nhóm thực hiện tìm kiếm các yêu cầu liên quan đến dự án.
Xác định dự án sẽ giải quyết nhu cầu kinh doanh nào
Yêu cầu của người dùng đối với sản phẩm được phát triển bởi dự án
Các ràng buộc và rủi ro đi kèm.
Thiết kế Nhóm tạo ra thiết kế cho sản phẩm để giải quyết mọi yêu cầu, ràng buộc và mục tiêu thiết kế về kỹ thuật, như ngôn ngữ lập trình, tầng dữ liệu, Một bản thiết kế điển hình sẽ được hoàn thành một cách càng cụ thể càng tốt, giúp mô tả chính các logic của hệ thống được đề cập trong phần phân tích sẽ được thực thi như thế nào.
Công việc viết mã cuối cùng được thực hiện ở giai đoạn này, nhóm thực thi toàn bộ các mô hình, logic của hệ thống, và các dịch vụ tích hợp đã được làm rõ trong các giai đoạn trước đó.
Kiểm thử Từng chức năng của sản phẩm được kiểm tra Nếu cần sẽ được tích hợp lại với nhau để thử nghiệm Toàn bộ hệ thống được kiểm tra để tìm ra lỗi và đảm bảo các mục tiêu thiết kế.
Triển khai Cuối cùng, ứng dụng sẽ được triển khai trong môi trường thực tế để người dùng có thể bắt đầu sử dụng nó.
Bảo trì Là một khoảng thời gian giám sát ngắn Trong đó nhóm dự án giải quyết các vấn đề của khách hàng Phát hành các bản vá và cập nhật để sửa vấn đề gặp phải.
3.1.3 Ưu, nhược điểm và thời điểm áp dụng
- Ưu điểm: Dù mô hình thác nước đã dần dần biến mất trong vài năm trở lại đây, nhường chỗ cho các mô hình linh hoạt hơn, nó vẫn đem lại một số lợi ích, đặc biệt trong các dự án và tổ chức lớn cần các giai đoạn và hạn hoàn thảnh rõ ràng
Một số ưu điểm được liệt kê:
Đơn giản, dễ hiểu, dễ thích nghi với những nhóm linh hoạt.
Áp đặt một tổ chức có kết cấu chặt chẽ.
Cho phép những thay đổi thiết kế sớm.
Thích hợp cho những dự án theo hướng đến mốc thời gian cụ thể.
Nó không phải là một mô hình lý tưởng cho một dự án kích thước lớn.
Nếu yêu cầu không rõ ràng ngay từ đầu thì đó là phương pháp kém hiệu quả hơn.
Rất khó di chuyển trở lại cái giai đoạn trước đó để thay đổi.
Quá trình thử nghiệm bắt đầu khi quá trình phát triển kết thúc
Do đó, nó có nguy cơ cao của các lỗi được tìm thấy sau giai đoạn phát triển, và rất tốn kém để sửa các lỗi.
Việc áp dụng mô hình Waterfall được khuyến khích khi người thực hiện nắm rõ các yêu cầu của dự án tốt nhất, đòi hỏi về tĩnh rõ ràng và tính ổn định cao.
Nắm vững được công nghệ phát triển.
Không có những yêu cầu không rõ ràng.
Tài nguyên phát triển phong phú và chuyên môn kỹ thuật cao.
Thích hợp với những dự án nhỏ và ngắn hạn.
Công nghệ sử dụng
- ReactJS là một thư viện JavaScript phổ biến được sử dụng rộng rãi để xây dựng giao diện người dùng động trong các ứng dụng WebApp Được ra mắt năm 2013 và phát triển bởi Facebook, ReactJS tập trung vào việc xây dựng các thành phần UI tái sử dụng và quản lý trạng thái ứng dụng Dưới đây là một số cơ sở lý thuyết về ReactJS:
Trong ReactJS, giao diện người dùng được chia thành các thành phần độc lập Mỗi thành phần đại diện cho một phần của giao diện và có thể được sử dụng lại
JSX là một phần của ReactJS cho phép bạn viết các đoạn mã JavaScript và HTML tương tác với nhau Nó cho phép bạn định nghĩa cấu trúc giao diện người dùng trong các thành phần React bằng cú pháp giống HTML, nhưng thực tế là mã JavaScript.
ReactJS sử dụng một cấu trúc dữ liệu gọi là Virtual DOM để hiển thị giao diện Virtual DOM là một bản sao DOM thật(Document Object Model) của trình duyệt, nhưng nó tồn tại trong bộ nhớ của ứng dụng React Khi trạng thái của ứng dụng thay đổi, React so sánh Virtual DOM cũ với Virtual DOM mới và chỉ cập nhật những phần thay đổi thực sự lên DOM thật.
Trạng thái (state) đại diện cho dữ liệu mà thành phần React dùng để hiển thị giao diện Khi trạng thái thay đổi, React sẽ tự động cập nhật lại giao diện tương ứng Trạng thái có thể được quản lý bằng cách sử dụng hooks như useState hoặc sử dụng lớp (class) và phương thức lifecycle như setState.
Lifecycle Methods (Phương thức lifecycle):
Các thành phần React có các phương thức lifecycle cho phép bạn thực hiện các hành động tại các giai đoạn cụ thể trong quá trình vòng đời của thành phần, như khi thành phần được khởi tạo, cập nhật hoặc huỷ bỏ.
One-way Data Binding (Ràng buộc dữ liệu một chiều):
ReactJS sử dụng mô hình ràng buộc dữ liệu một chiều, có nghĩa là dữ liệu chỉ di chuyển theo một hướng từ thành phần cha đến thành phần con Khi trạng thái của thành phần cha thay đổi, React sẽ tự động cập nhật thành phần con tương ứng.
Hình 3 3 Framework React Native
- Ra mắt lần đầu vào năm 2015, React Native là một framework phát triển ứng dụng di động mã nguồn mở do Facebook tạo ra React
Native sử dụng ngôn ngữ lập trình JavaScript để tạo các ứng dụng di động trên các hệ điều hành iOS và Android với một cơ sở mã duy nhất.
- React Native hoạt động trên ba thread:
Chuỗi giao diện người dùng (UI Thread): Chuỗi ứng dụng chính có quyền truy cập vào giao diện người dùng của ứng dụng
Shadow Thread: Thread nền sử dụng thư viện React để tính toán bố cục của ứng dụng
Chuỗi JavaScript (JavaScript Thread): Chuỗi thực thi có chứa mã React (JavaScript)
- React Native sẽ hoạt động bằng cách tích hợp Main Thread và JS Thread cho một ứng dụng mobile Main Thread sẽ có vai trò cập nhật giao diện người dùng (UI) và xử lý tương tác của người dùng JS Thread là nơi thực thi và xử lỹ mã Javascript
Main Thread và JS Thread hoạt động độc lập vì vậy cần sử dụng một cầu nối (Bridge) để giúp 2 thread này tương tác với nhau Cầu nối cho phép chúng chuyển đổi dữ liệu giữa thread này và thread kia, giúp chúng giao tiếp mà không phải phụ thuộc vào nhau
- Native Components trong React Native: Với mỗi nền tảng như
Android hay IOS, chúng đều có những ngôn ngữ riêng để phát triển
IOS không thể sử dụng mã Android để chạy được và chúng sẽ sử dụng ngôn ngữ khác nhau để xây dựng nên ứng dụng đó Nhưng với React
Native, sau khi biên dịch các thành phần component sẽ được tương thích với từng nền tảng Gọi là Native Components, cùng so sánh với các nền tảng khác:
Bảng 3 2 So sánh Components trong React Native với Android và IOS
Android view IOS view Mô tả
Một khối để phân chia giao diện, chứa các thành phần khác có thể xử lý cảm ứng, điều khiển trợ năng
Hiển thị văn bản, kiểu văn bản, cũng có thể xử lý sự kiện cảm ứng
Hiển thị ảnh với các định dạng khác nhau
Tương tự View nhưng có thể thao tác scroll
Cho phép người dùng nhập ký tự vào
Hình 3 4 Thư viện Redux
- Redux là một thư viện lưu trữ trạng thái có thể dự đoán được cho các ứng dụng Javascript Được sử dụng với bất kỳ thư viện hay framework
JS nào như React, Angular hoặc Vue.
- Nguyên tắc cốt lõi của Redux
Redux Store: là vùng lưu trữ chính, trung tâm lưu trữ tất cả trạng thái của ứng dụng Nó nên được xem xét và duy trì như một Single Source of Truth (tức là việc ghi dữ liệu chỉ xảy ra lại 1 nơi) cho trạng thái của ứng dụng.
Action: Trạng thái trong Redux chỉ là đọc Điều này giúp ta hạn chế bất kỳ phần nào của chế độ xem hay bất kỳ callback nào để ghi/cập nhật trạng thái một cách trực tiếp Thay vào đó, nếu muốn thay đổi trạng thái của ứng dụng, thì cần dispatch an action (phát ra một hành động).
Reducer: Về cơ bản là các hàm JS thuần tuý nhận tham số là trạng thái trước đó và một action sau đó trả về một trạng thái mới của ứng dụng Bất kỳ hành động nào được gửi đi, tất cả các Reducer sẽ được kích hoạt
- Expo là một công cụ mã nguồn mở và miễn phí được xây dựng xung quanh React Native để giúp đơn giản hóa quá trình phát triển ứng dụng Expo cung cấp các API và thành phần giao diện người dùng mở rộng, hỗ trợ nhiều khả năng như quyền truy cập vào camera, tệp, thiết bị cảm ứng, các tính năng thiết bị di động và nhiều hơn nữa Nó cũng hỗ trợ việc build, đóng gói và triển khai ứng dụng một cách dễ dàng.
Có thể nói, Expo là một công cụ giúp kết hợp với React Native để giúp bạn xây dựng nhanh chóng và dễ dàng các ứng dụng di động Expo không chỉ giảm công sức trong việc phát triển, mà còn cung cấp các công cụ hữu ích để phát triển và kiểm tra ứng dụng trước khi triển khai lên App Store và Google Play Store
- Một số ứng dụng nổi tiếng đã sử dụng Expo để xây dựng ứng dụng React Native:
QUẢN LÍ DỰ ÁN
Quản lí thời gian
Quá trình kiểm soát phạm vi bao gồm việc so sánh tiến độ thực tế với kế hoạch dự án, kiểm tra và đánh giá sự hoàn thành của các giai đoạn công việc, và xác định xem có sự chênh lệch nào đối với phạm vi đã được đặt ra hay không Những biện pháp kiểm soát cũng có thể bao gồm việc kiểm tra xem có bất kỳ yêu cầu hay thay đổi nào trong phạm vi dự án so với ban đầu, và nếu có, liệu chúng đã được quản lý và đánh giá đúng cách hay không.
Ngoài ra, kiểm soát phạm vi cũng đảm bảo rằng mọi thông tin mới, như yêu cầu thêm, thay đổi hoặc rủi ro có thể ảnh hưởng đến phạm vi, được đánh giá và quản lý hiệu quả Điều này giúp đảm bảo sự minh bạch trong quá trình thực hiện dự án và cung cấp cơ sở thông tin cho quyết định về việc điều chỉnh phạm vi hay không.
- Thời gian thực hiện dự án: 76 ngày
- Thời gian thực hiện dự án tối đa: 100 ngày
- Thời gian sử dụng thử nghiệm: 4 ngày
4.2.2 Bản điều lệ dự án
Bảng 4 1 Bản điều lệ dự án
BẢN ĐIỀU LỆ DỰ ÁN XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI
CHƯƠNG 1: THÔNG TIN CHUNG VỀ DỰ ÁN
Tên dự án Xây dựng ứng dụng mạng xã hội
Chủ dự án Tất cả các thành viên của nhóm
Dự kiến ngày bắt đầu 18/09/2023
Dự kiến ngày hoàn thành 01/01/2024
CHƯƠNG 2: MỤC ĐÍCH, MỤC TIÊU VÀ SẢN PHẨM ĐẦU RA
Mục đích của dự án Xây dựng ứng dụng mạng xã hội
Dreamers trên thiết bị di động.
Các mục tiêu của dự án - Tạo ra một môi trường mạng xã hội năng động, khuyến khích sự tương tác, và cung cấp các công cụ để người dùng kết nối và chia sẻ trải nghiệm.
- Phát triển một giao diện người dùng thân thiện, dễ sử dụng, và thẩm mỹ để tối ưu hóa trải nghiệm người dùng và thu hút người sử dụng mới.
- Tích hợp các chức năng liên lạc như tin nhắn, video call, và chia sẻ đa phương tiện để tối ưu hóa khả năng tương tác trong cộng đồng.
- Xây dựng hệ thống bảo mật mạnh mẽ và tuân thủ quy định về quyền riêng tư để bảo vệ thông tin cá nhân của người dùng.
Chỉ tiêu đo lường hiệu suất - Tăng số lượng người dùng đăng ký và sử dụng ứng dụng
“Dreamers” lên ít nhất 1 triệu người trong vòng 12 tháng kể từ ngày ra mắt.
- Đạt được tương tác nội dung trung han mỗi người dùng không dưới 20 lượt tương tác (like, comment, share) mỗi tuần.
- Duy trì tỷ lệ người dùng quay lại (“retention rate”) không dưới 70% sau 3 tháng sử dụng ứng dụng.
Sản phẩm đầu ra của mục tiêu - Ứng dụng mạng xã hội Dreamers trên thiết bị di động dành cho người dùng.
- Ứng dụng quản lí mạng xã hội Dreamers trên thiết bị di động cho quản lí và nhân viên.
CHƯƠNG 3: PHẠM VI VÀ QUY TRÌNH THỰC HIỆN DỰ ÁN
Phạm vi dự án - Xây dựng ứng dụng mạng xã hội Dreamers:
- Tạo ra giao diện người dùng thân thiện, dễ sử dụng và thẩm mỹ để tối ưu hóa trải nghiệm người dùng.
- Tạo nền tảng kết nối và tương tác giữa người dùng, tạo ra một cộng đồng đa dạng và năng động.
- Đảm bảo an toàn và bảo mật thông tin cá nhân của người dùng
- Tích hợp khả năng chia sẻ nội dung đa phương tiện như hình ảnh và video.
- Tích hợp các chức năng liên lạc như tin nhắn riêng, video call.
Các cột mốc quan trọng Ngày bắt đầu Ngày hoàn thành
Thành lập nhóm/ đánh giá sơ bộ/ phạm vi dự án 18/09/2023 21/09/2023 Chốt kế hoạch thực hiện/ lập điều lệ/ khởi động dự án
Xác định các giai đoạn thực hiện 27/09/2023 11/10/2023 Thực hiện, phân tích và cải tiến giai đoạn thực hiện
Tổng kết, báo cáo 21/12/2023 01/01/2024
CHƯƠNG 4: CÁC NGUỒN LỰC VÀ CHI PHÍ THỰC HIỆN
Nhóm dự án Tên thành viên Chức vụ Vai trò
Phúc Trưởng nhóm - Thiết kế và lập trình
- Phân tích và thiết kế hệ thống
- Phân chia công việc cho các thành viên
Thành viên - Thiết kế và lập trình
- Phân tích và thiết kế hệ thống
Hồ Quang Đỉnh Thành viên - Thiết kế và lập trình
Lê Thị Ánh Hồng Thành viên - Thiết kế và lập trình
CHƯƠNG 5: TIÊU CHÍ THỰC HIỆN DỰ ÁN
Danh mục tiêu chí Mô tả cơ sở đánh giá
Năng suất làm việc - Đánh giá sự hiệu quả của quá trình làm việc trong dự án dựa trên thời gian và công sức mà nhóm dành cho các công việc.
- Xác định và đánh giá khả năng tự quản lý công việc của từng thành viên trong nhóm.
- Đánh giá mức độ hoàn thành công việc theo kế hoạch và xác định các nguyên nhân nếu có sự chậm trễ.
Tính tuân thủ của nhóm làm việc - Đánh giá mức độ tuân thủ của nhóm với các quy trình làm việc và lịch trình được đặt ra.
- Xác định sự hợp tác và giao tiếp trong nhóm, đặc biệt là trong việc chia sẻ thông tin và giải quyết vấn đề.
- Đánh giá sự hiệu quả của các cuộc họp nhóm và các quyết định được đưa ra.
Sự phù hợp khi đưa ra quyết định - Đánh giá khả năng đưa ra quyết định chín chắn và sáng tạo của nhóm dự án.
- Xác định sự hiểu biết đồng nhất về mục tiêu và chiến lược dự án giữa các thành viên nhóm.
- Đánh giá cách thức nhóm xử lý mâu thuẫn và đưa ra giải pháp khi có sự không đồng thuận.
Chất lượng dự án - Đánh giá chất lượng của sản phẩm website thương mại điện tử theo các tiêu chí như khả năng sử dụng, hiệu suất, và khả năng mở rộng.
- Kiểm tra và đánh giá mã nguồn và cấu trúc hệ thống để đảm bảo tính bảo mật và tính ổn định.
- Đánh giá sự phản hồi của người dùng và sửa đổi sản phẩm dựa trên đánh giá đó.
CHƯƠNG 6: RỦI RO, RÀNG BUỘC VÀ GIẢ ĐỊNH CỦA DỰ ÁN
Rủi ro - Bảo mật thông tin
- Sự cố kỹ thuật, lỗi phần mềm, và vấn đề liên quan đến hiệu suất.
- Tăng đột ngột lưu lượng truy cập có thể dẫn đến hiệu suất hệ thống giảm sút hoặc thậm chí làm hệ thống gặp sự cố.
- Thiếu sót trong quy trình quản lí rủi ro
Giả định và ràng buộc
Các vấn đề Ghi chú
Thời gian Thời gian thực hiện dự án không dược quá
100 ngày Phạm vi Xác định các công việc cần thiết phải thực hiện để hoàn thành.
Chất lượng Hệ thống phải đảm bảo các chức năng cơ bản.
CHƯƠNG 7: PHÊ DUYỆT DỰ ÁN Người lập điều lệ Hồ Quang Đỉnh Ngày: 18/09/2023
Người phê duyệt Nguyễn Hoàng Việt Ngày: 18/09/2023
4.2.3 Bảng phân rã công việc
Bảng 4 2 Bảng phân rã công việc WBS
STT Công Việc Thời gian
Dự án xây dựng ứng dụng mạng xã hội Dreamers trên thiết bị di động
3 Xác định sản phẩm 2 days
4 Xác định phạm vi dự án 2 days
5 Xác định thời gian thực hiện 3 days
6 Phân tích và xác định yêu cầu
7 Phân tích và xác định yêu cầu chức năng 3 days
8 Phân tích và xác định yêu cầu phi chức năng
9 Phân tích và xác định yêu cầu hệ thống 3 days
10 Xác định yêu cầu giao diện 3 days
11 Xác định yêu cầu quy trình nghiệp vụ 2 days
13 Thiết kế các luồng kinh doanh 4 days
14 Xây dựng thành phần cơ sở dữ liệu 3 days
15 Thiết kế và xây dựng giao diện người dùng
16 Xây dựng chức năng hệ thống
17 Cài đặt hệ thống 2 days
19 Lập kế hoạch kiểm thử’ 1 day
20 Kiểm thử đơn vị 3 days
21 Kiểm thử chức năng hệ thống 4 days
22 Kiểm thử tích hợp 4 days
23 Kiểm thử sự chấp nhận người dùng 4 days
24 Phân tích lỗi và khắc phục 7 days
25 Hoàn thành kiểm thử 0 days
26 Triển khai chuyển giao sản phẩm
27 Soạn tài liệu hướng dẫn 1 day
28 Phát hành sản phẩm 1 day Fri
29 Quản lý dự án 6 days
30 Bảo hành và bảo trì sản phẩm 3 days
31 Tổng kết dự án 3 days
32 Tổng hợp phản hồi và phân tích 2 days
33 Rút ra bài học kinh nghiệm 1 day
34 Hoàn thành dự án 0 days
Hình 4 2 Sơ đồ Gantt cho kế hoạch dự án giai đoạn đầu
Hình 4 3 Sơ đồ Gantt cho kế hoạch dự án giai đoạn sau
4.2.5 Timeline dự án và phân công
Chưa Đang thực Đã hoàn
Khởi động dự án CẢ NHÓM 9/18/2023 9/18/2023 FALSE FALSE TRUE Báo cáo
Xây dựng đề tài, lựa chọn công nghệ sử dụng CẢ NHÓM 9/19/2023 9/25/2023 FALSE FALSE TRUE
Phân tích, thiết kế use case PHÚC 9/26/2023 9/27/2023 FALSE FALSE TRUE
Phân tích, thiết kế sơ đồ phân rã chức năng VIỆT 9/28/2023 9/29/2023 FALSE FALSE TRUE
Thiết kế giao diện ứng dụng trên Figma CẢ NHÓM 9/30/2023 10/6/2023 FALSE FALSE TRUE
Thiết kế cơ sở dữ liệu (No SQL) CẢ NHÓM 10/7/2023 10/9/2023 FALSE FALSE TRUE
Khởi tạo source code,Repository Github VIỆT 10/10/2023 10/10/2023 FALSE FALSE TRUE
Setup phần điều hướng chính (Đăng nhập/ Đăng ký, Trang
Home, ) PHÚC 10/11/2023 10/12/2023 FALSE FALSE TRUE
Thiết kế màn hình Đăng Nhập HỒNG 10/13/2023 10/15/2023 FALSE FALSE TRUE
Thiêt kế màn hình Đăng ký (Trang điền thông tin,
Trang nhập ngày sinh) ĐỈNH 10/13/2023 10/15/2023 FALSE FALSE TRUE
Thiết kế Component Avatar (size small/medium/large có/không có border) PHÚC 10/13/2023 10/15/2023 FALSE FALSE TRUE
Thiết kế Component Post (Header, Body, Footer) VIỆT 10/13/2023 10/16/2023 FALSE FALSE TRUE
Thiết kế Modal Bình luận Post HỒNG 10/17/2023 10/19/2023 FALSE FALSE TRUE
Thiết kế Modal Chia sẻ Post PHÚC 10/17/2023 10/19/2023 FALSE FALSE TRUE
Thiết kế Modal Báo cáo Post ĐỈNH 10/17/2023 10/19/2023 FALSE FALSE TRUE
Thiết kế màn hình Trang chủ (Header, Danh sách Story
, Danh sách bài viết) VIỆT 10/20/2023 10/24/2023 FALSE FALSE TRUE
Thiết kế Modal Story HỒNG 10/20/2023 10/23/2023 FALSE FALSE TRUE
Thiết kế màn hình Thông báo (Thông báo, gợi ý người dùng) ĐỈNH 10/20/2023 10/23/2023 FALSE FALSE TRUE
Thiết kế màn hình Tìm kiếm/Khám Phá (Tìm kiếm, Hiển thị danh sách bài viết dưới dạng Gallery) PHÚC 10/20/2023 10/23/2023 FALSE FALSE TRUE
Thiết kế Modal Khám phá Post ĐỈNH 10/24/2023 10/26/2023 FALSE FALSE TRUE
Thiết kế màn hình Tạo bài viết (Chọn hình ảnh, Viết nội dung) VIỆT 10/24/2023 10/26/2023 FALSE FALSE TRUE
Review màn hình, Merge Code lần 1 CẢ NHÓM 10/27/2023 10/27/2023 FALSE FALSE TRUE
Thiết kế màn hình Hộp thoại (Tìm kiếm, Danh sách tin nhắn)
Thiết kế Modal Tạo tin nhắn HỒNG 10/28/2023 11/1/2023 FALSE FALSE TRUE
Thiết kế màn hình Tin nhắn ĐỈNH 10/28/2023 11/1/2023 FALSE FALSE TRUE
Thiết kế màn hình Trang cá nhân bản thân (Thông tin cá nhân,
Danh sách các bài viết đã đăng, Danh sách các bài viết đã lưu)
Thiết kế Modal Danh sách người theo dõi/ Danh sách người đang theo dõi PHÚC 11/2/2023 11/4/2023 FALSE FALSE TRUE
Thiết kế Modal chỉnh sửa thông tin cá nhân HỒNG 11/2/2023 11/4/2023 FALSE FALSE TRUE
Thiết kế Modal đổi mật khẩu tài khoản HỒNG 11/5/2023 11/7/2023 FALSE FALSE TRUE
Thiết kế Modal đăng xuất ĐỈNH 11/2/2023 11/4/2023 FALSE FALSE TRUE
Thiết kế màn hình Trang cá nhân người khác ĐỈNH 11/5/2023 11/7/2023 FALSE FALSE TRUE
Review màn hình, Merge Code lần 2 CẢ NHÓM 11/8/2023 11/8/2023 FALSE FALSE TRUE
Tạo Local Server (NodeJS),kết nối CSDL(MongoDB) VIỆT 11/9/2023 11/9/2023 FALSE FALSE TRUE
Xử lý Authentication: Đăng nhập / Đăng ký / Đăng xuất VIỆT 11/10/2023 11/12/2023 FALSE FALSE TRUE
Gọi API hiển thị danh sách Story ở trang Home ĐỈNH 11/13/2023 11/15/2023 FALSE FALSE TRUE
Gọi API hiển thị danh sách Bài viết ở trang Home ĐỈNH 11/13/2023 11/15/2023 FALSE FALSE TRUE
Xử lý sự kiện Thích/Hủy thích Bài viết PHÚC 11/13/2023 11/15/2023 FALSE FALSE TRUE
Xử lý sự kiện Lưu/Hủy lưu Bài viết PHÚC 11/16/2023 11/18/2023 FALSE FALSE TRUE
Xử lý sự kiện Bình luận/Xóa bình luận Bài viết VIỆT 11/19/2023 11/21/2023 FALSE FALSE TRUE
Xử lý sự kiện Thích/Hủy thích Bình luận VIỆT 11/22/2023 11/23/2023 FALSE FALSE TRUE
Xử lý sự kiện Báo cáo Bài viết PHÚC 11/19/2023 11/21/2023 FALSE FALSE TRUE
Xử lý sự kiện Chia sẻ Bài viết PHÚC 11/22/2023 11/23/2023 FALSE FALSE TRUE
Xử lý sự kiện Tìm kiếm người dùng theo username ĐỈNH 11/19/2023 11/21/2023 FALSE FALSE TRUE
Gọi API hiện thị danh sách bài viết ở Trang Tìm Kiếm ĐỈNH 11/22/2023 11/23/2023 FALSE FALSE TRUE
Gọi API hiển thị chi tiết bài viết ở Trang Tìm kiếm VIỆT 11/24/2023 11/25/2023 FALSE TRUE
Kiểm sự sự kiện đã làm, Merge code lần 3 CẢ NHÓM 11/26/2023 11/27/2023 FALSE FALSE TRUE
Xử lý sự kiện Tạo bài viết kèm theo Lưu trữ hình ảnh VIỆT 11/28/2023 12/29/2023 FALSE FALSE TRUE
Xứ lý sự kiện Xóa bài viết (của bản thân) VIỆT 11/30/2023 12/1/2023 FALSE FALSE TRUE
Xứ lý sự kiện Chỉnh sửa thông tin bài viết (của bản thân) VIỆT 12/2/2023 12/3/2023 FALSE FALSE TRUE
Gọi API hiển thị trang cá nhân người dùng (Thông tin cá nhân,
Bài viết, Bài viết đã lưu) PHÚC 11/28/2023 12/29/2023 FALSE FALSE TRUE
Gọi API hiển thị danh sách người theo dõi/ người đang theo dõi PHÚC 11/30/2023 12/1/2023 FALSE FALSE TRUE
Xử lý sự kiện Theo dõi/Hủy theo dõi người dùng PHÚC 12/2/2023 12/3/2023 FALSE FALSE TRUE
Xử lý sự kiện Chỉnh sửa thông tin cá nhân ĐỈNH 12/1/2023 12/2/2023 FALSE FALSE TRUE
Xử lý sự kiện Đổi mật khẩu ĐỈNH 12/3/2023 12/4/2023 FALSE FALSE TRUE
Gọi API hiển thị danh sách tin nhắn ở trang Hộp thoại ĐỈNH 12/5/2023 12/6/2023 FALSE FALSE TRUE
Xử lý sự kiện Tạo cuộc hội thoại mới PHÚC 12/7/2023 12/9/2023 FALSE FALSE TRUE
Gọi API hiển thị danh sách tin nhắn ở trong cuộc hội thoại PHÚC 12/10/2023 12/11/2023 FALSE FALSE TRUE
Xử lý sự kiện Xóa cuộc hội thoại PHÚC 12/12/2023 12/13/2023 FALSE FALSE TRUE
Khởi tạo,cài đặt Socket Server, xử lý Realtime VIỆT 12/14/2023 12/15/2023 FALSE FALSE TRUE
Xử lý sự kiện Nhắn tin thời gian thực VIỆT 12/16/2023 12/18/2023 FALSE FALSE TRUE
Xử lý sự kiện hiển trị trạng thái hoạt động của người dùng VIỆT 12/19/2023 12/21/2023 FALSE FALSE TRUE
Xử lý sự kiện tạo thông báo mỗi khi Theo dõi người dùng, Yêu thích/Bình luận bài viết/Yêu thích bình luận PHÚC 12/14/2023 12/16/2023 FALSE FALSE TRUE
Gọi API hiển thị danh sách Thông báo, gợi ý Người dùng ĐỈNH 12/17/2023 12/18/2023 FALSE FALSE TRUE
Xử sự kiện xóa thông báo ĐỈNH 12/19/2023 12/20/2023 FALSE FALSE TRUE
Xử lý sự kiện nhận Thông báo thời gian thực PHÚC 12/21/2023 12/22/2023 FALSE FALSE TRUE
Kiểm sự sự kiện đã làm, Merge code lần 4 CẢ NHÓM 12/23/2023 12/24/2023 FALSE FALSE TRUE
Kiểm thử lại toàn bộ giao diện CẢ NHÓM 12/25/2023 12/27/2023 FALSE FALSE TRUE
Kiểm thử lại toàn bộ API hiển thị CẢ NHÓM 12/25/2023 12/27/2023 FALSE FALSE TRUE
Kiểm thử lại toàn bộ luồng sự sự kiện CẢ NHÓM 12/25/2023 12/30/2023 FALSE FALSE TRUE
Viết báo cáo CẢ NHÓM 9/18/2023 12/30/2023 FALSE FALSE TRUE
Chuẩn bị slide báo cáo HỒNG 12/31/2023 01/01/2024 FALSE FALSE TRUE
Lý do trễ tiến độ Ghi chú
Thời gian: Học kỳ 2 năm học 2022-2023
Hình 4 4 Timeline dự án
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Sơ đồ Use-case
5.1.1 Sơ đồ Use-case tổng quát
Hình 5 1 Sơ đồ Usecase Tổng Quát
STT Tên Actor Ý nghĩa/ Ghi chú
1 Admin Được phép xem các hoạt động và tính năng trong hệ thống, trực tiếp theo dõi thống kê về hành vi, giải quyết các báo cáo từ phía người dùng
2 Người dùng Tài khoản đã được đăng kí tại ứng dụng, cho phép trải nghiệm các chức năng sẵn có của người dùng
3 Khách Tài khoản chưa được đăng ký tại ứng dụng, phải tạo tài khoản để trở thành người dùng
Bảng 5 2 Danh sách Use-case
Quyền hệ thống STT Tên Use- case Ý nghĩa
Kiểm duyệt báo cáo Xử lý báo cáo tài khoản và bài viết từ viết người dùng
Thống kê Xem thống kê về hành vi người dùng để phân tích đánh giá
1 Đăng nhập Đăng nhập vào hệ thống.
2 Đăng xuất Đăng xuất ra hệ thống để truy cập tài khoản khác
Xem trang cá nhân của mình
Xem và tùy chỉnh cũng như thay đổi các thông tin riêng tư, công khai của tài khoản trên ứng dụng
Xem trang cá nhân người khác
Xem và tùy chọn các chức năng tương tác với người dùng khác
Xem thông báo Xem các thông báo về hoạt động của bạn bè tác động đến tài khoản của mình trên ứng dụng
Xem bản tin Xem các hoạt động của bạn bè trên trang chủ của mình
Nhắn tin Tương tác với người dùng khác qua tin nhắn realtime hoặc call video
Tạo bài viết Đăng tải hình ảnh và video kèm theo trạng thái cho người dùng khác tương tác cùng
Hình 5 2 Sơ đồ tổng quát
Khách 1 Đăng nhập Đăng nhập vào hệ thống
Tạo tài khoản Đăng ký tài khoản mới để bắt đầu sử dụng ứng dụng
Sơ đồ phân rã chức năng
5.2.1 Sơ đồ tổng quát
5.2.2 Sơ đồ chi tiết Người dùng
Hình 5 3 Sơ đồ chi tiết Người dùng
5.2.3 Sơ đồ chi tiết Người quản lý
Hình 5 4 Sơ đồ chi tiết Người quản lí
Thiết kế sơ sở dữ liệu
Hình 5 5 Sơ dồ cơ sở dữ liệu
HIỆN THỰC ĐỀ TÀI
Môi trường phát triển
- Công cụ lập trình ứng dụng: Visual Studio Code.
- Công cụ quản lý CDSL: MongoDB Atlas.
- Công cụ thiết kế giao diện UI/UX: Figma.
- Công cụ vẽ sơ đồ phân tích và thiết kê dữ liệu: StarUML, draw.io.
- Công cụ quản lý mã nguồn, phiên bản: Github, Git.
- Công cụ quản lý dự án: Trello, Excel.
Màn hình giao diện
Hình 6 3 Giao diện Đăng ký –
Hình 6 4 Giao diện Đăng ký – Điền thông tin
Hình 6 5 Giao diện Đăng ký – Thành công
Hình 6 7 Giao diện Trang chủ Hình 6 6 Giao diện Trang chủ -
Hình 6 11 Giao diện Khám phá Hình 6 10 Giao diện Khám phá
Hình 6 31 Giao diện Trang cá nhân – Đăng xuất
KIỂM THỬ HỆ THỐNG
Nội dung kiểm thử
7.1.1 Kiểm thử chức năng Đăng Nhập – Đăng ký – Đăng xuất
Bảng 7 1 Kiểm thử chức năng Đăng Nhập – Đăng ký – Đăng xuất
Lần Loại Nội dung Kỳ vọng Thực tế Kết quả Lần 1 Giao diện Kiểm thử giao diện Đăng nhập – Đăng ký.
Giao diện tuân thủ theo thiết kế ban đầu.
Giao diện tuân thủ theo thiết kế ban đầu Đạt
Lần 2 Chức năng Kiểm thử luồng sự kiện đăng ký tài khoản mới.
Tạo tài khoản thành công, thông báo nếu thông tin không hợp lệ.
Tài khoản được tạo nhưng chưa ràng buộc trùng dữ liệu.
Lần 3 Chức năng Kiểm thử luồng sự kiện đăng ký tài khoản mới
Thêm ràng buộc thành công.
Thêm ràng buộc thành công Đạt
Lần 4 Chức năng Kiểm thử luồng sự kiện đăng nhập. Đăng nhập thành công, thông báo nếu thông tin đăng nhập sai. Đăng nhập thành công nhưng chưa lưu thông tin đăng nhập.
Lần 5 Chức năng Kiểm thử luồng sự kiện đăng nhập.
Không phải đăng nhập lại mỗi lần mở App.
Lưu thông tin đăng nhập thành công Đạt
Lần 6 Chức năng Kiểm thử luồng sự đăng xuất tài khoản
Xóa thông tin đăng nhập, ngăn chặn quay lại
Xóa thông tin đăng nhập, ngăn chặn quay lại Đạt trang chủ trang chủ.
7.1.2 Kiểm thử chức năng Tạo bài viết mới
Bảng 7 2 Kiểm thử chức năng Tạo bài viết mới
Lần Loại Nội dung Kỳ vọng Thực tế Kết quả
Lần 1 Giao diện Kiểm thử giao diện luồng Tạo bài viết.
Giao diện tuân thủ theo thiết kế ban đầu.
Giao diện tuân thủ theo thiết kế ban đầu Đạt
Lần 2 Chức năng Kiểm thử luồng sự kiện Tạo bài viết mới.
Tạo bài viết thành công, bài viết được tạo hiển thị ở trang chủ.
Tạo bài viết không thành công, hình ảnh không được lưu trữ.
Lần 3 Chức năng Kiểm thử luồng sự kiện Tạo bài viết mới.
Tạo bài viết thành công, hình ảnh được lưu trữ.
Tạo bài viết thành công, hình ảnh được lưu trữ nhưng bài viết không được hiển thị ở trang chủ.
Lần 4 Chức năng Kiểm thử luồng sự kiện Tạo bài viết mới.
Tạo bài viết thành công, bài viết được tạo hiển thị ở trang chủ.
Tạo bài viết thành công, bài viết được hiển thị ở trang chủ. Đạt
7.1.3 Kiểm thử luồng sự kiện Yêu thích/Lưu trữ/Bình luận/Chia sẻ Bài viết
Bảng 7 3 Kiểm thử luồng sự kiện Yêu thích/Lưu trữ/Bình luận/Chia sẻ Bài viết
Lần Loại Nội dung Kỳ vọng Thực tế Kết quả
Lần 1 Giao diện Kiểm thử giao diện thông tin Bài viết.
Giao diện tuân thủ theo thiết kế ban đầu.
Giao diện tuân thủ theo thiết kế ban đầu Đạt
Lần 2 Chức năng Kiểm thử luồng sự kiện Yêu thích/Hủy yêu thích Bài viết
Yêu thích/Hủy yêu thích bài viết thành công
Yêu thích/Hủy yêu thích thành công nhưng giao diện không thay đổi.
Lần 3 Chức năng Kiểm thử luồng sự kiện Yêu thích/Hủy yêu thích Bài viết
Yêu thích/Hủy yêu thích bài viết thành công
Yêu thích/Hủy yêu thích thành công, giao diện được cập nhật. Đạt
Lần 4 Chức năng Kiểm thử chức năng Bình luận bài viết.
Bình luận bài viết thành công.
Bình luận bài viết thành công Đạt
Lần 5 Chức năng Kiểm thử chức năng Yêu thích/
Hủy yêu thích bình luận
Yêu thích/Hủy yêu thích bình luận thành công.
Yêu thích/Hủy yêu thích bình luận không thành công, chỉ cập nhật giao diện nhưng thông tin không được lưu vào database
Lần 6 Chức năng Kiểm thử chức năng Yêu thích/ Yêu thích/Hủy Yêu thích/Hủy Đạt
Hủy yêu thích bình luận yêu thích bình luận thành công, thông tin được lưu vào database. yêu thích bình luận thành công, thông tin được lưu vào database
Lần 7 Chức năng Kiểm thử chức năng Xóa bình luận
Xóa bình luận thành công
Xóa bình luận thành công Đạt
Lần 8 Chức năng Kiểm thử chức năng Chia sẻ bài viết
Chia sẻ bài viết thành công
Giao diện phần Chia sẻ bài viết không hiển thị danh sách người dùng.
Lần 9 Chức năng Kiểm thử chức năng Chia sẻ bài viết
Hiển thị danh sách người dùng, chia sẻ bài viết thành công
Hiển thị danh sách người dùng, chia sẻ bài viết thành công Đạt
7.1.4 Kiểm thử chức năng Tìm kiếm – Khám phá
Bảng 7 4 Kiểm chức năng Tìm kiếm – Khám phá
Lần Loại Nội dung Kỳ vọng Thực tế Kết quả
Lần 1 Giao diện Kiểm thử giao diện tìm kiếm người dùng.
Giao diện tuân thủ theo thiết kế ban đầu.
Giao diện tuân thủ theo thiết kế ban đầu Đạt
Lần 2 Giao diện Kiểm thử giao diện khám phá bài viết
Giao diện tuân thủ theo thiết kế ban đầu, bài viết được hiển thị dưới dạng Gallary.
Giao diện tuân thủ theo thiết kế ban đầu Đạt
Lần 3 Chức năng Kiểm thử chức năng tìm kiếm người dùng.
Tìm kiếm người dùng thành công.
Tìm kiếm người dùng thành công nhưng kết quả tìm kiếm không chính xác
Thời gian tìm kiếm chậm.
Lần 4 Chức năng Kiểm thử chức năng tìm kiếm người dùng.
Tìm kiếm người dùng thành công.
Tìm kiếm người dùng thành công Đạt
Lần 5 Chức năng Kiểm thử chức năng Khám phá bài viết
Hiển thị đúng danh sách bài viết.
Hiển thị được danh sách bài viết nhưng không tự biến mất khi theo dõi người dùng đó
Lần 6 Chức năng Kiểm thử chức năng Khám phá bài viết
Hiển thị đúng danh sách bài viết.
Hiển thị đúng danh sách bài viết Đạt
7.1.5 Kiểm thử chức năng Quản lý trang cá nhân
Bảng 7 5 Kiểm thử chức năng Quản lý trang cá nhân
Lần Loại Nội dung Kỳ vọng Thực tế Kết quả
Lần 1 Chức năng Kiểm thử chức năng chuyển sang trang cá nhân
Giao diện hiện đầy đủ thông tin trang cá nhân và các chức năng để quản lý
Giao diện bị lỗi khi sắp xếp các bài viết theo ngày tạo bị ngược
Lần 2 Chức năng Kiểm thử chức năng chuyển sang trang cá nhân
Giao diện hiện đầy đủ thông tin trang cá nhân và các chức năng để quản lý
Giao diện hiện đầy đủ thông tin trang cá nhân và các chức năng để quản lý Đạt
Lần 3 Chức năng Kiểm thử chức năng chỉnh sửa trang cá nhân
Chỉnh sửa thông tin trang cá nhân đúng theo mong muốn của người dùng
Thông tin cá nhân chưa lưu ngày tháng năm đúng định dạng
Lần 4 Chức năng Kiểm thử chức năng chỉnh sửa trang cá nhân
Chỉnh sửa thông tin trang cá nhân đúng theo mong muốn của người dùng
Chỉnh sửa thông tin trang cá nhân đúng theo mong muốn của người dùng Đạt
Lần 5 Chức năng Kiểm thử chức năng Đổi mật khẩu
Chỉnh sửa được mật khẩu khi người dùng nhập vào ba trường: mật khẩu hiện tại, mật khẩu mới và xác nhận lại mật khẩu
Chỉnh sửa được mật khẩu khi người dùng nhập vào ba trường: mật khẩu hiện tại, mật khẩu mới và xác nhận lại mật khẩu Đạt
Lần 6 Giao diện Kiểm tra giao diện hiển thị người theo dõi và đang theo dõi
Giao diện hiển thị được thông tin bài viết của mình, người theo dõi, và người mình đang theo dõi
Giao diện phải reload lại mới xem được những thay đổi về theo dõi của người khác với mình
Lần 7 Giao diện Kiểm tra giao diện hiển thị người theo dõi và đang theo dõi
Giao diện hiển thị đúng và đầy đủ danh sách theo dõi và người theo dõi
Giao diện hiển thị đúng và đầy đủ danh sách theo dõi và người theo dõi Đạt
7.1.6 Kiểm thử chức năng Tin nhắn
Bảng 7 6 Kiểm thử chức năng Tin nhắn
Lần Loại Nội dung Kỳ vọng Thực tế Kết quả
Lần 1 Giao diện Kiểm thử Giao diện khi truy cập vào mục Tin nhắn
Hiển thị trang nhắn tin với đúng thông tin về hộp thoại của người dùng
Hiển thị trang nhắn tin với đúng thông tin về hộp thoại của người dùng Đạt
Lần 2 Chức năng Kiểm thử chức năng Tìm kiếm và tạo mới cuộc hội thoại
Giao diện modal tìm kiếm người dùng để nhắn tin và có thể tạo tin nhắn mới đến với đối tượng mong muốn
Giao diện hiện đúng thông tin người dùng khi tìm kiếm nhưng chưa bấm tạo tin nhắn được
Lần 3 Chức năng Kiểm thử chức năng Tìm kiếm và tạo mới cuộc hội thoại
Giao diện modal tìm kiếm người dùng để nhắn tin và có thể tạo tin
Giao diện modal tìm kiếm người dùng để nhắn tin và có thể tạo Đạt nhắn mới đến với đối tượng mong muốn tin nhắn mới đến với đối tượng mong muốn
Lần 4 Chức năng Kiểm thủ chức năng gửi tin nhắn
Gửi được tin nhắn của mình đến đối tượng cần gửi có đầy đủ nội dung như: nội dung, hình ảnh, icon
Gửi được tin nhắn nhưng lỗi định dạng hình ảnh Không Đạt
Lần 5 Chức năng Kiểm thủ chức năng gửi tin nhắn
Gửi được tin nhắn của mình đến đối tượng cần gửi có đầy đủ nội dung như: nội dung, hình ảnh, icon
Gửi được tin nhắn của mình đến đối tượng cần gửi có đầy đủ nội dung như: nội dung, hình ảnh, icon Đạt
Lần 6 Giao diện Kiểm thủ chức năng lấy danh sách tin nhắn
Giao diện hiển thị đầy đủ lịch sử nhắn tin của hai người dùng
Giao diện bị lỗi định dạng thời gian Không Đạt
Lần 7 Giao diện Kiểm thủ chức năng lấy danh sách tin nhắn
Giao diện hiển thị đầy đủ lịch sử nhắn tin của hai người dùng
Giao diện hiển thị đầy đủ lịch sử nhắn tin của hai người dùng Đạt
Lần 8 Giao diện Kiểm thử chức năng lấy danh sách các cuộc hội thoại
Giao diện hiển thị danh sách các cuộc hội thoại mà người dùng đã nhắn theo đúng thứ tự thời gian gần nhất
Giao diện hiển thị đúng danh sách cuộc hội thoại nhưng bị lỗi thứ tự
Lần 9 Giao diện Kiểm thử chức năng lấy danh sách các cuộc hội thoại
Giao diện hiển thị danh sách các cuộc hội thoại mà người dùng đã nhắn theo đúng thứ tự thời gian gần nhất
Giao diện hiển thị danh sách các cuộc hội thoại mà người dùng đã nhắn theo đúng thứ tự thời gian gần nhất Đạt
10 Chức năng Kiểm thử chức năng xóa cuộc hội thoại
Cuộc hội thoại khi xóa sẽ biến mất hoàn toàn trong phần Tin nhắn
Phần tin nhắn đã biến mất nhưng vẫn còn hiện trong danh sách các cuộc hội thoại
Lần 11 Chức năng Kiểm thử chức năng xóa cuộc hội thoại
Cuộc hội thoại khi xóa sẽ biến mất hoàn toàn trong phần Tin nhắn
Cuộc hội thoại khi xóa sẽ biến mất hoàn toàn trong phần Tin nhắn Đạt
7.1.7 Kiểm thử chức năng Thông báo
Bảng 7 7 Kiểm thử chức năng Thông báo
Lần Loại Nội dung Kỳ vọng Thực tế Kết quả
Lần 1 Giao diện Kiểm thử giao diện hiển thị thông báo mới
Kiểm thử giao diện hiển thị thông báo chấm đỏ khi có thông báo mới
Không hiển thị chấm đỏ khi có thông báo Không Đạt
Lần 2 Giao diện Kiểm thử giao diện hiển thị thông báo mới
Kiểm thử giao diện hiển thị thông báo chấm đỏ khi có thông báo
Kiểm thử giao diện hiển thị thông báo chấm đỏ khi có thông Đạt mới báo mới Lần 3 Chức năng Kiểm thử chức năng thông báo khi có người theo dõi mới
Hiển thị thông báo chấm đỏ và khi bấm vào thì hiển thị đầy đủ thông tin của thông báo có người theo dõi mới
Hiển thị thông báo chấm đỏ và khi bấm vào thì hiển thị đầy đủ thông tin của thông báo có người theo dõi mới Đạt
Lần 4 Chức năng Kiểm thủ chức năng thông báo khi có người thích bài viết của mình
Hiển thị thông báo chấm đỏ và khi bấm vào thì hiển thị đầy đủ thông tin của thông báo có người thích bài viết của mình
Hiển thị thông báo chấm đỏ và khi bấm vào thì hiển thị đầy đủ thông tin của thông báo có người thích bài viết của mình Đạt
Lần 5 Chức năng Kiểm thủ chức năng thông báo khi có người bình luận vào bài viết của mình
Hiển thị thông báo chấm đỏ và khi bấm vào thì hiển thị đầy đủ thông tin của thông báo có người bình luận vào bài viết của mình
Hiển thị thông báo chấm đỏ và khi bấm vào thì hiển thị đầy đủ thông tin của thông báo có người bình luận vào bài viết của mình Đạt
Lần 6 Chức năng Kiểm thủ chức năng Xóa tất cả thông báo
Xóa toàn bộ thông báo và biến mất dấu chấm đỏ trên thanh thông báo
Danh sách thông báo về rỗng nhưng chấm đỏ vẫn chưa biến mất
Lần 7 Chức năng Kiểm thủ chức năng Xóa tất cả thông báo
Xóa toàn bộ thông báo và biến mất dấu
Xóa toàn bộ thông báo và biến mất Đạt chấm đỏ trên thanh thông báo dấu chấm đỏ trên thanh thông báo
Tính năng chưa hoàn thiện
Bảng 7 8 Tính năng chưa hoàn thiện
STT Tên chức năng Mục tiêu ban đầu Kết quả
1 Chức năng quên mật khẩu Giúp người dùng lấy lại mật khẩu bằng gmail khi bị quên mật khẩu
Vì bị giới hạn người dùng nếu dùng gmail thật và xác minh nên tính năng tạm thời chưa triển khai được
2 Tính năng đăng nhập bằng Facebook hoặc bằng Google
Giúp người dùng liên kết tài khoản với các mạng xã hội nổi tiếng như FaceBook hay Google để tiện lợi trong việc sài chung dữ liệu
Chưa nghiên cứu được với tính năng này trong môi trường cơ sở dữ liệu Mongodb
3 Tính năng trả lời bình luận theo nhiều cấp
Giúp người dùng phân biệt rõ ràng hơn trong việc biết được bình luận này đang trả lời cho bình luận nào trong khi có nhiều người nhắn tin
Bình luận chỉ có một cấp, chưa đủ thời gian để xây dựng nhiều cấp bình luận
4 Tạo cuộc hội thoại với nhiều người tham gia(Nhóm)
Tạo nhóm nhắn tin giúp người dùng có thể tiện lợi trong việc muốn gửi tin nhắn giống nhau đến với nhiều người chỉ trong
Tin nhắn chỉ được gửi đi một người, vì trong bảngCoversation thuộc tính recipients chỉ là mảng chứa hai
Bài học kinh nghiệm sau khi hoàn thành dự án
Call video với người dùng
Người dùng có thể gọi video cho nhau realtime
Vì realtime trong Socket.io của React vẫn chưa ổn định khi Connect nên tính năng bị lỗi
7.3 Bài học kinh nghiệm sau khi hoàn thành dự án
7.3.1 Lập kế hoạch và quản lí dự án hiệu quả
• Xác định rõ ràng mục tiêu và phạm vi dự án ngay từ đầu.
• Lập kế hoạch chi tiết với các mốc thời gian cụ thể và phân công công việc rõ ràng cho từng thành viên.
• Theo dõi tiến độ dự án thường xuyên và cập nhật kế hoạch khi cần thiết.
• Sử dụng các công cụ quản lý dự án để hỗ trợ quá trình thực hiện.
7.3.2 Giao tiếp và hợp tác
• Giao tiếp thường xuyên giữa các thành viên trong nhóm và với các bên liên quan khác.
• Tổ chức các buổi họp định kỳ để cập nhật tiến độ, giải quyết vấn đề và đưa ra quyết định.
• Sử dụng các công cụ cộng tác để chia sẻ thông tin và tài liệu.
7.3.3 Kiểm thử và đánh giá
• Thực hiện kiểm thử thường xuyên để đảm bảo chất lượng dự án.
• Thu thập phản hồi từ người dùng và sử dụng phản hồi đó để cải thiện dự án.
• Đánh giá kết quả dự án so với mục tiêu ban đầu để rút ra bài học kinh nghiệm.
• Xác định các rủi ro tiềm ẩn trong dự án và lập kế hoạch phòng ngừa.
• Theo dõi các rủi ro và cập nhật kế hoạch phòng ngừa khi cần thiết.
• Có phương án dự phòng để giải quyết các rủi ro xảy ra.
7.3.5 Học hỏi và phát triển
• Ghi chép lại những bài học kinh nghiệm trong quá trình thực hiện dự án.
• Sử dụng những bài học kinh nghiệm đó để cải thiện các dự án trong tương lai.
• Khuyến khích các thành viên trong nhóm học hỏi và phát triển kỹ năng của bản thân.