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

Luận văn tốt nghiệp Khoa học máy tính: PRP - Phát triển hệ thống cung cấp dịch vụ xây dựng trang đăng tin mua bán bất động sản

115 0 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 đề PRP – Phát triển hệ thống cung cấp dịch vụ xây dựng trang đăng tin mua bán bất động sản
Tác giả Võ Quốc Bảo, Nguyễn Long Kim
Người hướng dẫn Ths. Trần Thị Quế Nguyệt, Ths. Trương Quỳnh Chi
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Khoa học Máy tính
Thể loại Luận văn tốt nghiệp Đại học
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 115
Dung lượng 3,93 MB

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI (8)
    • 1.1 Tổng quan (16)
    • 1.2 Nội dung thực hiện (16)
    • 1.3 Ý nghĩa đề tài (17)
      • 1.3.1 Ý nghĩa thực tiễn (17)
      • 1.3.2 Ý nghĩa khoa học, kỹ thuật (17)
  • CHƯƠNG 2. KIẾN THỨC NỀN TẢNG (8)
    • 2.1 Cơ sở lý thuyết (18)
      • 2.1.1 Mô hình Model – View – Controller (MVC) (18)
      • 2.1.2 Restful API (19)
    • 2.2 Công nghệ nền tảng (20)
      • 2.2.1 Front-end (20)
      • 2.2.2 Back-end (21)
      • 2.2.3 Hệ quản trị cơ sở dữ liệu và PostgreSQL (22)
      • 2.2.4 Cloud và các dịch vụ tích hợp (23)
  • CHƯƠNG 3. PHÂN TÍCH HỆ THỐNG (8)
    • 3.1 Khảo sát các hệ thống liên quan (25)
      • 3.1.1 Hệ thống batdongsan.com.vn (25)
      • 3.1.2 Hệ thống rever.vn (25)
    • 3.2 Đặc tả hệ thống PRP (25)
    • 3.3 Phân tích nghiệp vụ (26)
      • 3.3.1 Trang dành cho người dùng (26)
      • 3.3.2 Trang dành cho quản trị viên (37)
      • 3.3.3 Các yêu cầu phi chức năng của hệ thống (48)
  • CHƯƠNG 4. THIẾT KẾ HỆ THỐNG (8)
    • 4.1 Kiến trúc tổng thể (49)
      • 4.2.1 Lược đồ ERD (50)
      • 4.2.2 Ánh xạ cơ sở dữ liệu (51)
  • CHƯƠNG 5. HIỆN THỰC HỆ THỐNG (8)
    • 5.1 Quản lí mã nguồn (62)
      • 5.1.1 Lưu trữ và quản lí mã nguồn bằng Git (62)
      • 5.1.2 Cấu trúc mã nguồn (62)
    • 5.2 Tích hợp phương thức thanh toán MoMo (65)
    • 5.3 Giao diện của hệ thống (0)
      • 5.3.1 Giao diện trang dành cho người dùng (67)
      • 5.3.2 Giao diện trang quản trị (84)
  • CHƯƠNG 6. KIỂM THỬ, TRIỂN KHAI VÀ ĐÁNH GIÁ HỆ THỐNG (8)
    • 6.1 Kiểm thử hệ thống (91)
    • 6.2 Triển khai hệ thống (102)
      • 6.2.1 Triển khai hệ thống trên nền tảng Cloud (102)
      • 6.2.2 Các bước triển khai (103)
    • 6.3 Đánh giá hệ thống (107)
      • 6.3.1 Đánh giá hiệu suất hệ thống bằng Google PageSpeed Insights (107)
      • 6.3.2 Cải thiện hiệu suất hệ thống (108)
  • CHƯƠNG 7. TỔNG KẾT, ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI (8)
    • 7.1 Tổng kết kết quả đạt được (112)
      • 7.1.1 Đối với nhiệm vụ đề tài (112)
      • 7.1.2 Đối với lợi ích kinh tế (112)
      • 7.1.3 Đối với cơ sở lý thuyết và công nghệ (112)
      • 7.1.4 Đối với quy trình phát triển phần mềm (113)
    • 7.2 Đánh giá kết quả đạt được (113)
      • 7.2.1 Ưu điểm (113)
      • 7.2.2 Nhược điểm (113)
    • 7.3 Hướng phát triển đề tài (0)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

GIỚI THIỆU ĐỀ TÀI

Tổng quan

Hiện nay, với sự phát triển của công nghệ, thương mại điện tử đang ngày càng trở nên phổ biến Không chỉ có mua bán các sản phẩm tiêu dùng bình thường mà hiện nay nhu cầu mua bán, giao dịch bất động sản cũng trở nên rất sôi nổi trên mạng Internet Chính vì thế mà ngày càng có nhiều người môi giới hoặc ngay cả chủ sở hữu cũng đang tìm cách rao bán bất động sản thông qua các trang mạng

PRP được phát triển với mong muốn là tạo ra một môi trường mở, mà người dùng (môi giới, chủ sở hữu) có thể rao bán, quảng cáo bất động sản của mình đến những người quan tâm Hệ thống PRP vừa cung cấp các dịch vụ đăng tin, theo dõi bài đăng bất động sản, vừa có dịch vụ quản lý, kiểm soát dữ liệu từ khách hàng

 Đối với người môi giới, sở hữu bất động sản:

 Quản lý bài đăng của mình

 Thanh toán khi đăng ký đăng tin

 Nhận email thông báo về yêu cầu liên hệ, nhắc gia hạn tin

 Đối với người tìm kiếm bất động sản:

 Xem thông tin từng bài đăng bất động sản

 Tìm kiếm bài đăng phù hợp

 Gửi yêu cầu liên hệ đến chủ bài đăng

 Theo dõi bài viết yêu thích

 Theo dõi, cập nhật thông tin cá nhân

 Tìm kiếm tin tức về bất động sản

 Đối với quản trị viên của hệ thống:

 Quản trị nội dung của hệ thống như tin tức, bất động sản, bài đăng

 Xem thống kê của hệ thống, xem lịch sử thanh toán trên hệ thống

Nội dung thực hiện

Một số nội dung đã thực hiện trong quá trình hoàn thành hệ thống:

 Nghiên cứu các hệ thống về đăng tin bất động sản

 Nghiên cứu công nghệ và các nền tảng cần có để hiện thực hệ thống

 Xây dựng giao diện trang đăng tin và trang quản trị

 Hiện thực và kiểm thử hệ thống

 Triển khai và đánh giá hệ thống đã hiện thực

 Viết báo cáo về đề tài đã thực hiện

KIẾN THỨC NỀN TẢNG

Cơ sở lý thuyết

2.1.1 Mô hình Model – View – Controller (MVC)

Mô hình Model - View - Controller hay còn được gọi là mô hình MVC là mẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy tính MVC chia thành ba bộ phận chính được kết nối với nhau Đó là Model(dữ liệu), View(Giao diện) và Controller(Bộ điều khiển) [1]

 Model (M) là thành phần có chức năng lưu trữ dữ liệu được sử dụng bởi chương trình Đây là nơi chứa các nghiệp vụ tương tác với dữ liệu hay cơ sở dữ liệu; nó bao gồm các class/function xử lý nhiều nghiệp vụ như kết nối database, truy vấn, xử lý dữ liệu

 View(V) là thành phần giao diện dành cho người dùng, nơi chứa những giao diện như nút bấm, khung nhập, menu, hình ảnh, Nó đảm nhận nhiệm vụ hiển thị thông tin, dữ liệu cho người dùng tương tác với hệ thống

 Controller(C) là thành phần chịu trách nhiệm xử lý các yêu cầu của người dùng nhận từ lớp View(V) Nó sẽ gồm những class/function để xử lý nhiều nghiệp vụ logic, giúp lấy đúng dữ liệu nhờ những nghiệp vụ lớp Model(M) cung cấp và hiển thị thông tin đó ra cho người dùng thông qua View(V)

Luồng xử lý trong MVC:

 Người dùng sử dụng một trình duyệt web bất kỳ (Firefox,Chrome, ) để truy cập vào Website của chúng ta Sau đó gửi yêu cầu kèm theo dữ liệu để

4 dữ liệu từ Model hay không Nếu có, nó sẽ điều hướng đến các thao tác xử lý tại Model, sau đó nhận lại dữ liệu từ Model trả về

 Khi đã nắm được dữ liệu trả về từ Model thì Controller sẽ xử lý tập dữ liệu đó và trả ra View để hiển thị

 Khi nhận được dữ liệu trả ra từ Controller, View sẽ xây dựng lại các thành phần hiển thị và trả về nội dung giao diện Controller sẽ đưa kết quả này lên trình duyệt web của người dùng

 Trình duyệt web nhận giá trị trả về và hiển thị lên cho người dùng Đây cũng là bước kết thúc cho luồng xử lý trong mô hình MVC Ưu nhược điểm của MVC

 Tiết kiệm băng thông vì không sử dụng kỹ thuật ViewState

 Giúp phát triển ứng dụng nhanh hơn, có bố cục rõ ràng và riêng biệt cũng giúp cho việc kiểm tra lỗi phần mềm đơn giản

 Phiên bản mới nhất của MVC hỗ trợ responsive website mặc định và các mẫu cho mobile Chúng ta có thể tạo công cụ View của riêng mình một cách đơn giản và nhanh chóng hơn

 Không phù hợp cho các dự án nhỏ

REST (Representational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiến trúc để viết API và sử dụng phương thức HTTP đơn giản để tạo ra giao tiếp giữa các thiết bị Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, PUT đến một URL để xử lý dữ liệu

API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML

RESTful API là một tiêu chuẩn dùng cho việc thiết kế API cho các ứng dụng Web để quản lý các nguồn tài nguyên trên server RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để giao tiếp giữa ứng dụng trên các các nền tảng(web, mobile, ) [2]

REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc,

 GET: Trả về một resource hoặc một danh sách resource

 PUT: Cập nhật thông tin cho resource

RESTful API không sử dụng session và cookie, nó sử dụng một access_token với mỗi request Dữ liệu trả về thường có cấu trúc như sau:

 200 OK – Trả về thành công cho những phương thức GET, PUT, PATCH hoặc DELETE

 201 Created – Trả về khi một resource vừa được tạo thành công

 204 No Content – Trả về khi resource xoá thành công

 304 Not Modified – Client có thể sử dụng dữ liệu cache

 400 Bad Request – Request không hợp lệ

 401 Unauthorized – Request cần có auth

 403 Forbidden – Bị từ chối, không cho phép

 404 Not Found – Không tìm thấy resource từ URI

 405 Method Not Allowed – Phương thức không cho phép

 410 Gone – Resource không còn tồn tại, Version cũ đã không còn hỗ trợ

 415 Unsupported Media Type – Không hỗ trợ kiểu resource này

 422 Unprocessable Entity – Dữ liệu không được xác thực

 429 Too Many Requests – Request bị từ chối do bị giới hạn

Việc sử dụng RESTful API cần có một tài liệu ghi lại cấu trúc API Mỗi một API cần được miêu tả đầy đủ về biến được gửi, kiểu dữ liệu, bắt buộc gửi giá trị nào đó hay không, đưa ra một cấu trúc dữ liệu ban đầu Luôn sử dụng version để khi bạn cần nâng cấp API mà vẫn hỗ trợ các API cũ.

PHÂN TÍCH HỆ THỐNG

Khảo sát các hệ thống liên quan

Để hiểu rõ hơn mục đích tại sao cần xây dựng hệ thống PRP, nhóm đã tiến hành khảo sát một số hệ thống chuyên cung cấp các dịch vụ đăng tin bất động sản Nhóm đã khảo sát 2 hệ thống sau: https://batdongsan.com.vn và https://rever.vn

3.1.1 Hệ thống batdongsan.com.vn

Hệ thống batdongsan.com.vn cung cấp một website đăng tin bất động sản với nhiều tính năng hỗ trợ người dùng

 Có giao diện bắt mắt, thân thiện với với người dùng

 Có tính năng cho phép người dùng gửi bài đăng (có phí)

 Giao diện được thiết kế có tính responsive cao, hiển thị tốt trên nhiều loại màn hình – Hỗ trợ SEO tốt

 Hiển thị đầy đủ thông tin người dùng yêu cầu

 Tích hợp tính năng chia sẻ qua mạng xã hội

 Không cho đăng tin miễn phí

Hệ thống rever.vn là một website đăng tin bất động sản lớn, với nhiều dự án khủng, còn cung cấp nhiều dịch vụ khác hỗ trợ cho việc môi giới bất động sản tốt hơn

 Có nhiều thông tin dự án lớn

 Giao diện được thiết kế có tính responsive cao, hiển thị tốt trên nhiều loại màn hình – Hỗ trợ SEO tốt

 Giao diện và tính năng dễ hiểu, dễ dùng

 Tích hợp tính năng chia sẻ qua mạng xã hội

 Chủ yếu vẫn là cho các dự án lớn, nhà phố

Đặc tả hệ thống PRP

Sau khi khảo sát các hệ thống liên quan, chúng tôi đi đến xây dựng hệ thống xoay quanh vấn đề đăng tin và quản lí tin gồm các phần:

 Trang dành cho người dùng: là trang dành cho người dùng của hệ thống PRP tìm kiếm bất động sản, đọc tin tức về bất động sản Ngoài ra, người dùng còn có thể tạo tài khoản để đăng tin và quản lí tin đăng bất động sản của họ

11 người dùng, tin đăng của hệ thống PRP

THIẾT KẾ HỆ THỐNG

HIỆN THỰC HỆ THỐNG

Quản lí mã nguồn

5.1.1 Lưu trữ và quản lí mã nguồn bằng Git

Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System) Giống với các ứng dụng quản lý phiên bản khác, Git giúp lưu trữ, quản lý code và các lịch sử thay đổi của nó Vì quản lý phân tán do đó mã nguồn có thể lưu trữ trên máy tính còn có ở các máy khách đã truy cập vào kho lưu trữ Tuy nhiên điểm khác biệt của Git so với các ứng dụng khác đó là cách thức mà Git lưu trữ thông tin Git sẽ lưu lại tất cả snapshot chứa các thông tin thay đổi trong các file Mỗi một snapshot sẽ là một tập hợp các dữ liệu cũ và dữ liệu các file thay đổi so với phiên bản của snapshot trước, trừ lúc khởi tạo dự án ban đầu Do đó Git có khả năng khôi phục lại phiên bản cũ khi không thể chỉnh sửa trên phiên bản hiện tại

Các lợi ích khiến Git trở nên là công cụ bắt buộc cần có trong quá trình hiện thực hệ thống:

 Dễ sử dụng, thao tác nhanh và rất an toàn

 Dễ dàng kết hợp các phân nhánh (branch), có thể giúp quy trình làm việc code theo nhóm đơn giản hơn rất nhiều

 Chỉ cần clone mã nguồn từ kho chứa hoặc clone một phiên bản thay đổi nào đó từ kho

 chứa, hoặc một nhánh nào đó từ kho chứa là bạn có thể làm việc ở mọi lúc mọi nơi

 Lưu các phiên bản mã nguồn (hay snapshot) của hệ thống do đó có thể truy xuất được các phiên bản đã được lưu

Về kho lưu trữ mã nguồn, hiện nay các phát triển ứng dụng có thể sử dụng trang web GitLab hoặc GitHub để quản lý mã nguồn của mình Mỗi cá nhân có thể đăng ký tài khoản miễn phí và sử dụng các chức năng cơ bản nhưng đủ hiệu quả để quản lý dự án của mình

Cấu trúc mã nguồn của hệ thống gồm 2 phần chính Front-end và Back-end

Mã nguồn Front-end chia làm 2 phần: cms và client tương ứng là source code cho trang quản trị và website

Hình 5.1 Cấu trúc source code cms

Source code cms gồm các thành phần sau:

 Folder src/assets: chứa các dữ liệu tĩnh như hình ảnh, logo

 Folder src/components: chứa các React component có thể tái sử dụng trong nhiều UI

 Folder src/hooks: chứa các custom hook tương tự như React hook do nhóm hiện thực

 Folder src/repositories: chứa các hàm để gọi API tới backend

 Folder src/routes: chứa định nghĩa routing, url của trang web

 Folder src/views: chứa code hiện thực UI cho các màn hình

Hình 5.2 Cấu trúc source code client

Source code client gồm các thành phần sau:

 Folder src/assets: chứa các dữ liệu tĩnh như hình ảnh, logo

 Folder src/components: chứa các React component có thể tái sử dụng trong nhiều UI

 Folder src/hooks: chứa các custom hook tương tự như React hook do nhóm hiện thực

 Folder src/repositories: chứa các hàm để gọi API tới backend

 Folder src/routes: chứa định nghĩa routing, url của trang web

 Folder src/views: chứa code hiện thực UI cho các màn hình

Hình 5.3 Cấu trúc source code backend

Source code backend gồm các thành phần sau:

 Folder authentication: code hiện thực các api liên quan đến xác thực, phân quyền user

 Folder news: code hiện thực các api liên quan đến tin tức

 Folder payment: code hiện thực các api liên quan đến thanh toán

 Folder prp: core app của hệ thống

 Folder realestates: code hiện thực các api liên quan đến bài đăng bất động sản

 Folder ebextensions: chưa cấu hình dành cho deploy Django app lên AWS Elastic Beanstalk

 Folder elasticbeanstalk: chứa cấu hình của ứng dụng Elastic Beanstalk

Tích hợp phương thức thanh toán MoMo

Quá trình tích hợp cổng thanh toán Momo vào hệ thống

Thực hiện đăng ký tài khoản doanh nghiệp tại website https://business.momo.vn của dịch vụ thanh toán ví điện tử MoMo

51 quan trọng để MoMo API nhận biết đang thực hiện giao dịch cho doanh nghiệp nào, đó là: PARTNER CODE, ACCESS KEY, SECRET KEY [7]

Hình 5.4 Thông tin để gọi MoMo API

Quá trình hiện thực một thanh toán diễn ra như Hình 5.5:

Hình 5.5 Quá trình thực hiện thanh toán trên website

KIỂM THỬ, TRIỂN KHAI VÀ ĐÁNH GIÁ HỆ THỐNG

Kiểm thử hệ thống

Sau khi hiện thực hệ thống, để đảm bảo tính sẵn sàng và ổn định của hệ thống web, nhóm đã tìm hiểu và sử dụng công cụ kiểm thử tự động đang được ứng dụng trong lĩnh vực kiểm thử phần mềm hiện nay

Bởi vì chỉ là tập sự trong lĩnh vực kiểm thử phần mềm nên nhóm sẽ chỉ chú trọng vào kiểm thử các chức năng chủ yêu, thực hiện tác vụ kiểm thử tự động Nên sẽ không tập trung trong việc hiện thực quá nhiều trường hợp cho từng tính năng

Phần mềm kiểm thử tự động nhóm sử dụng sẽ là Katalon, một phần mềm khá phổ biến trong lĩnh vực này

Công nghệ kiểm thử tự động – Katalon

Katalon Studio là công cụ kiểm thử tự động, được xây dựng dựa trên các khung tự động mã nguồn mở selenium, Appium với giao diện IDE chuyên dùng để test các api, web, mobile, PC Nó là một automation tool được sử dụng rộng rãi giúp dễ dàng tạo ra các plugin hỗ trợ các nhu cầu khách hàng khi test automation trong dự án

Katalon Studio cung cấp cho người sử dụng có một giao diện có thể hoán đổi để giúp tạo nên các trường hợp kiểm thử khác nhau, với các chế độ xem thủ công dành cho các đối tượng không chuyên và chế độ xem các tập lệnh hướng đến kiểm thử có kinh nghiệm, giúp tạo ra các kiểm thử tự động để đánh dấu các cú pháp và hoàn thành các mã thông minh

Katalon Studio theo mô hình đối tượng trang với các thành phần GUI trên các ứng dụng mobile, web, PC để ghi lại các tiện ích và lưu trữ trong kho đối tượng bạn có thể truy cập vào và sử dụng lại các trường hợp kiểm thử phần mềm khác nhau

Nó có thể thực thi từ xa và được kích hoạt bởi một hệ thống CI qua giao diện dòng lệnh và Container Docker

Lý do chọn sử dụng Katalon

 Hỗ trợ viết test case nhanh, dễ thao tác

 Hỗ trợ trên nhiều nền tảng khác nhau

 Giao diện cực kì dễ dùng và dễ hiểu

 Có hỗ trợ sử dụng các dạng external file : CSV, Excel,… Thuận tiện cho việc viết data source cho kiểm thử tự động

Một số thành phần cơ bản của Katalon:

 Test case là đặc điểm đầu vào điều kiện thực thi, quy trình thử nghiệm và kết quả mong đợi xác định để đạt được mục tiêu thử nghiệm cụ thể Katalon hỗ trợ thư mục “Test cases”, đây sẽ là nơi lưu trữ toàn bộ test case dùng để kiểm thử

 Test suite là một tập các test case sẽ được thực hiện để kiểm thử một chương trình phần mềm/ tính năng cụ thể nào đó Nhóm sẽ sử dụng từng Test suite để kiểm tra các test case cùng chung một mục tiêu Katalon hỗ trợ thư mục “Test Suites” để lưu trữ toàn bộ test suite

 Object Repository là thư mục mà Katalon cung cấp để lưu trữ các đối tượng trang

 Data Files là nơi import các external files để hỗ trợ các test case chạy nhiều trường hợp ( Login/ Register)

 Reports là thư mục lưu trữ toàn bộ các reports trong quá trình thực hiện Các đối tượng trên sẽ được tổ chức tương tự như hình bên dưới:

Hình 6.1 Cấu trúc các thành phần cơ bản của Katalon

Kế hoạch và mục tiêu của quá trình kiểm thử

Kiểm tra các tính năng cơ bản trên website sau khi được triển khai có hoạt động đúng mong đợi hay không, từ đó để phát hiện ra các lỗi mà lúc hiện thực không phát hiện ra

Phạm vi Để dễ dàng theo dõi, nhóm đã định dạng các test case theo từng phần tính năng và cho 2 website ( client, admin) riêng biệt Kế hoạch kiểm thử này hiện tại chỉ đang áp dụng cho các tính năng cơ bản được hiện thực bao gồm:

 Đăng nhập và đăng xuất tài khoản

 Tin đăng (Yêu cầu đăng tin, xem chi tiết, xem danh sách, quản lý và chỉnh sửa)

 Tin tức (Xem, tìm kiếm)

 Thông tin cá nhân (Xem, chỉnh sửa)

 Liên hệ lại (Gửi yêu cầu liên hệ lại)

 Thanh toán (Gửi yêu cầu thanh toán khi đăng tin có phí)

 Tin yêu thích (Thêm tin, xem danh sách tin, xóa tin)

 Tin tức (Xem danh sách, thêm/ sửa/xóa tin , thêm/ sửa/ xóa danh mục)

 Thanh toán (Xem lịch sử, tìm kiếm)

 Tin đăng (Đổi trạng thái tin đăng, thêm/sửa/xóa danh mục tin)

Những yêu cầu về tài nguyên

Hệ điều hành Phiên bản Katalon Trình duyệt

Bảng 6.1 Thông tin môi trường kiểm thử trên Katalon

Võ Quốc Bảo  Lập kế hoạch

Bảng 6.2 Nhân sự kiểm thử hệ thống

Tiến hành kiểm thử tự động một số tin năng quan trọng của hệ thống Mỗi thực thể sẽ được thực hiện bằng một Test Suite với những Test Case tương ứng Điều kiện chấp nhận vượt qua kiểm thử: Vượt qua tất cả các test case được định nghĩa cho từng thực thể

Danh sách các Test Suite và kết quả đạt được

Test Suite: Đăng nhập (Client)

Test case Dữ liệu kiểm thử Kết quả mong đợi Đánh giá kết quả đạt được Đăng nhập thành công với username

Thành công Đạt Đăng nhập thành công với email

Email: admin@email.com Password: secret

Thành công Đạt Đăng nhập thất bại với sai thông tin

Thông báo lỗi Đạt Đăng nhập thất bại do không điền username

Thông báo lỗi Đạt Đăng nhập thất bại do không điền pass

Bảng 6.3 Test suite Đăng nhập (client)

Hình 6.2 Kết quả kiểm thử đăng nhập (client)

Test Suite: Đăng ký (Client)

Test case Dữ liệu kiểm thử Kết quả mong đợi Đánh giá kết quả đạt được Đăng ký thất bại với trùng username

Thông báo lỗi Đạt Đăng ký thất bại với Password và confirm password không trùng

Thông báo lỗi Đạt Đăng ký thất bại với trùng email Username: admin1

Password: 123456 Email: admin@email.com

Thông báo lỗi Đạt Đăng ký thất bại do không điền thông tin địa chỉ

Thông báo lỗi Đạt Đăng ký thành công khi điền đầy đủ thông tin

81 toàn bộ thông tin Password: lỗi

Bảng 6.4 Test suite đăng ký (client)

Hình 6.3 Kết quả kiểm thử đăng kí (client)

Test case Kết quả mong đợi Đánh giá kết quả đạt được

Thanh toán khi yêu cầu đăng tin Thành công Đạt

Bảng 6.5 Test suite thanh toán

Hình 6.4 Kết quả kiểm thử thanh toán

Test Suite Lịch sử thanh toán

Test case Kết quả mong đợi Đánh giá kết quả đạt được

Xem lịch sử thanh toán Thành công Đạt

Tìm kiếm lịch sử thanh toán Thành công Đạt

Bảng 6.6 Test Suite Lịch sử thanh toán

Hình 6.5 Kết quả kiểm thử xem lịch sử thanh toán

Test Suite: Thông tin cá nhân

Test case Kết quả mong đợi Đánh giá kết quả đạt được

Xem thông tin cá nhân Thành công Đạt

Sửa đổi thông tin Thành công Đạt

Bảng 6.7 Test Suite Thông tin cá nhân

Hình 6.6 Kết quả kiểm thử xem, thay đổi thông tin cá nhân

Test case Yêu cầu Kết quả mong đợi Đánh giá kết quả đạt được

Yêu cầu đăng tin Đăng nhập

Sửa đổi tin đăng Đăng nhập

Xóa bài đăng Đăng nhập

Thành công Đạt Xem chi tiết bài đăng Không Thành công Đạt

Xem danh sách bài đăng

Bảng 6.8 Test Suite Tin đăng

Hình 6.7 Kết quả kiểm thử tạo, sửa, xóa, xem bài đăng

Test case Kết quả mong đợi Đánh giá kết quả đạt được

Xem chi tiết tin tức Thành công Đạt

Xem danh sách tin tức Thành công Đạt

Bảng 6.9 Test Suite: Tin tức

Hình 6.8 Kết quả kiểm thử xem tin tức

Test Suite: Liên hệ lại

Test case Kết quả mong đợi Đánh giá kết quả đạt được

Tạo yêu cầu liên hệ lại Thành công Đạt

Bảng 6.10 Test Suite Liên hệ lại

Hình 6.9 Kết quả kiểm thử tạo yêu cầu liên hệ lại

Test Suite: Tin yêu thích

Test case Kết quả mong đợi Đánh giá kết quả đạt được

Thêm tin yêu thích Thành công Đạt

Xem danh sách tin yêu thích Thành công Đạt

Xóa tin yêu thích Thành công Đạt

Bảng 6.11 Test Suite Tin yêu thích

Hình 6.10 Kết quả kiểm thử lưu tin đăng, xem tin đăng đã lưu

Test Suite: Thống kê (Admin)

Test case Kết quả mong đợi Đánh giá kết quả đạt được

Xem thống kê Thành công Đạt

Bảng 6.12 Test Suite: Thống kê (Admin)

Hình 6.11 Kết quả kiểm thử xem thống kê

Triển khai hệ thống

6.2.1 Triển khai hệ thống trên nền tảng Cloud

Hệ thống của nhóm được triển khai trên nền tảng Amazon Web Service (AWS) Đây là một nền tảng điện toán đám mây được phát triển và phân phối bởi Amazon Trong đó, nhóm chọn ra các dịch vụ sau để triển khai hệ thống:

 Elastic Beanstalk: một dịch vụ dễ sử dụng để triển khai và mở rộng các ứng dụng web và dịch vụ được phát triển bằng Java, NET, PHP, Node.js, Python, Ruby, Go và Docker trên những máy chủ quen thuộc như Apache, Nginx, Passenger và IIS [8]

 Elastic Compute Cloud (EC2): một dịch cho phép các nhà phát triển xây dựng và triển khai một cloud server

 Simple Storage Service (S3): một dịch vụ cho phép sao lưu dữ liệu trực tuyến

 Relational Database Service (RDS): một dịch vụ cho phép triển khai và quản lí các hệ cơ sở dữ liệu quan hệ như PostgreSQL, MySQL,…

 Route 53: một dịch vụ về DNS giúp nhà phát triển định tuyến người dùng đến các ứng dụng Internet

 CloudFront: một dịch vụ mạng phân phối nội dung (CDN)

Ngoài ra, nhóm còn sử dụng Namecheap để hỗ trợ cho quá trình triển khai hệ thống, cụ thể là dùng để mua một tên miền cho hệ thống website Namecheap là một trong những nhà cung cấp tên miền lớn và uy tín, cung cấp các dịch vụ đăng ký và chuyển đổi tên miền, ẩn thông tin miền, chứng chỉ số (SSL Certificate),

Hình 6.12 Kiến trúc triển khai của hệ thống

Các bước triển khai cho Front-end

Bước 1 Chạy lệnh npm run build cho 2 folder source code client và cms của Front-end Bước 2 Tạo 2 bucket prp-admin và prp-client trên AWS S3

Bước 3 Upload toàn bộ folder build của client lên bucket prp-client và folder build của cms lên bucket prp-admin

Hình 6 15 Một phần cấu hình CloudFront distribution của bucket prp-client

Hình 6.16 Một phần cấu hình CloudFront distribution của bucket prp-client

Hình 6.17 Một phần cấu hình CloudFront distribution của bucket prp-admin

Hình 6.18 Một phần cấu hình CloudFront distribution của bucket prp-admin

Bước 5 Tạo một hosted zone trên Route 53 với domain name là topprp.com

Bước 6 Trong hosted zone topprp.com, tạo 2 record với 2 domain topprp.com và cms.topprp.com lần lượt trỏ tới 2 CloudFront distribution đã tạo ở bước 4

Hình 6.19 Cấu hình Route 53 record cho website Distribution của prp-admin

Hình 6.20 Cấu hình Route 53 record cho trang quản trị

Các bước triển khai cho Back-end

Bước 1 Dùng dịch vụ RDS để tạo một PostgreSQL database instance

Hình 6.21 Cấu hình AWS RDS cho hệ thống

Bước 2 Dùng CLI tool awsebcli để triển khải Django app lên Elastic Beanstalk

Sau khi triển khai thành công, ta sẽ được một ứng dụng trên Elastic Beanstalk được kết nối đến một EC2 instance

Hình 6.22 Cấu hình backend trên AWS Elastic Beanstalk

Hình 6.23 Cấu hình backend trên AWS EC2

92 Bước 3 Trong hosted zone topprp.com, tạo một record với domain api.prp.com trỏ tới ứng dụng vừa triển khai trên Elastic Beanstalk ở bước 2

Hình 6.24 Cấu hình Route 53 record cho backend

TỔNG KẾT, ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

Tổng kết kết quả đạt được

7.1.1 Đối với nhiệm vụ đề tài

 Tìm hiểu các nghiệp vụ và tính năng cơ bản, hữu ích để xây dựng hệ thống

PRP phục vụ các tính năng và tiện ích cho một website đăng tin bất động sản, nơi mà bất kì ai cũng có thể chủ động giới thiệu bất động sản đến với khách hàng

 Tìm hiểu và vận dụng các kỹ năng về lập trình front-end website để tạo ra những giao diện dễ nhìn, dễ hiểu ngay cả với những người không rành về công nghệ

 Tìm hiểu và vận dụng các kỹ năng lập trình back-end để xây dựng server cho hệ thống

 Sử dụng các API được cung cấp bởi bên thứ ba như email để gửi các thông báo, nhắc nhở đến người dùng API của MoMo để thực hiện thanh toán trực tuyến trong hệ thống

 Tìm hiểu và triển khai hệ thống trên nên tảng Amazon Web Services, sử dụng Namecheap để đăng ký domain

 Website đạt chuẩn yêu cầu Google PageSpeed Insights (Google Lighthouse) trên 50 điểm, thời gian phản hồi từ hệ thống đạt mức ổn định

7.1.2 Đối với lợi ích kinh tế

 Để đáp ứng nhu cầu giới thiệu, quảng bá bất động sản của người môi giới/ chủ sở hữu đến khách hàng

 Khách hàng có thể quản lý các thông bất động sản mà mình đã cung cấp

 Phân quyền vai trò khác nhau giữa khách hàng và quản lý hệ thống để bảo mật các thông tin tốt hơn

 Từ những tính năng đăng bài, yêu cầu liên hệ, gửi email sẽ giúp cho nhà môi giới có thể nhận biết được sự quan tâm về bất động sản của mình

 Bên cạnh đó, người quản lý hệ thống có thể nắm được tất cả các sự tương tác trên hệ thống, qua đó có thể đánh giá hệ thống và tìm hướng phát triển tốt hơn

7.1.3 Đối với cơ sở lý thuyết và công nghệ Để hiện thực hệ thống, nhóm tìm hiểu các công nghệ phù hợp với những yêu cầu nghiệp vụ Thông qua quá trình đó, nhóm có thêm cơ hội để hiểu biết, học hỏi thêm những công nghệ phát triển web, công nghệ hiện thực máy chủ, quá trình deploy một sản phẩm thực tế, có thể kể đến như sau:

98 tiến hành tích hợp thêm các API bên thứ ba cho các dịch vụ như:

 Dịch vụ thanh toán: Momo API

 Nhóm đã triển khai hệ thống lên môi trường đám mây thông qua các dịch vụ của AWS như: EC2, RDS, S3, Route 53, Elastic Beanstalk, CloudFront

 Về vấn đề cải thiện hiệu suất hệ thống, nhóm đã tìm hiểu và áp dụng kỹ thuật gzip để tăng hiệu năng ứng dụng

7.1.4 Đối với quy trình phát triển phần mềm

Từ những nền tảng công nghệ, nhóm đã tiến hành thực hiện những bước để phát triển hệ thống như sau:

 Tìm hiểu nghiệp vụ các như batdongsan.vn, rever.vn, Qua đó so sánh với những đề xuất để phát triển hệ thống

 Thiết kệ giao diện người dùng trên Figma

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

 Hiện thực hệ thống thông qua các nền tảng:

 React: hiện thực giao diện ứng dụng web

 Django: được sử dụng để hiện thực máy chủ

 Kiểm thử hệ thống thông qua cách kiểm thử thủ công như việc kiểm thử API backend qua Postman, kiểm thử tự động qua ứng dụng Katalon

 Triển khai hệ thống lên Cloud

 Sau khi triển khai thì để hoàn thiện hệ thống, nhóm đã thực hiện đánh giá hiệu suất thông qua Google PageSpeed Insights (Google Lighthouse) Sau đó, nhóm cũng đã có những giải pháp để cải thiện hiệu suất của hệ thống.

Đánh giá kết quả đạt được

 Cung cấp một số tính năng cơ bản cho phép đăng tin bất động sản, quản lý hệ thống hay là khách hàng tự quản lý các thông tin của mình trên hệ thống

 Thiết kế giao diện dễ nhìn, thuận tiện cho cả khách hàng và quản lý sử dụng

 Tài khoản trong hệ thống được phân quyền để hỗ trợ quản lý bảo mật thông tin

 Tính thực tiễn, website được triển khai trên nền tảng AWS nên bất kì ai cũng có thể sử dụng

 Chưa hỗ trợ đa ngôn ngữ trên hệ thống

 Giao diện chưa thực sự sinh động để thu hút người dùng

 Chưa có hệ thống mobile để dễ dàng cho việc sử dụng và quản lý

 Các tính năng nâng cao cần được bổ sung như SMS, …

 Chưa có hệ thống nhắn tin trực tuyến

99 Qua việc hiện thực và triển khai hệ thống, nhóm đã rút ra nhiều kinh nghiệm trong chuyên môn mà nhóm cần cải thiện Trong tương lai thì nhóm muốn phát triển mở rộng hệ thống thêm như sau:

 Tích hợp thêm nhiều API tiện ích bên thứ ba như nhắn tin, định vị vị trí,

 Nâng cấp giao diện để thu hút người dùng hơn

 Hỗ trợ thêm việc các tính năng cho nhân viên có thể quản lý những bất động sản được cung cấp vào hệ thống, quản lý KPIs, doanh số,

 Xây dựng hệ thống mobile để tiện ích trong việc quản lý, sử dụng

Ngày đăng: 30/07/2024, 23:44

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

TÀI LIỆU LIÊN QUAN