Scenario Use-case “Đăng ký” Bảng 2.5.1 Scenario Use-case “Đăng ký” Tên Use case Đăng ký tài khoản Mô tả Người dùng muốn đăng ký tài khoản Actors Khách vãng lai Đầu vào Thông tin tài khoả
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 5Tên đề tài: Xây dựng website tìm phòng trọ tại thành phố Đà Nẵng.
Sinh viên thực hiện: Lê Văn Thắng
Mã SV: 1811505310439 Lớp: 18T4
Đề tài “Xây dựng website tìm phòng trọ tại thành phố Đà Nẵng” cho phépngười dùng có thể dễ dàng tìm kiếm phòng hoặc đăng tin cho thuê phòng trên địabàn thành phố Đà Nẵng Với người có nhu cầu thuê trọ, việc tìm kiếm theo hìnhthức truyền thống sẽ rất khó khăn, mất thời gian và công sức để tìm những phòngtrọ phù hợp với tiêu chí của mình Đối với người cho thuê, việc tiếp cận với kháchhàng gặp khá nhiều khó khăn do vị trí, cách thức truyền đạt hạn chế Giờ đây hệthống mạng ra đời, chỉ với một chiếc máy tính được kết nối mạng là chúng ta có thểđăng tin và tìm kiếm các phòng trọ ở bất cứ địa điểm nào, giá cả phù hợp với nhucầu một cách dễ dàng
Website tìm và đăng tin cho thuê phòng áp dụng tại thành phố Đà Nẵng đượcxây dựng dựa trên ngôn ngữ lập trình PHP, ứng dụng Laravel framework, sử dụng
hệ quản trị cơ sở dữ liệu MySQL cùng các công cụ hỗ trợ như Bootstrap, JQuery,Ajax
Website với các chức năng chính như: Người dùng có thể tìm kiếm phòngtrọ, xem danh sách phòng trọ, chi tiết phòng trọ, Chủ trọ có thể đăng nhập, đăngtin cho thuê phòng, quản lý tin đăng, … Quản trị viên có thể quản lý tài khoản, quản
lý bài viết, quản lý tin đăng, quản lý danh mục, …
Trang 6Giảng viên hướng dẫn: ThS Phạm Thị Trà My
Sinh viên thực hiện: Lê Văn Thắng Mã SV: 1811505310439
1 Tên đề tài:
Xây dựng website tìm phòng trọ tại thành phố Đà Nẵng
2 Các số liệu, tài liệu ban đầu:
Tham khảo cơ cấu tổ chức của một số website: mogi.vn, phongtro123.com
Các số liệu về nhu cầu tìm kiếm phòng, nhu cầu đăng tin cho thuê phòng đượclấy từ bạn bè, người thân hiện đang ở Đà Nẵng và dự định đến Đà Nẵng
Tài liệu lập trình, tham khảo được lấy từ nhiều nguồn, bài viết và các videohướng dẫn trên youtube
3 Nội dung chính của đồ án:
Quá trình xây dựng website tìm phòng trọ tại thành phố Đà Nẵng bao gồm các côngviệc:
Thu thập thông tin tài liệu liên quan và khảo sát thực tế
Phân tích thiết kế các chức năng của hệ thống
Phân tích thiết kế cơ sở dữ liệu
Thiết kế giao diện cho các chức năng
Xây dựng hệ thống Website
Kiểm thử chương trình
Hoàn thành báo cáo tổng hợp
4 Các sản phẩm dự kiến
Hoàn thành website tìm phòng trọ tại thành phố Đà Nẵng
File báo cáo hoàn chỉnh
Trang 7Lời đầu tiên, em xin gửi lời cảm ơn đến quý thầy cô của trường Đại học Sưphạm Kỹ thuật - Đại học Đà Nẵng và đặc biệt là quý thầy cô thuộc ngành Côngnghệ thông tin – khoa Công nghệ số của trường đã truyền đạt những kiến thức cầnthiết và những kinh nghiệm quý báu cho chúng em trong suốt thời gian 4 năm trêngiảng đường để em có thể hoàn thành đồ án tốt nghiệp này
Em cũng xin gửi lời cảm ơn chân thành tới cô ThS Phạm Thị Trà My đãnhiệt tình hướng dẫn giúp đỡ em những kiến thức bài học, cũng như kiến thức thực
tế trong quá trình thực hiện đề tài đồ án tốt nghiệp này
Trong quá trình thực hiện đề tài, mặc dù đã cố gắng hoàn thành đồ án trongphạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếusót Vì vậy em mong quý thầy, cô thông cảm và góp ý để em có thể hoàn thiện đềtài Và những lời góp ý đó có thể giúp em có thể tránh được những sai lầm sau này
Em xin chân thành cảm ơn!
Trang 8Tôi xin cam đoan:
1 Những nội dung trong luận văn này do em thực hiện dưới sự hướng dẫn của cô ThS Phạm Thị Trà My.
2 Mọi tham khảo trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu hoàn toàn trách nhiệm.
Sinh viên thực hiện
Lê Văn Thắng
Trang 9MỤC LỤC iii
DANH MỤC BẢNG BIỂU vii
DANH MỤC HÌNH VẼ viii
DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT x
DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH xi
MỞ ĐẦU 12
1 Mục tiêu đề tài 12
2 Đối tượng nghiên cứu và phạm vi nghiên cứu 13
a) Đối tượng nghiên cứu 13
b) Phạm vi nghiên cứu 13
3 Phương pháp nghiên cứu 13
4 Giải pháp công nghệ 13
5 Cấu trúc đồ án 14
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 15
1.1 Ngôn ngữ lập trình PHP 15
1.1.1 PHP là gì? 15
1.1.2 Lịch sử phát triển 15
1.2 Laravel Framework 16
1.2.1 Tổng quan về Laravel Framework 16
1.2.2 Ưu điểm của Laravel 16
1.2.3 Mô hình MVC của Laravel 17
1.3 Hệ quản trị cơ sở dữ liệu MySQL 18
1.4 JQuery và Ajax 19
1.4.1 JQuery 19
1.4.2 Ajax 19
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 20
2.1 Khảo sát hệ thống 20
2.1.1 Khảo sát thực tế 20
2.1.2 Khảo sát người dùng 20
2.1.3 Xác định các tác nhân 20
2.2 Đặc tả yêu cầu nghiệp vụ 20
2.2.1 Khách vãng lai 20
2.2.2 Chủ trọ 20
Trang 102.3 Đặc tả yêu cầu phần mềm 21
2.3.1 Các yêu cầu chức năng 21
2.3.2 Yêu cầu phi chức năng 21
2.4 Biểu đồ Use Case 22
2.4.1 Biểu đồ tổng quát 22
2.4.2 Khách vãng lai và Chủ trọ 23
2.4.3 Quản trị viên 24
2.5 Scenario cho Use Case 25
2.5.1 Scenario Use-case “Đăng ký” 25
2.5.2 Scenario Use-case “Đăng nhập” 26
2.5.3 Scenario Use-case “Xem danh sách phòng trọ” 27
2.5.4 Scenario Use-case “Tìm kiếm phòng trọ” 27
2.5.5 Scenario Use-case “Xem danh sách bài viết” 28
2.5.6 Scenario Use-case “Xem chi tiết phòng trọ” 28
2.5.7 Scenario Use-case “Đăng tin” 29
2.5.8 Scenario Use-case “Nạp tiền” 30
2.5.9 Scenario Use-case “Xem lịch sử nạp tiền” 31
2.5.10 Scenario Use-case “Xem lịch sử thanh toán” 32
2.5.11 Scenario Use-case “Quản lý danh mục” 32
2.5.12 Scenario Use-case “Quản lý địa điểm” 33
2.5.13 Scenario Use-case “Quản lý tài khoản” 34
2.5.14 Scenario Use-case “Quản lý phòng trọ” 35
2.5.15 Scenario Use-case “Quản lý giao dịch” 36
2.5.16 Scenario Use-case “Quản lý bài viết” 37
2.6 Sơ đồ hoạt động 38
2.6.1 Đăng ký 38
2.6.2 Đăng nhập 39
2.6.3 Xem danh sách phòng trọ 40
2.6.4 Tìm kiếm phòng trọ 41
2.6.5 Xem danh sách bài viết 42
2.6.6 Xem chi tiết phòng trọ 43
2.6.7 Đăng tin 44
2.6.8 Nạp tiền 45
Trang 112.6.10 Quản lý Địa điểm 47
2.6.11 Quản lý tài khoản 48
2.6.12 Quản lý phòng trọ 49
2.6.13 Quản lý giao dịch 50
2.6.14 Quản lý bài viết 51
2.7 Sơ đồ lớp 52
2.8 Sơ đồ ERD 53
2.9 Thiết kế bảng cơ sở dữ liệu 54
2.9.1 Bảng Admins 54
2.9.2 Bảng Users 54
2.9.3 Bảng Rooms 56
2.9.4 Bảng Categories 57
2.9.5 Bảng Locations 57
2.9.6 Bảng Images 59
2.9.7 Bảng Codes 59
2.9.8 Bảng Articles 60
2.9.9 Bảng Payment_history 61
2.9.10 Bảng Recharge_history 61
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH 63
3.1 Công cụ xây dựng chương trình 63
3.2 Giao diện chương trình 64
3.2.1 Giao diện trang chủ 64
3.2.2 Giao diện đăng ký 65
3.2.3 Giao diện đăng nhập 65
3.2.4 Giao diện cập nhật thông tin cá nhân 66
3.2.5 Giao diện danh sách phòng trọ cho thuê 67
3.2.6 Giao diện danh sách bài viết 68
3.2.7 Giao diện chi tiết phòng trọ 69
3.2.8 Giao diện Nạp tiền 70
3.2.9 Giao diện bảng giá 71
3.2.10 Giao diện lịch sử nạp tiền 71
3.2.11 Giao diện lịch sử thanh toán 72
3.2.12 Giao diện đăng tin 73
Trang 123.2.14 Giao diện Thanh toán tin đăng 74
3.2.15 Giao diện đăng nhập quản trị viên 74
3.2.16 Giao diện trang chủ quản trị viên 75
3.2.17 Giao diện quản lý địa điểm 75
3.2.18 Giao diện quản lý danh mục 76
3.2.19 Giao diện quản lý tài khoản 76
3.2.20 Giao diện quản lý phòng trọ 77
3.2.21 Giao diện quản lý giao dịch 77
3.2.22 Giao diện quản lý thanh toán 78
3.2.23 Giao diện quản lý bài viết 78
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 80
TÀI LIỆU THAM KHẢO 81
Trang 13Bảng 2.5.1 Scenario Use-case “Đăng ký” 25
Bảng 2.5.2 Scenario Use-case “Đăng nhập” 26
Bảng 2.5.3 Scenario Use-case “Xem danh sách phòng trọ” 27
Bảng 2.5.4 Scenario Use-case “Tìm kiếm tìm kiếm phòng trọ” 27
Bảng 2.5.5 Scenario Use-case “Xem danh sách bài viết” 28
Bảng 2.5.6 Scenario Use-case “Xem chi tiết phòng trọ” 28
Bảng 2.5.7 Scenario Use-case “Đăng tin” 29
Bảng 2.5.8 Scenario Use-case “Nạp tiền” 30
Bảng 2.5.9 Scenario Use-case “Xem lịch sử nạp tiền” 31
Bảng 2.5.10 Scenario Use-case “Xem lịch sử thanh toán” 32
Bảng 2.5.11 Scenario Use-case “Quản lý danh mục” 32
Bảng 2.5.12 Scenario Use-case “Quản lý địa điểm” 33
Bảng 2.5.13 Scenario Use-case “Quản lý tài khoản” 34
Bảng 2.5.14 Scenario Use-case “Quản lý phòng trọ” 35
Bảng 2.5.15 Scenario Use-case “Quản lý giao dịch” 36
Bảng 2.5.16 Scenario Use-case “Quản lý bài viết” 37
Bảng 2.9.1 Admins 54
Bảng 2.9.2 Users 54
Bảng 2.9.3 Rooms 56
Bảng 2.10.4 Categories 57
Bảng 2.9.5 Locations 57
Bảng 2.9.6 Images 59
Bảng 2.9.7 Codes 59
Bảng 2.9.8 Articles 60
Bảng 2.9.9 Payment_history 61
Bảng 2.9.10 Recharge_history 61
Trang 14Hình 1.2.1 Laravel framework 16
Hình 1.2.3 Mô hình MVC của Laravel 17
Hình 1.3.1 Mô hình hoạt động của MySQL 18
Hình 2.4.1 Use case tổng quát 22
Hình 2.4.2 Use case cho Actor Khách vãng lai và Chủ trọ 23
Hình 2.4.5 Use case cho Actor Quản trị viên 24
Hình 2.6.1 Activity “Đăng ký” 38
Hình 2.6.2 Activity “Đăng nhập” 39
Hình 2.6.3 Activity “Xem danh sách phòng trọ” 40
Hình 2.6.4 Activity “Tìm kiếm phòng trọ” 41
Hình 2.6.5 Activity “Xem danh sách bài viết” 42
Hình 2.6.6 Activity “Xem chi tiết phòng” 43
Hình 2.6.7 Activity “Đăng tin” 44
Hình 2.6.8 Activity “Thanh toán online” 45
Hình 2.6.9 Activity “Quản lý Danh mục” 46
Hình 2.6.10 Activity “Quản lý Địa điểm” 47
Hình 2.6.11 Activity “Quản lý tài khoản” 48
Hình 2.6.12 Activity “Quản lý phòng trọ” 49
Hình 2.6.13 Activity “Quản lý giao dịch” 50
Hình 2.6.14 Activity “Quản lý bài viết” 51
Hình 2.7 Sơ đồ lớp 52
Hình 2.8 Sơ đồ ERD 53
Hình 3.1.1 Giao diện XAMPP 63
Hình 3.1.2 Màn command line cài đặt thành công composer 63
Hình 3.1.3 Giao diện Visual Studio Code 64
Hình 3.2.1 Giao diện “Trang chủ” 64
Hình 3.2.2 Giao diện “Đăng ký” 65
Hình 3.2.3 Giao diện “Đăng nhập” 65
Hình 3.2.4 Giao diện “Cập nhật thông tin cá nhân” 66
Hình 3.2.5 Giao diện “Danh sách phòng trọ” 67
Hình 3.2.6 Giao diện “Danh sách bài viết” 68
Hình 3.2.7 Giao diện “Chi tiết phòng trọ” 69
Hình 3.2.8 Giao diện “Nạp tiền” 70
Hình 3.2.9 Giao diện “Bảng giá” 71
Trang 15Hình 3.2.11 Giao diện “Lịch sử thanh toán” 72
Hình 3.2.12 Giao diện “Đăng tin” 73
Hình 3.2.13 Giao diện “Danh sách tin đăng” 73
Hình 3.2.14 Giao diện “Thanh toán tin đăng” 74
Hình 3.2.15 Giao diện “Đăng nhập quản trị viên” 74
Hình 3.2.16 Giao diện “Trang chủ quản trị viên” 75
Hình 3.2.17 Giao diện “Quản lý địa điểm” 75
Hình 3.2.18 Giao diện “Quản lý danh mục” 76
Hình 3.2.19 Giao diện “Quản lý tài khoản” 76
Hình 3.2.20 Giao diện “Quản lý phòng trọ” 77
Hình 3.2.21 Giao diện “Quản lý giao dịch” 77
Hình 3.2.22 Giao diện “Quản lý thanh toán” 78
Hình 3.2.23 Giao diện “Quản lý bài viết” 78
Trang 16STT CHỮ VIẾT TẮT GIẢI NGHĨA
Trang 17STT CHỮ VIÊTTẮT GIẢI NGHĨA NGHĨA TIẾNG VIỆT
1 HTML Hypertext Markup
Language Ngôn ngữ đánh dấu siêu văn bản
2 CSS Cascading Style Sheets Ngôn ngữ định dạng các phần tử được tạo ra bởi ngôn ngữ đánh dấu (HTML)
3 XML Extensible Markup
Language Ngôn ngữ đánh dấu mở rộng
4 NPM Node package manager Công cụ tạo và quản lý các thư viện lậptrình Javascript cho Node.js
5 PHP Hypertext Preprocessor Ngôn ngữ lập trình PHP
6 RDBMS Relational Database Management System, Hệ thống quản trị cơ sở dữ liệu mã nguồn mở
7 SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúc
Controller Dữ liệu – giao diện – bộ điều khiển
Trang 18MỞ ĐẦU
Ngày nay, CNTT và đặc biệt là Internet đã giúp cho con người thay đổi cáchsống, cách liên lạc, cách làm việc, cách tiếp cận các nguồn thông tin đa dạng vànhanh chóng Mạng Internet ra đời là trợ thủ đắc lực giúp cho những người có nhucầu tìm kiếm các tài nguyên nói chung, hay tìm kiếm các phòng trọ nói riêng trởnên dễ dàng hơn bao giờ hết Với người có nhu cầu thuê trọ, việc tìm kiếm theohình thức truyền thống sẽ rất khó khăn, mất thời gian và công sức để tìm nhữngphòng trọ phù hợp với tiêu chí của mình Đối với người cho thuê, việc tiếp cận vớikhách hàng gặp khá nhiều khó khăn do vị trí, cách thức truyền đạt hạn chế Giờ đây
hệ thống mạng ra đời, chỉ với một chiếc máy tính được kết nối mạng là chúng ta cóthể đăng tin và tìm kiếm các phòng trọ ở bất cứ địa điểm nào, giá cả phù hợp vớinhu cầu một cách dễ dàng
Từ những lý do trên, em quyết định chọn đề tài “Xây dựng website tìm phòngtrọ tại thành phố Đà Nẵng” Với mong muốn tạo ra trang website, hỗ trợ ngườidùng tìm kiếm và đăng tin cho thuê phòng trọ phù hợp với nhu cầu người dùng tạithành phố Đà Nẵng
1 Mục tiêu đề tài
Đề tài hướng đến xây dựng website tìm phòng trọ tại thành phố Đà Nẵngnhằm:
- Tạo ra một nền tảng trực tuyến giúp người dùng dễ dàng tìm kiếm
phòng trọ, giúp họ tìm được một căn phòng phù hợp với nhu cầu và tiếtkiệm thời gian
- Hỗ trợ chủ nhà trọ tiết kiệm thời gian và công sức trong việc quảng bá
và cho thuê phòng trọ của họ Chủ nhà trọ có thể dễ dàng đăng tin chothuê phòng trọ của họ lên website và giúp cho phòng trọ của họ đượcnhiều người biết đến
Trang 192 Đối tượng nghiên cứu và phạm vi nghiên cứu
a) Đối tượng nghiên cứu
- Nghiên cứu, tìm hiểu nhu cầu và mong muốn của người dùng, bao gồmngười thuê phòng phòng và người đăng tin cho thuê phòng
- Nghiên cứu ứng dụng các công cụ và ngôn ngữ lập trình để xây dựngwebsite tìm và đăng tin cho thuê phòng, cụ thể là ngôn ngữ lập trình PHP và ứngdụng thư viện Laravel framework được cài đặt và chạy trên ứng dụng XAMPP,Visual Studio Code
- Nghiên cứu tạo dựng hệ thống CSDL nhằm đáp ứng và tạo điều kiện choviệc lưu trữ, truy xuất thông tin phòng, khu vực phòng trọ
b) Phạm vi nghiên cứu
Đề tài nghiên cứu và thực nghiệm trong phạm vi thành phố Đà Nẵng
3 Phương pháp nghiên cứu
Khảo sát người dùng để tìm hiểu nhu cầu và mong muốn của họ khi sử dụngwebsite Phân tích các website tìm kiếm và đăng tin cho thuê phòng tồn tại để tìmhiểu ưu điểm và nhược điểm của chúng Nghiên cứu thông qua tài liệu, số liệu, báocáo, báo chí nhằm xây dựng cơ sở dữ liệu, cơ sở lý thuyết và các biện pháp giảiquyết vấn đề thực trạng
- Tạo server ảo: XAMPP.
- Trình soạn thảo mã nguồn: Visual Studio Code.
d)
Trang 205 Cấu trúc đồ án
MỞ ĐẦU
- Giới thiệu lý do và các mục tiêu mà đề tài cần giải quyết, phạm vi nghiên
cứu của đề tài Giới thiệu tóm tắt nội dung sẽ được trình bày trong cácchương tiếp theo
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
- Chương này trình bày tổng quan về các ngôn ngữ lập trình, công nghệ,
khái niệm thường xuyên sử dụng trong phạm vi đề tài này Nhằm hỗ trợ
quá trình phát triển ứng dụng
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
- Phân tích các tác nhân và chức năng của từng tác nhân, yêu cầu phi chức
năng của hệ thống Thiết kế sơ đồ use-case, sơ đồ hoạt động, sơ đồ ERD.Thiết kế cơ sở dữ liệu Xây dựng kịch bản cho từng use-case trong hệthống
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH
- Xây dựng giao diện và chức năng của hệ thống.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
- Trình bày những vấn đề đã giải quyết đồng thời trình bày hướng phát
triển
Trang 21CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
PHP được xây dựng và phát triển bởi cộng đồng và có sự đóng góp rất lớncủa Zend Inc Phiên bản PHP gần đây nhất là 8.2 được phát hành năm 2023
và chấm dứt phát triển PHP/FI 2.0 PHP 3.0 cung cấp cho người dùng cuối một cơ
sở hạ tầng dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau Cho phépngười dùng có thể mở rộng theo module Chính điều này làm cho PHP3 thành công
so với PHP2 Lúc này chính thức đặt tên ngắn gọn là PHP (HypertextPreprocessor)
- PHP 4.0: Được công bố năm 2000 tốc độ xử lý được cải thiện, PHP 4.0đem đến các tính năng chủ yếu khác gồm có hỗ trợ nhiều máy chủ web, hỗ trợsession HTTP, tạo Đầu ra buffering, nhiều cách xử lý dữ liệu Đầu ra bảo mật hơn
và cung cấp một vài các cấu trúc ngôn ngữ mới Với PHP 4, số nhà phát triển dùngPHP lên đến hàng trăm nghìn và hàng triệu trang web dùng PHP, chiếm 20% số tênmiền trên mạng Internet Team phát triển PHP lên tới con số hàng nghìn người vànhiều người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL
và tài liệu cho PHP
Trang 22- PHP 5.0: Bản chính thức ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗicác bản kiểm thử bao gồm Beta 4, RC 1, RC2, RC3 Mặc dù đây là phiên bản sảnxuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi, đáng kể là lỗi xác thực HTTP.
- PHP 6.0: Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyếtcủa PHP ở phiên bản hiện tại, ví dụ: hỗ trợ namespace; hỗ trợ Unicode; sử dụngPDO làm API chuẩn cho việc truy cập cơ sở dữ liệu, các API cũ sẽ bị đưa ra thànhthư viện PECL Phiên bản 6 này chỉ dùng ở việc nghiên cứu và thử nghiệm Saunày PHP bỏ hẳn phiên bản 6 và lên 7
- PHP 7.0: Với việc sử dụng bộ nhân Zend Engine mới PHPNG cho tốc độnhanh gấp 2 lần Ngoài ra ở phiên bản này còn thêm vào rất nhiều cú pháp, tínhnăng mới giúp cho PHP trở nên mạnh mẽ hơn [CITATION PHP \l 1033 ]
1.2 Laravel Framework
1.2.1 Tổng quan về Laravel Framework
Hình 1.2.1 Laravel frameworkLaravel là PHP Framework miễn phí, mã nguồn mở, được tạo bởi TaylorOtwell và dành cho việc phát triển các ứng dụng web theo mô hình kiến trúc môhình MVC và dựa trên Symfony PHP Framework Một số tính năng của Laravelnhư là sử dụng hệ thống đóng gói module, quản lý package (Composer), hỗ trợnhiều hệ quản trị CSDL quan hệ (MySQL, MariaDB, SQLite, PostgreSQL, …), cáctiện ích hỗ trợ triển khai và bảo trì ứng dụng[CITATION Lar \l 1033 ]
1.2.2 Ưu điểm của Laravel
Một số ưu điểm của Laravel so với các framework khác:
- Sử dụng mô hình MVC (Model – View – Controller).
- Hệ thống xác thực (Authentication) và ủy quyền (Authorization) tuyệt
vời
- Có hệ thống tài liệu chi tiết, dễ hiểu.
- Cộng đồng hỗ trợ đông đảo.
- Tích hợp công cụ Artisan – Công cụ quản lý dòng lệnh.
- Sử dụng composer để quản lý PHP package.
- Sử dụng NPM để quản lý các gói Javascript.
Trang 23- Hỗ trợ Eloquent ORM, Query Builder, Template Engine (Blade).
- Hỗ trợ routing mềm dẻo.
Trang 241.2.3 Mô hình MVC của Laravel
MVC là viết tắt của cụm từ “Model-View-Controller“ MVC là mô hìnhđược sử dụng trong kỹ thuật phần mềm Nó mô phỏng mẫu kiến trúc để tạo dựnggiao diện người dùng trên máy tính Mô hình MVC thường có 3 phần chính và cả 3đều kết nối cùng nhau – dữ liệu (model), giao diện (view) và bộ điều khiển(controller) MVC có thể được chia thành 3 phần trong source code với các vai trò
và nhiệm vụ độc lập[CITATION Lar \l 1033 ]
Hình 1.2.3 Mô hình MVC của Laravel
Thành
Model Gồm những Class, tạo ra các table của Database, nơi mà Eloquent
ORM thao tác với CSDL
View Chứa các template được thiết kế ra và được xử lý để Đầu ra ra mã
html/css cho trang web
Controlle
r Chứa các class, function để xử lý các request từ người dùng
Trang 251.3 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (RelationalDatabase Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server, dựa trên ngôn ngữ truy vấn có cấu trúc (SQL) và được phát triển, phân phối,
hỗ trợ bởi Tập đoàn Oracle Các ứng dụng web lớn nhất như Facebook, Youtube,Google đều dùng MySQL cho mục đích lưu trữ dữ liệu
Quy trình hoạt động khá đơn giản mỗi Client (máy khách) yêu cầu dữ liệu từServer (máy chủ), từ Server sẽ phản hồi lại các dữ liệu đó Ví dụ khi người dùngtruy cập vào một trang web nào đó các Request sẽ gửi tới Server, lúc này Server sẽnhận được Request và bắt đầu gửi dữ liệu quay lại máy người dùng để hiển thịthông tin trang web đó lên[CITATION MyS \l 1033 ]
Hình 1.3.1 Mô hình hoạt động của MySQLMột số lý do chính khiến MySQL trở nên quan trọng:
- Linh hoạt và dễ dùng: Có thể sửa source code để đáp ứng nhu cầu sử
dụng mà không phải thanh toán thêm chí phí nào, quá trình cài đặt cũngđơn giản
- Hiệu năng cao: Bất kể lưu trữ dữ liệu lớn của các trang thương mại điện
tử hoặc những hoạt động kinh doanh lớn liên quan đến công nghệ thôngtin, MySQL cũng có thể đáp ứng
- An toàn: An toàn dữ liệu luôn là vấn đề quan trọng nhất khi chọn phần
mềm RDBMS Với hệ thống phân quyền truy cập và quản lý tài khoản,MySQL đặt tiêu chuẩn bảo mật rất cao[CITATION MyS \l 1033 ]
Trang 261.4 JQuery và Ajax
1.5.1 JQuery
- JQuery là một thư viện JavaScript được thiết kế đơn giản hóa thao tácHTML DOM, cũng như xử lý sự kiện, hoạt ảnh CSS, và Ajax Nó làphần mềm mã nguồn mở, miễn phí sử dụng giấy phép MIT License.Tính đến tháng 5 năm 2019, jQuery được 73% trong số 10 triệu trangweb phổ biến nhất sử dụng Phân tích web chỉ ra rằng jQuery là thưviện JavaScript được triển khai rộng rãi nhất với tỷ suất lợi nhuận lớn,
có mức sử dụng nhiều hơn ít nhất ba đến bốn lần so với bất kỳ thư việnJavaScript nào khác
- JQuery được chính thức cho ra đời “chào sân” vào tháng 1 năm 2006bởi “cha đẻ” là John Resig tại BarCamp NYC Tính đến nay, nó vẫnđược duy trì và ngày càng phát triển mạnh mẽ nhờ vào một nhóm độingũ các nhà phát triển phần mềm của Google, đứng đầu là ông TimmyWilson jQuery ngày càng được phổ biến sử dụng rộng rãi đặc biệt làtrên các website nổi tiếng[CITATION JQu \l 1033 ]
1.5.2 Ajax
- Ajax (tiếng Anh: "Asynchronous JavaScript and XML" - nghĩa là
"JavaScript và XML không đồng bộ") là một nhóm các công nghệ pháttriển web được sử dụng để tạo các ứng dụng web động hay các ứngdụng giàu tính Internet (rich Internet application) Từ Ajax được ôngJesse James Garrett đưa ra và dùng lần đầu tiên vào tháng 2 năm 2005
để chỉ kỹ thuật này, mặc dù các hỗ trợ cho Ajax đã có trên các chươngtrình duyệt từ 10 năm trước Ajax là một kỹ thuật phát triển web có tínhtương tác cao bằng cách kết hợp các ngôn ngữ: HTML (hoặc XHTML)với CSS trong việc hiển thị thông tin, Mô hình DOM (Document ObjectModel), được thực hiện thông qua JavaScript, nhằm hiển thị thông tinđộng và tương tác với những thông tin được hiển thị, …
- Giống như DHTML, LAMP hay SPA, Ajax tự nó không phải là mộtcông nghệ mà là một thuật ngữ mô tả việc sử dụng kết hợp một nhómnhiều công nghệ với nhau Trong đó, HTML và CSS được kết hợp vớinhau để đánh dấu và định kiểu thông tin DOM và JavaScript kết hợplại để hiển thị thông tin động và cho phép người dùng tương tác với cácthông tin này JavaScript cùng với đối tượng XMLHttpRequest hỗ trợviệc trao đổi dữ liệu bất đồng bộ giữa trình duyệt và máy chủ nhằm hạnchế việc tải lại nguyên trang[CITATION Ajax \l 1033 ]
Trang 27CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1.2 Khảo sát người dùng
Theo khảo sát người dùng:
- Trung bình cứ 6 đến 12 tháng người thuê trọ lại chuyển trọ một lần vìnhiều lý do như thay đổi chất lượng cuộc sống, các mối quan hệ, thayđổi nơi làm việc và học tập
- Đa số người cần thuê phòng mất nhiều thời gian và công sức để tìm,thuê được phòng trọ phù hợp với nhu cầu
Như vậy việc xây dựng một website làm cầu nối trung gian trao đổi thôngtin nhanh chóng giữa người cần thuê và người cho thuê là rất cần thiết vàtiềm năng
2.2.2 Chủ trọ
Là người đăng nhập hệ thống, đăng các tin phòng trọ, thực hiện đăng kí,đăng nhập có các chức năng như khách vãng lai, và các chức năng đăng tinphòng trọ, thanh toán online, xem lịch sử giao dịch,…Đăng xuất hệ thống
Trang 28- Xem chi tiết phòng.
- Xem bài viết
- Quản lý tài khoản
- Quản lý tin đăng
- Quản lý giao dịch
- Quản lý bài viết
2.3.2 Yêu cầu phi chức năng
- Giao diện, đẹp mắt, đơn giản, dễ sử dụng
- Tốc độ xử lý nhanh chóng, đảm bảo tính bảo mật, an toàn
Trang 292.4 Biểu đồ Use Case
2.4.1 Biểu đồ tổng quát
Hình 2.4.1 Use case tổng quát
Trang 302.4.2 Khách vãng lai và Chủ trọ
Hình 2.4.2 Use case cho Actor Khách vãng lai và Chủ trọ
Trang 312.4.3 Quản trị viên
Hình 2.4.5 Use case cho Actor Quản trị viên
Trang 322.5 Scenario cho Use Case
2.5.1 Scenario Use-case “Đăng ký”
Bảng 2.5.1 Scenario Use-case “Đăng ký”
Tên Use case Đăng ký tài khoản
Mô tả Người dùng muốn đăng ký tài khoản
Actors Khách vãng lai
Đầu vào Thông tin tài khoản mới
Đầu ra Hệ thống thông báo đăng ký tài khoản thành công
Các bước
phát sinh
1 Actor vào ứng dụng, chọn đăng ký
2 Actor nhập thông tin tài khoản
3 Actor nhấn nút đăng ký
4 Hệ thống kiểm tra thông báo kết quả đã đăng kýthành công và trả về trang Trang chủ (đã đăng nhập) Kết thúc use case
Các bước
phát sinh Actor quay về trang chủ kết thúc use case
Các trường
hợp ngoại lệ 2.1 Actor thoát khỏi hệ thống Use case kết thúc màchưa được đăng ký
3.1 Nhập thiếu thông tin hoặc nhập Email đã tồn tại
Hệ thống báo thông tin không đầy đủ Quay lại bước 2
Trang 332.5.2 Scenario Use-case “Đăng nhập”
Bảng 2.5.2 Scenario Use-case “Đăng nhập”
Tên Use case Đăng nhập
Mô tả Người dùng đã có tài khoản muốn đăng nhập vào hệ
thống
Actors Chủ trọ/Quản trị viên
Đầu vào Email và mật khẩu
Đầu ra Hệ thống thông báo đăng nhập thành công
Trang 342.5.3 Scenario Use-case “Xem danh sách phòng trọ”
Bảng 2.5.3 Scenario Use-case “Xem danh sách phòng trọ”
Tên Use case Xem danh sách phòng trọ
Mô tả Người dùng muốn xem danh sách phòng trọ hiện đang
cho thuê
Actors Khách vãng lai/ Chủ trọ
Đầu vào Người dùng truy cập chọn vào cách danh mục phòng trọ
Đầu ra Hệ thống hiển thị danh sách các phòng trọ
Các bước
phát sinh
1 Actor truy cập hệ thống
2 Actor chon vào danh danh mục phòng trọ
3 Hệ thống trả kết quả Kết thúc use case
2.5.4 Scenario Use-case “Tìm kiếm phòng trọ”
Bảng 2.5.4 Scenario Use-case “Tìm kiếm tìm kiếm phòng trọ”
Tên Use case Tìm kiếm phòng trọ
Mô tả Người dùng thực hiện tìm kiếm phòng trọ
Actors Khách vãng lai/ Chủ trọ
Đầu vào Chọn các tiêu chí ở thanh tìm kiếm
Đầu ra Hệ thống hiển thị danh sách phòng trọ phù hợp với kết
Trang 352.5.5 Scenario Use-case “Xem danh sách bài viết”
Bảng 2.5.5 Scenario Use-case “Xem danh sách bài viết”
Tên Use case Xem danh sách bài viết
Mô tả Actor muốn xem danh sách bài viết trên trang web
1 Actor truy cập hệ thống Bắt đầu use case
2 Actor chọn vào mục Bài viết
3 Hệ thống trả kết quả danh sách bài viết Kếtthúc use case
2.5.6 Scenario Use-case “Xem chi tiết phòng trọ”
Bảng 2.5.6 Scenario Use-case “Xem chi tiết phòng trọ”
Tên Use case Xem chi tiết phòng trọ
Mô tả Actor muốn xem chi tiết phòng trọ
Actors Khách vãng lai/ Chủ trọ
Đầu vào Người dùng truy cập vào hệ thống và chọn phòng trọ
muốn xem chi tiết
Đầu ra Hệ thống hiển thị trang chi tiết phòng trọ
Các bước
phát sinh
1 Actor chọn phòng muốn xem chi tiết
2 Hệ thống lấy chi tiết phòng trọ theo ID
3 Hệ thống hiển thị trang chi tiết phòng trọ Kếtthúc use case
Trang 362.5.7 Scenario Use-case “Đăng tin”
Bảng 2.5.7 Scenario Use-case “Đăng tin”
Tên Use case Đăng tin
Mô tả Chủ trọ thực hiện đăng tin về phòng trọ mình muốn cho
thuê
Actors Chủ trọ
Đầu vào Nhập thông tin chi tiết về phòng trọ cho thuê
Đầu ra Hiển thị đăng bài thành công, tin đăng được lưu vào
CSDL
Các bước
phát sinh
1 Người dùng đăng nhập hệ thống, chọn đăng bài
2 Hệ thống hiển thị form thêm bài đăng phòng trọ
3 Người dùng nhập các trường dữ liệu, nhấn nút Lưu
4 Hệ thống kiểm tra dữ liệu: Nếu thỏa mãn thực hiệnbước tiếp theo Ngược lại, thông báo lỗi và quay lạibước 3
5 Hệ thống thông báo thêm bài đăng phòng trọ thànhcông, và lưu thông tin bài đăng phòng trọ trong cở
dữ liệu Kết thúc Use case
Trang 372.5.8 Scenario Use-case “Nạp tiền”
Bảng 2.5.8 Scenario Use-case “Nạp tiền”
Tên Use case Chủ trọ thực hiện nạp tiền
Mô tả Người dùng thực hiện nạp tiền
Actors Chủ trọ
Đầu vào Người dùng đăng nhập thành công với quyền chủ trọ
Đầu ra Các thông tin giao dịch được lưu vào cơ sở dữ liệu
Các bước
phát sinh
1 Người dùng đăng nhập hệ thống, chọn Nạp tiền
2 Hệ thống hiển thị các phương thức thanh toán
3 Người dùng chọn phương thức thanh toán phùhợp, và nhập các nội dung bắt buộc như số tiền, tàikhoản…
4 Hệ thống kiểm tra: Nếu thỏa mãn thực hiện bướctiếp theo Ngược lại, thông báo lỗi và quay lạibước 2
5 Hệ thống thông báo giao dịch thành công, và lưuthông tin giao dịch trong cở dữ liệu Kết thúcUse case
Trang 382.5.9 Scenario Use-case “Xem lịch sử nạp tiền”
Bảng 2.5.9 Scenario Use-case “Xem lịch sử nạp tiền”
Tên Use case Xem lịch sử nạp tiền
Mô tả Actor muốn xem lịch sử nạp tiền
Actors Chủ trọ
Đầu ra Actor đã đăng nhập thành công với quyền chủ trọ
Đầu ra Hiển thị danh sách lịch sử nạp tiền trên màn hình
Các bước
phát sinh
1 Người dùng chọn xem lịch sử nạp tiền
2 Hệ thống lấy thông tin lịch sử nạp tiền theo ID tàikhoản, hiển thị danh sách lịch sử nạp tiền Kếtthúc Use case
Trang 392.5.10.Scenario Use-case “Xem lịch sử thanh toán”
Bảng 2.5.10 Scenario Use-case “Xem lịch sử thanh toán”
Tên Use case Xem lịch sử thanh toán
Mô tả Dùng để quản lý danh sách các Tin tức
Actors Chủ trọ
Đầu ra Actor đã đăng nhập thành công với quyền chủ trọ
Đầu ra Hiển thị danh sách các lịch sử thanh toán
Các bước
phát sinh
1 Người dùng chọn xem lịch sử thanh toán
2 Hệ thống lấy thông tin lịch sử thanh toán theo IDtài khoản, hiển thị danh sách lịch sử thanh toán
2.5.11.Scenario Use-case “Quản lý danh mục”
Bảng 2.5.11 Scenario Use-case “Quản lý danh mục”
Tên Use case Quản lý danh mục
Mô tả Quản trị viên thực hiện thêm các danh mục, giúp phân
loại các phòng trọ dễ dàng
Actors Quản trị viên
Đầu vào Actor đã đăng nhập thành công với quyền quản trị viên
Đầu ra Các thông tin danh mục được lưu vào cơ sở dữ liệu
Các bước
phát sinh
1 Quản trị viên đăng nhập hệ thống, chọn quản lý
danh mục Bắt đầu use case
2 Hệ thống hiển thị danh sách danh mục
3 Actor thực hiện các thao tác cần thiết (thêm,
sửa, xóa) đối với danh mục
Quản trị viên chọn Hủy
Hệ thống hủy thao tác, và trả về trang quản lý danh mục
Các trường
Trang 40hợp ngoại lệ
2.5.12.Scenario Use-case “Quản lý địa điểm”
Bảng 2.5.12 Scenario Use-case “Quản lý địa điểm”
Tên Use case Quản lý địa điểm
Mô tả Actor thực hiện quản lý địa điểm
Actors Quản trị viên
Đầu vào Actor đã đăng nhập thành công với quyền quản trị viên
Đầu ra Hiển thị các thông tin địa điểm được, cập nhật các thông
tin địa điểm vào cơ sở dữ liệu
Các bước
phát sinh
1 Actor nhấn vào “Quản lý địa điểm” Bắt đầuuse case
2 Hệ thống hiển thị danh sách địa điểm
3 Actor thực hiện các thao tác cần thiết (thêm, sửa,xóa) đối với Địa điểm
4 Hệ thống ghi nhận và cập nhật lại các chỉnh sửacủa quản trị viên nếu có Kết thúc Use case
Các trường
hợp phát
sinh
Quản trị viên chọn Hủy
Hệ thống hủy thao tác, và trả về trang quản lý địa điểm
Các trường
hợp ngoại lệ