Công nghệ thông tin ngày càng phát triển, đóng một phần quan trọng không chỉ trong nền kinh tế – văn hóa – xã hội, thậm chí còn trong các ngành khoa học công nghệ. Máy tính điện tử hiện nay cũng không còn là phương tiện quý hiếm mà đang ngày càng trở thành một công cụ đắc lực trợ giúp con người. Con người không ngừng khai thác các tài nguyên được cập nhật trên hệ thống mạng Internet; hay cũng có thể đăng tải và tìm kiếm những tài nguyên mình cần. Công nghệ thông tin và đặc biệt là Internet đã giúp cho con người thay đổi cách số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ó nhu cầ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 theo hì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ững phò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ới khá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ới nhu cầu một cách dễ dàng. Từ những lý do trên, em quyết định chọn đề tài “Phân tích thiết kế và xây dựng website tìm phòng trọ”. Với mong muốn tạo ra trang website, hỗ trợ người dùng đăng tin và tìm kiếm các phòng trọ phù hợp với nhu cầu người dùng.
Trang 1Báo cáo PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG WEBSITE
TÌM PHÒNG TRỌ
Trang 2MỤC LỤC
DANH MỤC HÌNH
DANH MỤC BẢNG
LỜI CẢM ƠN
LỜI CAM ĐOAN
Trang 33.1.1 Các tác nhân của hệ thống: 14
Trang 44.1.4 Giao diện viết bài đăng phòng trọ: 59
Trang 5Hình 3.4 Use Case của tác nhân NGUOITHUETRO
Hình 3.5 Use Case Đăng bài phòng trọ
Hình 3.6 Use Case Quản lý thanh toán
Hình 3.7 Use Case Quản lý danh mục
Hình 3.8 Use Case Quản lý địa điểm
Hình 3.9 Use Case Quản lý tài khoản
Hình 3.10 Use Case Quản lý phòng trọ
Hình 3.11 Use Case Quản lý giao dịch
Hình 3.12 Use Case Quản lý bài viết
Hình 3.13 Biểu đồ hoạt động Đăng ký
Hình 3.14 Biểu đồ hoạt động Đăng nhập
Hình 3.15 Biểu đồ hoạt động Đăng xuất
Hình 3.16 Biểu đồ hoạt động Xem chi tiết bài đăng phòng trọ Hình 3.17 Biểu đồ hoạt động Thêm dữ liệu trang quản trị Hình 3.18 Biểu đồ hoạt động Cập nhật dữ liệu trang quản trị Hình 3.19 Biểu đồ hoạt động Xóa dữ liệu trang quản trị Hình 3.20 Biểu đồ hoạt động Tìm kiếm phòng trọ
Hình 3.21 Biểu đồ tuần tự Đăng ký
Hình 3.22 Biểu đồ tuần tự Đăng nhập
Trang 6Hình 3.24 Biểu đồ tuần tự Cập nhật dữ liệu trang quản lý Hình 3.25 Biểu đồ tuần tự Xóa dữ liệu trang quản lý Hình 3.26 Biểu đồ tuần tự Tìm kiếm phòng trọ
Hình 3.27 Biểu đồ tuần tự Xem chi tiết phòng trọ
Hình 3.28 Biểu đồ lớp
Hình 4.1 Giao diện trang chủ người dùng
Hình 4.2 Giao diện đăng ký
Hình 4.3 Giao diện đăng nhập
Hình 4.4 Giao diện viết bài đăng phòng trọ
Hình 4.5 Giao diện chi tiết bài đăng phòng trọ
Hình 4.6 Giao diện bài viết
Hình 4.7 Giao diện thanh toán online
Hình 4.8 Giao diện lịch sử giao dịch
Hình 4.9 Giao diện đăng nhập quản trị
Hình 4.10 Giao diện quản lý danh mục
Hình 4.11 Giao diện quản lý địa điểm
Hình 4.12 Giao diện quản lý phòng trọ
Hình 4.13 Giao diện quản lý tài khoản
Hình 4.14 Giao diện quản lý giao dịch
Hình 4.15 Giao diện quản lý bài viết
Hình 4.16 Giao diện thêm bài viết
Trang 7Bảng 3.8 Bảng articles (bài viết)
Bảng 3.9 Bảng payment_history (lịch sử thanh toán) Bảng 3.10 Bảng recharge_history (lịch sử nạp tiền)
Trang 8LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các thầy cô của trường Đại học ……… và đặc biệt là các thầy cô khoa Công nghệ thông tin của trường đã tạo điều kiện cho em hoàn thành đồ án tốt nghiệp
này
Em cũng xin chân thành cảm ơn thầy ………… đã nhiệt tình hướng dẫn
chỉ bảo em những kiến thưc bài học, cũng như những kiến thức thực tế trongsuốt quá trình thực hiện đề tài
Mặc dù đã cố gắng hoàn thành đồ án trong phạm vi và khả năng chophép nhưng chắc chắn sẽ không tránh khỏi những thiết sót Em rất mong nhậnđược sự thông cảm, góp ý và tận tình chỉ bảo của quý thầy cô và các bạn
Em xin chân thành cảm ơn!
Trang 9LỜI CAM ĐOAN
Em xin cam đoan đề tài “Phân tích thiết kế và xây dựng website tìm phòng trọ” là một đề tài nghiên cứu độc lập của mình Ngoài ra không có bất
cứ sự sao chép của người khác Đề tài, nội dung báo cáo thực tập là sản phẩm
mà em đã nỗ lực nghiên cứu trong quá trình học tập tại trường Em xin chịuhoàn toàn trách nhiệm, kỷ luật của bộ môn và nhà trường nếu như có vấn đềxảy ra
Trang 10Chương 1: Giới thiệu chung 1.1 Lý do chọn đề tài:
Công nghệ thông tin ngày càng phát triển, đóng một phần quan trọngkhông chỉ trong nền kinh tế – văn hóa – xã hội, thậm chí còn trong các ngànhkhoa học công nghệ Máy tính điện tử hiện nay cũng không còn là phươngtiện quý hiếm mà đang ngày càng trở thành một công cụ đắc lực trợ giúp conngười Con người không ngừng khai thác các tài nguyên được cập nhật trên
hệ thống mạng Internet; hay cũng có thể đăng tải và tìm kiếm những tàinguyên mình cần
Công nghệ thông tin và đặc biệt là Internet đã giúp cho con người thayđổi cách số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 chonhững người có nhu cầu tìm kiếm các tài nguyên nói chung, hay tìm kiếm cácphò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ầuthuê trọ, việc tìm kiếm theo hình thức truyền thống sẽ rất khó khăn, mất thờigian và công sức để tìm những phòng trọ phù hợp với tiêu chí của mình Đốivới người cho thuê, việc tiếp cận với khá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ớimộ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ếmcác phòng trọ ở bất cứ địa điểm nào, giá cả phù hợp với nhu cầu một cách dễdàng
Từ những lý do trên, em quyết định chọn đề tài “Phân tích thiết kế vàxây dựng website tìm phòng trọ” Với mong muốn tạo ra trang website, hỗ trợngười dùng đăng tin và tìm kiếm các phòng trọ phù hợp với nhu cầu ngườidùng
1.2 Mục tiêu của đề tài:
Trang 11● Trình bày được các cơ sở lý thuyết áp dụng như ngôn ngữ PHP, cơ sở dữliệu MySQL, mô hình MVC
● Khảo sát thực trạng các website tìm phòng trọ hiện nay
● Phân tích hệ thống chương trình bao gồm giao diện, các module nhằmđáp ứng nhu cầu người dùng
● Triển khai và cài đặt phần mềm
1.3 Giới hạn và phạm vi của đề tài:
● Xây dựng chương trình dựa vào ngôn ngữ lập trình PHP và cơ sở dữ liệuMySQL
● Phần mềm xây dựng tập trung vào chức năng nghiệp vụ phân tích quaquá trình khảo sát
1.4 Kết quả dự kiến đạt được:
● Hiểu về framework Laravel và áp dụng xây dựng vào trang web
● Biết cách phân tích và thiết kế một website quản lý và tìm phòng trọ
● Hoàn thành website tìm phòng trọ với các tính năng như:
● Admin: thực hiện các chức năng như quản trị hệ thống, quản lý danh
mục, quản lý phòng trọ, quản lý bài viết, quản lý tài khoản Để thựchiện chức năng này, admin phải đăng nhập
Trang 12● Chủ trọ: có thể thực hiện các chức năng như đăng nhập, đăng bài
phòng trọ, thanh toán online,… Để thực hiện các chức năng này, chủtrọ phải đăng nhập
● Khách hàng: có thể thực hiện các chức năng như tìm kiếm phòng trọ,
xem chi tiết phòng trọ,
Trang 13Chương 2: Tổng quan về công nghệ 2.1 Cơ sở lý thuyết
2.1.1 Ngôn ngữ thiết kế website
⮚ HTML:
HTML(Hypertext Markup Language – Ngôn ngữ đánh dấu siêu văn bản)
là một sự định dạng để hiển thị một trang Web Các trang Web thực ra không
có gì khác ngoài văn bản cùng với các tag HTML được sắp xếp đúng cáchhoặc các đoạn mã để trình duyệt Web biết cách thông dịch và hiển thị chúnglên màn hình Hiện nay, phiên bản mới HTML5 có một số tính năng ưu việthơn so với phiên bản cũ:
● Định nghĩa nhiều ảnh cho thiết kế responsive:
Với HTML 5 có thể dùng thẻ <picture> cùng với thuộc tính srcset để tạonên ảnh responsive Thẻ <picture> đại diện cho một khung ảnh, cho phép nhàphát triển khai báo nguồn ảnh khác nhau để thích ứng với kích thước khunghình, mật độ điểm ảnh màn hình, loại màn hình trong thiết kế responsive
● Hiển thị hoặc ẩn thông tin thêm:
Với thẻ <details> và <summary> có thể thêm thông tin cho một đoạn nộidung, các thông tin thêm mặc định không hiển thị Trong code, phải đặt thẻ
<summary> trong thẻ <details>, trong thẻ <summary> có thể đặt thông tinthêm muốn ẩn
● Thêm chức năng cho menu ngữ cảnh:
Với thẻ <menuitem> và <type=”context”>, có thể thêm chức năng tùy
Trang 14phần của thẻ <menu> Thẻ <menuitem> có 3 loại thuộc tính khác nhau là
“checkbox”, “command”, “radio” Nó có khả năng thêm nhiều hơn một menu
● Lồng ghép header và footer:
HTML 5 cho phép lồng ghép header và footer trong nội dung của mộtsection Tính năng này có thể hữu ích nếu chúng ta muốn thêm sectioningelement, chẳng hạn như <article>
● Sử dụng mật mã nonce cho style và script:
Với HTML 5 có thể thêm mã cho style và script, có thể sử dụng thuộctính nonce cùng với thẻ <script> và thẻ <style> Mã nonce sẽ khởi tạo nhữngcon số ngẫu nhiên và duy nhất, có thể phục hồi sau mỗi lần request page, mãnonce có thể sử dụng trong bảo mật website
⮚ CSS:
CSS – được dùng để miêu tả cách trình bày các tài liệu viết bằng ngôn
ngữ HTML và XHTML CSS là viết tắt của Cascading Style Sheets CSSđược hiểu một cách đơn giản đó là cách mà chúng ra thêm các kiểu hiển thị(font chữ, kích thước, màu sắc,…) cho một tài liệu Web
Trong văn hóa thiết kế web hiện đại, việc sử dụng ngôn ngữ style sheetnhư CSS đã trở thành một công cụ phổ biến và xu hướng cho các nhà thiết kếweb CSS có một số lợi thế như sau:
● Băng thông: Một stylesheet thường được lưu trữ trong bộ nhớ cachecủa trình duyệt, và do đó có thể được sử dụng trên nhiều trang mà không nạplại, tăng tốc độ tải và giảm độ truyền dữ liệu qua mạng
Trang 15● Tính linh hoạt: Bằng cách kết hợp CSS với các chức năng của một hệthống quản trị nội dung, một số lượng đáng kể của sự linh hoạt có thể đượclập trình thành các hình thức trình nội dung Điều này cho phép một ngướiđóng góp, những người khác không quen thuộc có thể hiểu và chỉnh sửa CSShoặc HTML.
● Tính nhất quán: Khi CSS được sử dụng hiệu quả, về thừa kế và
“tầng”, một kiểu toàn cầu có thể được sử dụng để ảnh hưởng đến yếu tốphong cách và trang web rộng Nếu có các yếu tố cần thay đổi, chỉnh sửa,những thay đổi này có thể được thực hiện dễ dàng, đơn giản chỉ bằng cáchchỉnh sửa một vài quy tắc trong stylesheet chung
2.1.2 Ngôn ngữ lập trình
⮚ Javascript:
Javascript là một ngôn ngữ lập trình của HTML và ứng dụng Web Nóđược sử dụng phổ biến nhất, như một phần của các trang web Chúng chophép client-server script tương tác với người sử dụng và tạo các trang webđộng Nó là một ngôn ngữ chương trình thông dịch với các khả năng hướngđối tượng
Một số ưu điểm của JavaScript:
● Tiêt kiệm băng thông máy chủ:
Javascript sử dụng trong thiết kế website có thể giúp tiết kiệm băngthông máy máy chủ vô cùng tốt bởi chúng được chạy trực tiếp trên máy củangười dùng Gia tăng hiệu suất, kéo dài tuổi thọ máy chủ và tiết kiệm diệntích băng thông
Trang 16Để thực thi, trình duyệt web chỉ cần tải file JavaScript về máy chủ từ mộttên miền riêng biệt hoặc nhúng thẳng vào file HTML và chạy mà không cầntải thêm Javascript có thể chạy được trên hầu hết các trình duyệt phổ biếnhiện nay.
Hầu hết các trình duyệt web đều có tích hợp sẵn trình thông dịch ngônngữ JavaScript, đảm bảo người dùng có thể sử dụng ngay mà không mất côngtải về trình duyệt, giảm tỷ lệ thực thi các chức năng của JavaScript
● Dễ dàng xử lý vấn đề:
Với lợi thế có nhiều trình duyệt hỗ trợ nên việc kiểm tra và xử lý vấn đề
dễ dàng hơn Đa số các trình duyệt web hiện nay đều có cài sẵn các công cụ
xử lý lỗi Javascript trong bảng điều khiển trình duyệt Javascript sở hữu cấutrúc dễ đọc với các nguyên tắc rõ ràng nên việc xác định và gỡ lỗi trở nên đơngiản hơn
● Nâng cao trải nghiệm người dùng:
Website sử dụng ngôn ngữ lập trình giúp thu hút người dùng bởi nhữngtính năng ưu việt, hình ảnh sinh động hấp dẫn, chức năng lướt và tương tácnhanh nhạy Nhờ những tính năng đó, người dùng cảm thấy thoải mái, thíchthú và tin dùng trang web hơn
⮚ PHP:
PHP là ngôn ngữ script được tạo cho các giao tiếp phía server Do đó, nó
có thể xử lý các giao tiếp phiá server như thu thập dữ liệu, biểu mẫu, quản lýfile trên server, sửa đổi cơ sở dữ liệu và nhiều hơn
Ngôn ngữ này ban đầu được tạo ra bởi Lerdorf để theo dõi khách truycập vào trang chủ cá nhân của anh Khi trở nên phổ biến, Lerdorf phát hành
Trang 17nó thành dự án nguồn mở Quyết định này khuyến khích các nhà phát triển sửdụng, sửa chữa và cải thiện, biến nó thành ngôn ngữ script sử dụng ngày nay.
Dù PHP được coi là ngôn ngữ script vì mục đích chung, nhưng nó được
sử dụng rộng rãi nhất để phát triển web Khả năng nhúng vào file HTML làmột trong những tính năng nổi bật của nó
Nếu không muốn người khác xem mã nguồn, có thể ẩn bằng ngôn ngữscript này Đơn giản, chỉ cần viết code vào file PHP và nhúng vào HTML thìmọi người sẽ không biết được nội dung gốc
2.1.3 Hệ quản trị cơ sở dữ liệu:
Cơ sở dữ liệu (Database) là một tập hợp các dữ liệu có tổ chức, thường
được lưu trữ và truy cập điện tử từ hệ thống máy tính Khi cơ sở dữ liệu phứctạp hơn, chúng thường được phát triển bằng cách sử dụng các kỹ thuật thiết kế
và mô hình hóa chính thức
Hệ quản trị cơ sở dữ liệu (Database Management System) là một phần
mềm để lưu trữ và truy xuất dữ liệu của người dùng trong khi xem xét cácbiện pháp bảo mật thích hợp Nó bao gồm một nhóm các chương trình thaotác cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu chấp nhận yêu cầu dữ liệu từ mộtứng dụng và hướng dẫn hệ điều hành cung cấp dữ liệu cụ thể Trong các hệthống lớn, nó giúp người dùng và phần mềm bên thứ ba lưu trữ và truy xuất
dữ liệu
Hệ quản trị cơ sở dữ liệu tạo ra với 3 chức năng chính:
● Cung cấp môi trường tạo lập cơ sở dữ liệu: Hệ quản trị CSDL đóngvai trò cung cấp cho người dùng một ngôn ngữ định nghĩa dữ liệu để mô tả,khai báo kiểu dữ liệu, các cấu trúc dữ liệu
● Cung cấp cách cập nhật và khai thác dữ liệu: Hệ quản trị CSDL cung
Trang 18tác cập nhật và khai thác cơ sở dữ liệu: Cập nhật (thêm, sửa, xóa dữ liệu),Khai thác (tìm kiếm, xuất dữ liệu).
● Cung cấp các công cụ kiểm soát, điều khiển các truy cập vào cơ sở dữ
liệu: Nhằm đảm bảo thực hiện một số yêu cầu cơ bản của hệ cơ sở dữ liệu.Như: Đảm bảo an ninh và ngăn chặn các truy cập bất hợp pháp, duy trì tínhnhất quán của dữ liệu
2.2 Công cụ sử dụng
2.2.1 Thư viện Jquery
JQuery là một thuật ngữ được dùng rất nhiều trong thời đại công nghệ
hiện nay Kể từ khi phát triển 2.0, cụm từ này đã được dùng khá phổ biến.JQuery là một thư viện được xây dựng trên Javascript Chúng được tạo ra vớimục đích hỗ trợ các lập trình viên giải quyết các khó khăn khi sử dụngJavascript JQuery được tích hợp từ nhiều module chuyên biệt
Có thể hiểu JQuery là thư viện Javascript đa tính năng, nhanh chóng vàtiện lợi Thư viện này được tạo bởi John Resig với phương châm ưu việt:
“Write less, do more” - Viết ít hơn, năng suất hơn
Một số tính năng quan trọng được hỗ trợ bởi JQuery:
● Thao tác DOM: JQuery giúp dễ dàng lựa chọn các phần tử DOM đểduyệt một cách dễ dàng như sử dụng CSS, và chỉnh sửa nội dung của chúng
sử dụng Selector mã nguồn mở
● Hỗ trợ AJAX: JQuery giúp phát triển một site giàu tính năng và phảnhồi tốt bởi công nghệ AJAX
● Xử lý sự kiện: JQuery giúp tương tác người dùng tốt hơn bằng việc xử
lý các sự kiện đa dạng mà không làm cho HTML bị rối
Trang 19● Cập nhật và hỗ trợ các công nghệ mới nhất: JQuery hỗ trợ CSS3Selector và cú pháp XPath cơ bản.
● Hiệu ứng động: JQuery đi kèm rất nhiều hiệu ứng đẹp có thể sử dụngcho các website
● Hỗ trợ hầu hết các trình duyệt hiện đại: JQuery hỗ trợ hầu hết cáctrình duyệt hiện đại, làm việc tốt trên IE 6.0+, Safari 3.0+, Opera 9.0+, FF2.0+ và Chrome
● Gọn nhẹ: JQuery là thư viện gọn nhẹ, nó có kích cỡ khoảng 19KB
2.2.2 Mô hình MVC
Mô hình MVC là một mô hình lập trình web được sử dụng rộng rãi hiện
nay, được viết tắt bởi ba từ Model – View – Controller, tương ứng với ba bộphận tạo nên cấu trúc của ứng dụng Mỗi thành phần kiến trúc được xây dựng
để xử lý khía cạnh phát triển cụ thể của một ứng dụng
Trang 20● Model:
Model của kiến trúc MVC là thành phần chính đảm nhiệm chức năng lưutrữ dữ liệu và các bộ phận logic liên quan của toàn bộ ứng dụng Model chịutrách nhiệm cho các thao tác dữ liệu giữa Controller hoặc bất kỳ logic nghiệp
vụ liên quan nào khác như cho phép xem, truy xuất dữ liệu
● Controller:
Trang 21Controller xử lý tương tác người dùng của ứng dụng Nó xử lý dữ liệuđầu vào từ bàn phím và chuột của người dùng, sau đó thông báo tới View vàModel Controller gửi các lệnh tới Model để thay đổi trạng thái của Model.Controller cũng gửi các lệnh tương tự tới View để thực hiện các thay đổi vềgiao diện.
2.2.3 Framework laravel
Framework chính là một thư viện với các tài nguyên có sẵn cho từng
lĩnh vực để lập trình viên sử dụng thay vì phải tự thiết kế Với Framework, lậptrình viên chỉ cần tìm hiểu và khai thác những tài nguyên đó, gắn kết chúnglại với nhau và hoàn chỉnh sản phẩm của mình
Laravel là một PHP framework mã nguồn mở miễn phí, phát triển bởi
Taylor Otwell và có mục tiêu hỗ trợ phát triển các ứng dụng web theo môhình MVC Những tính năng nổi bật của Laravel làm cho Laravel Frameworkkhác biệt so với các Web Framework khác:
● Tính mô đun:
Tính mô đun là khả năng một thành phần ứng dụng web có thể tách rời
và kêt hợp lại Có thể phân chia logic nghiệp vụ thành các mo-đun khác nhau,tất cả đều hoạt động cùng nhau để làm cho ứng dụng web hoạt động
Sử dụng cấu trúc mô-đun có thể thiết kế và phát triển ứng dụng doanhnghiệp quy mô lớn một cách dễ dàng Laravel cung cấp các hướng dẫn rất đơngiản để tạo các mô-đun hoặc package trong Laravel
● Tính năng xác thực:
Xác thực là một phần không thể thiếu của bất kỳ website hiện đại nào.Viết các thực trong các Framework khác có thể mất rất nhiều thời gian
Trang 22Nhưng với Laravel thì ngược lại, chỉ cần chạy một lệnh đơn giản, đã có thểtạo một hệ thống xác thực đầy đủ chức năng.
● Tính năng Caching:
Caching(bộ nhớ đệm) là một kỹ thuật để lưu trữ dữ liệu trong một vị trílưu trữ tạm thời có thể lấy ra nhanh chóng khi cần, chủ yếu được sử dụng đểlàm tăng hiệu suất của website Điều này giúp Laravel giảm thời gian xử lý vàtăng hiệu suất rất nhiều
● Database Query Builder:
Database Query Builder của Laravel cung cấp một cách thuận tiện để tạocác truy cấp cơ sở dữ liệu Nó đi kèm với vô số chức năng của trình trợ giúp
Laravel cung cấp bảo mật để chống lại các cuộc tấn công truy vấn cơ sở
dữ liệu An toàn khi xử lý với dữ liệu mà người dùng cung cấp
● Artisan:
Công cụ dòng lệnh của Laravel được gọi là Artisan Laravel đi kèm vớihàng ngàn lệnh được xây dựng sẵn
2.2.4 MySQL
Trang 23MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational
Database Management System, viết tắt là RDBMS) hoạt động theo mô hìnhclient-server MySQL là một trong số các phần mềm của RDBMS, nhưngthường được cho là một vì độ quá phổ biến của nó Các ứng dụng web lớnnhất như Facebook, Youtube, Google đều dùng MySQL cho mục đích lưutrữ 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ụ khingười dùng truy 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áyngười dùng để hiển thị thông tin trang web đó lên
Hình 2.2 Mô hình hoạt động của MySQL
Mộ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 đơngiả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
Trang 24● An toàn: An toàn dữ liệu luôn là vấn đề quan trọng nhất khi chọnphầ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.
2.2.5 XAMPP
XAMPP là chương trình tạo web server được ứng dụng trên các hệ điều
hành Linux, MacOS, Windows, Cross-platform, Solaris XAMPP hoạt động dựa trên sự tích hợp của 5 phần mềm chính là Cross-Platform(X), Apache(A),MariaDB(M), PHP(P) và Perl(P):
● X: Viết tắt của hệ điều hành mà nó hoạt động với: Linux, Windows vàMac OS X
● Apache: Web Server mã nguồn mở Apache là máy chủ được sử dụng rộng rãi nhất trên toàn thế giới để phân phối nội dung Web Ứng dụng được cung cấp dưới dạng phần mềm miễn phí bởi Apache Software Foundaton
● MySQL/MariaDB: Trong MySQL, XAMPP chứa một trong những hệquản trị cơ sở dữ liệu quan hệ phổ biến nhất trên thế giới Kết hợp với Web Server Apache và ngôn ngữ lập trình PHP, MySQL cung cấp khả năng lưu trữ
dữ liệu cho các dịch vụ Web
● PHP: Ngôn ngữ lập trình phía máy chủ PHP cho phép người dùng tạo các trang Web hoặc ứng dụng động
● Perl: Ngôn ngữ kịch bản Perl được sử dụng trong hệ quản trị hệ thống,phát triển Web và lập trình mạng
Trang 25Chương 3: Phân tích và thiết kế hệ thống 3.1 Use Case của hệ thống:
● NGUOITHUETRO: Là người dùng (người thuê trọ) của hệ thống, truycập trang web thực hiện tìm kiếm các tiêu chí phòng trọ phù hợp, xemchi tiết phòng trọ và các bài viết
● CHUTRO: Là người đăng nhập hệ thống, đăng các tin phòng trọ, thựchiện đăng kí, đăng nhập có các chức năng như người thuê trọ, và cácchức năng đăng tin phòng trọ, thanh toán online, xem lịch sử giao dịch,
…
Trang 263.1.2 Use Case tổng quát:
Hình 3.2 Use Case tổng quát
3.1.3 Use Case hệ thống:
Trang 27Hình 3.3 Use Case hệ thống
Tác nhân Chủ trọ
Mô tả ngắn gọn Người dùng truy cập website có thể đăng ký tài khoản để
trở thành chủ trọ, đăng các bài trọ và giao dịch onlineTiền điều kiện Khi người dùng truy cập và chọn đăng ký
Chuỗi sự kiện
chính
1 Người dùng chọn đăng ký
2 Hệ thống hiển thị trang đăng ký
3 Người dùng nhập các trường thông tin và tài khoản –mật khẩu, chọn đăng ký
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 đăng ký tài khoản thành công, vàcập nhật tài khoản vào cơ sở dữ liệu
Trang 286 Hiển thị giao diện trang chủ với tài khoản đã đăng kýNgoại lệ 3 Người dùng chọn Hủy
4 Hệ thống hủy thao tác, và trả về trang chủĐiều kiện đầu ra Lưu tài khoản người dùng đã đăng ký vào cơ sở dữ liệu
Tác nhân Chủ trọ và quản trị viên
Mô tả ngắn gọn Người dùng đăng nhập vào hệ thống, truy cập hệ thống
với đúng quyền của tài khoảnTiền điều kiện UseCase sử dụng khi người dùng muốn đăng nhập vào hệ
thốngChuỗi sự kiện
chính
1 Người dùng chọn đăng nhập
2 Hệ thống yêu cầu nhập tài khoản và mật khẩu
3 Người dùng nhập tài khoản và mật khẩu
4 Hệ thống kiểm tra tên và mật khẩu vừa nhập: Nếuthỏa mãn thực hiện bước tiếp theo Ngược lại, thôngbáo lỗi và quay lại bước 3
5 Lấy quyền truy cập tài khoản
6 Hiển thị giao diện tương ứng với quyền của tài khoảnNgoại lệ 3 Người dùng chọn Hủy
4 Hệ thống hủy thao tác, và trả về trang chủĐiều kiện đầu ra Người dùng truy cập hệ thống với đúng quyền của tài
khoản đã đăng nhập
Tác nhân Chủ trọ và quản trị viên
Trang 29Mô tả ngắn gọn Người dùng muốn đăng xuất khỏi hệ thống
Tiền điều kiện UseCase sử dụng khi người dùng muốn đăng xuất hệ
thốngChuỗi sự kiện
chính
1 Người dùng chọn đăng xuất
2 Hệ thống hủy lưu tài khoản
3 Hệ thống hiển thị giao diện trang đăng nhập
Điều kiện đầu ra Hủy lưu tài khoản người dùng, hiển thị trang đăng nhập
3.1.4 Use Case của tác nhân NGUOITHUETRO:
Trang 30Tác nhân Người thuê trọ
Mô tả ngắn gọn Người dùng muốn xem một bài viết trên trang web
Tiền điều kiện Người dùng truy cập hệ thống, chọn bài viết muốn xemChuỗi sự kiện
chính
1 Người dùng chọn bài viết muốn xem chi tiết
2 Hệ thống hiển thị trang chi tiết bài viết
Điều kiện đầu ra Chi tiết bài viết người dùng muốn xem hiển thị trên màn
hình
Tác nhân Người thuê trọ
Mô tả ngắn gọn Người dùng thực hiện tìm kiếm các tiêu chí phòng trọ phù
hợpTiền điều kiện Người dùng truy cập hệ thống, chọn tiêu chí tìm kiếmChuỗi sự kiện
Tác nhân Người thuê trọ
Trang 31Mô tả ngắn gọn Người dùng muốn xem chi tiết một bài đăng phòng trọTiền điều kiện Người dùng truy cập hệ thống, chọn bài đăng phòng trọChuỗi sự kiện
chính
1 Người dùng chọn bài đăng muốn xem chi tiết
2 Chọn xem chi tiết
3 Hệ thống lấy chi tiết bài đăng phòng trọ theo ID
4 Hệ thống hiển thị trang chi tiết bài đăng phòng trọ
Điều kiện đầu ra Thông tin chi tiết của bài đăng về phòng trọ người dùng
muốn xem hiển thị trên màn hình
3.1.5 Use Case Đăng bài phòng trọ:
Hình 3.5 Use Case Đăng bài phòng trọ
Trang 32thuêTiền điều kiện Người dùng đăng nhập thành công, với quyền chủ trọ Chuỗi sự kiện
chính
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
Ngoại lệ 3 Người dùng chọn Hủy
4 Hệ thống hủy thao tác, và trả về trang chủĐiều kiện đầu ra Các thông tin bài đăng phòng trọ được lưu vào cơ sở dữ
liệu
3.1.6 Use Case Quản lý thanh toán:
Trang 33Hình 3.6 Use Case Quản lý thanh toán
Mô tả ngắn gọn Người dùng thực hiện thanh toán bằng phương thức
onlineTiền điều kiện Người dùng đăng nhập thành công, với quyền chủ trọ Chuỗi sự kiện
chính
1 Người dùng đăng nhập hệ thống, chọn thanh toánonline
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ài khoản…
4 Hệ thống kiểm tra: Nếu thỏa mãn thực hiện bước tiếptheo Ngược lại, thông báo lỗi và quay lại bướ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
Ngoại lệ 3 Người dùng chọn Hủy
Trang 344 Hệ thống hủy thao tác, và trả về trang chủĐiều kiện đầu ra Các thông tin giao dịch được lưu vào cơ sở dữ liệu
Mô tả ngắn gọn Người dùng muốn xem lịch sử nạp tiền
Tiền điều kiện Người dùng đăng nhập thành công, với quyền chủ trọChuỗi sự kiện
chính
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
Mô tả ngắn gọn Người dùng muốn xem lịch sử thanh toán
Tiền điều kiện Người dùng đăng nhập thành công, với quyền chủ trọChuỗi sự kiện
chính
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 ID tàikhoản, hiển thị danh sách lịch sử thanh toán
Trang 35Hình 3.7 Use Case Quản lý danh mục
Tác nhân Quản trị viên
Mô tả ngắn gọn 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àngTiền điều kiện Người dùng đăng nhập thành công, với quyền quản trị Chuỗi sự kiện
3 Quản trị viên chọn nút Thêm danh mục
4 Hệ thống hiển thị form thêm danh mục
5 Quản trị viên nhập các trường dữ liệu, nhấn nút Lưu
6 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ại
Trang 367 Hệ thống thông báo thêm danh mục thành công, vàlưu thông tin danh mục trong cở dữ liệu
Ngoại lệ 5 Quản trị viên chọn Hủy
6 Hệ thống hủy thao tác, và trả về trang quản lý danh mụcĐiều kiện đầu ra Các thông tin danh mục được lưu vào cơ sở dữ liệu
Tác nhân Quản trị viên
Mô tả ngắn gọn Quản trị viên thực hiện cập nhật thông tin các danh mụcTiền điều kiện Người dùng đăng nhập thành công, với quyền quản trị Chuỗi sự kiện
3 Quản lý chọn danh mục muốn sửa, chọn sửa
4 Hệ thống lấy dữ liệu danh mục theo ID, và hiển thịform sửa danh mục
5 Quản trị viên nhập các trường dữ liệu, nhấn nút Cậpnhật
6 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 5
7 Hệ thống thông báo sửa danh mục thành công, và cậpnhật thông tin danh mục trong cơ sở dữ liệu
Ngoại lệ 5 Quản trị viên chọn Hủy
Trang 376 Hệ thống hủy thao tác, và trả về trang quản lý danh mụcĐiều kiện đầu ra Các thông tin danh mục được cập nhật vào cơ sở dữ liệu
Use Case Cập nhật trạng thái danh mục
Tác nhân Quản trị viên
Mô tả ngắn gọn Quản trị viên thực hiện cập nhật trạng thái của các danh
mụcTiền điều kiện Người dùng đăng nhập thành công, với quyền quản trị Chuỗi sự kiện
3 Quản lý chọn danh mục muốn cập nhật, chọn trạngthái muốn cập nhật
4 Hệ thống lấy dữ liệu danh mục theo ID và kiểm tra dữliệu: Nếu thỏa mãn thực hiện bước tiếp theo Ngượclại, thông báo lỗi và quay lại bước 3
5 Hệ thống thông báo cập nhật trạng thái danh mụcthành công, và cập nhật thông tin danh mục trong cơ
sở dữ liệuNgoại lệ 5 Quản trị viên chọn Hủy
6 Hệ thống hủy thao tác, và trả về trang quản lý danh mụcĐiều kiện đầu ra Các thông tin danh mục được cập nhật vào cơ sở dữ liệu
Trang 38Hình 3.8 Use Case Quản lý địa điểm
Tác nhân Quản trị viên
Mô tả ngắn gọn Quản trị viên thực hiện thêm danh sách các địa điểm
Tiền điều kiện Người dùng đăng nhập thành công, với quyền quản trị Chuỗi sự kiện
3 Quản trị viên chọn nút Thêm địa điểm
4 Hệ thống hiển thị form thêm địa điểm
5 Quản trị viên nhập các trường dữ liệu, nhấn nút Lưu
6 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 5
7 Hệ thống thông báo thêm địa điểm thành công, và lưu