Tuy nhiên, việc tìm kiếm một phòng trọ, nhà trọ không hề dễ dàng.Phần lớn thông tin về các phòng trọ chủ yếu được truyền miệng hoặc thôngqua các quảng cáo, rao vặt.. - Vấn đề cần giải qu
Trang 1ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐỒ ÁN CƠ SỞ 2
TÌM KIẾM PHÒNG TRỌ
Sinh viên thực hiện : NGUYỄN NGỌC ĐỊNH
Giảng viên hướng dẫn : ThS TRẦN ĐÌNH SƠN
Lớp : 18IT5
Đà nẵng, tháng 12 năm 2019
Trang 2ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐỒ ÁN CƠ SỞ 1
XÂY DỰNG WEBSITE TÌM KIẾM PHÒNG TRỌ
Trang 3Đà Nẵng, tháng 12 năm 2019
MỞ ĐẦU
Ở các thành phố lớn, nhu cầu về chỗ ở của sinh viên và người lao động
là rất lớn Tuy nhiên, việc tìm kiếm một phòng trọ, nhà trọ không hề dễ dàng.Phần lớn thông tin về các phòng trọ chủ yếu được truyền miệng hoặc thôngqua các quảng cáo, rao vặt Dẫn tới việc thông tin còn nhiều sai lệch, thiếuchính xác, có thể khiến người tìm phòng trọ mất thời gian và tiền bạc Cũngnhư khả năng tiếp cận thông tin về các phòng trọ đang cho thuê còn rất hạnchế Bản thân em là một sinh viên đang ở trọ, em đã trải qua và rất hiểu rõnhững khó khăn này Vì vậy em muốn áp dụng công nghệ thông tin để xâydựng một website nhằm hỗ trợ mọi người trong việc tìm kiếm phòng trọ Mụcđích nghiên cứu của đề tài là dựa trên nền tảng web để hỗ trợ việc tìm kiếm vàđăng tải thông tin phòng trọ trở nên nhanh chóng và dễ dàng nhất trong phạm
vi thành phố Đà Nẵng
Trang 4
LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn Khoa Công nghệ Thông tin và Truyềnthông - Đại học Đà Nẵng đã tạo điều kiện tốt cho chúng em thực hiện đề tài này.Chúng em xin chân thành cảm ơn tới thầy giáo – ThS Trần Đình Sơn đã tận tìnhhướng dẫn, chỉ bảo, giúp đỡ cho chúng em hoàn thành đề tài này Chúng em cũngxin gửi lời cảm ơn sâu sắc đến quý Thầy Cô trong Khoa đã tận tình giảng dạy,trang bị cho chúng em những kiến thức quý báu trong những học kì vừa qua
Chúng em xin gửi lòng biết ơn sâu sắc đến gia đình đã luôn động viên, ủng
hộ, các anh chị và bạn bè đã gắn bó, chia sẻ rất nhiều kinh nghiệm và kiến thức vànhất là trong thời gian thực hiện đề tài
Mặc dù chúng em đã cố gắng hoàn thành báo cáo trong phạm vi và khả năngcho phép, nhưng chắc chắn sẽ không tránh khỏi những sai sót, kính mong sự cảmthông và tận tình chỉ bảo của quý Thầy Cô và các bạn
Chúng em xin chân thành cảm ơn
Đà Nẵng, ngày 28 tháng 12 năm 2019
Sinh viên thực hiện
Nguyễn Ngọc Định
Trang 5NHẬN XÉT (Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
Trang 6MỤC LỤC
Trang
MỞ ĐẦU 3
LỜI CẢM ƠN 4
Chương 1 GIỚI THIỆU TỔNG QUAN 10
1.1 Tổng quan 10
1.2 Phương pháp, kết quả 10
1.3 Cấu trúc đồ án 10
Chương 2 CƠ SỞ LÝ THUYẾT 11
2.1 Phân tích và thiết kế hệ thống hướng đối tượng 11
2.1.1 Khái niệm OOAD 11
2.1.2 Khái niệm UML 11
2.1.3 Tại sao lại là OOAD và UML? 11
2.2 Mô hình MVC 11
2.2.1 Khái niệm: 11
2.2.2 Luồng dữ liệu trong mô hình MVC 12
2.2.3 Ưu, nhược điểm 12
2.3 ExpressJS framework 13
2.3.1 Khái niệm NodeJS 13
2.3.2 ExpressJS 13
2.4 Cơ sở dữ liệu MongoDB 13
2.4.1 NoSQL 13
2.4.2 MongoDB 13
Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 15
3.1 Mô hình hóa yêu cầu 15
3.1.1 Xác định các tác nhân (actors) 15
3.1.2 Xác định các trường hợp sử dụng (use case) 15
3.1.3 Đặc tả ca sử dụng (use case descriptions) 15
3.1.4 Biểu đồ trường hợp sử dụng (use case diagrams) 19
3.1.5 Biểu đồ hoạt động (activity diagrams) 19
3.2 Mô hình hóa khái niệm 20
3.2.1 Các lớp biên của hệ thống (boundary classes) 20
3.2.2 Các lớp điều khiển của hệ thống (control classes) 20
3.2.3 Biểu đồ lớp mức phân tích 21
3.3 Mô hình hóa hành vi 21
3.3.1 Biểu đồ tuần tự 21
3.4 Thiết kế chi tiết biểu đồ lớp 21
3.5 Biểu đồ thành phần và biểu đồ triển khai 21
3.5.1 Biểu đồ thành phần 21
3.5.2 Biểu đồ triển khai 22
Chương 4 TRIỂN KHAI XÂY DỰNG 23
4.1 Chức năng đăng ký 23
4.2 Chức năng đăng nhập 23
4.3 Chức năng đăng tin 24
4.4 Trang chủ 25
4.5 Chức năng tìm kiếm phòng trọ 26
4.6 Xem thông tin chi tiết bài viết 27
Trang 74.7 Chức năng quản lý tài khoản 27
4.8 Phần admin 28
KẾT LUẬN 29
1.Kết quả đạt được 29
2 Hướng phát triển 29
Trang 8DANH MỤC HÌNH
Trang
Hình 2.1 Luồng dữ liệu trong mô hình MVC 12
Hình 4.1 Giao diện đăng ký tài khoản 23
Hình 4.2 Giao diện đăng nhập 23
Hình 4.3 Giao diện đăng tin mới (1) 24
Hình 4.4 Giao diện đăng tin mới (2) 24
Hình 4.5 Giao diện trang chủ (1) 25
Hình 4.6 Giao diện trang chủ (2) 25
Hình 4.7 Chức năng tìm kiếm phòng trọ 26
Hình 4.8 Kết quả tìm kiếm 26
Hình 4.9 Thông tin chi tiết phòng trọ (1) 27
Hình 4.10 Thông tin chi tiết phòng trọ (2) 27
Hình 4.11 Giao diện quản lý tài khoản 27
Hình 4.12 Cập nhật thông tin tài khoản 28
Hình 4.13 Quản lý cái tin đã đăng 28
Hình 4.14 Giao diện trang admin 28
Trang 9DANH MỤC CỤM TỪ VIẾT TẮT
1 Công nghệ thông tin CNTT
2 JavaScript JS
3 Model – View- Controller MVC
4 Structure Query Language SQL
5 Cơ sở dữ liệu CSDL, DB
6 Object Oriented Analysis and Design OOAD
7 Unified Modeling Language UML
8 Tiếp theo tt
Trang 10Chương 1 GIỚI THIỆU TỔNG QUAN
1.1 Tổng quan
- Tên đề tài: Xây dựng website tìm kiếm phòng trọ
- Bối cảnh thực hiện đề tài: Là một sinh viên đã trải qua rất nhiều khó khăntrong việc tìm kiếm phòng trọ bằng các phương pháp truyền thống như raovặt, truyền miệng thiếu chính xác và có thể tốn nhiều thời gian và tiền bạc
Em mong muốn khắc phục điều đó bằng cách áp dụng công nghệ thông tinvào công việc tìm kiếm phòng trọ
- Vấn đề cần giải quyết: Sử dụng các nền tảng CNTT để hỗ trợ việc tìmkiếm phòng trọ để khắc phục các nhược điểm của việc tìm trọ truyềnthống: khả năng tiếp cận các thông tin phòng trọ còn hạn chế, thông tinthiếu chính xác, việc xác thực thông tin (xem trọ, liên hệ với chủ trọ) còntốn nhiều thời gian và một số rủi ro (lừa đảo – gây mất tiền bạc) Cung cấpchức năng đăng tải thông tin phòng trọ cho các chủ phòng trọ
- Đề xuất nội dung thực hiện: nghiên cứu và xây dựng một website có chứcnăng đăng tải, hiển thị danh sách, thông tin phòng trọ chính xác, được cậpnhật liên tục
1.2 Phương pháp, kết quả
- Phương pháp triển khai:
+ Tìm hiểu về nhu cầu và các thông tin cần thiết trong quá trình tìm thuêphòng trọ
+ Tìm hiểu về các công cụ lập trình, các ngôn ngữ thiết kế/lập trình hỗtrợ xây dựng website
+ Tìm hiểu cấu trúc và cách thức xây dựng một website hoàn chỉnh.+ Tìm hiểu và sử dụng các kiến thức đã được học từ môn Phân tích vàThiết kế Hệ thống để phân tích và thiết kế website phù hợp
+ Sử dụng kiến thức đã được học từ môn Công nghệ Web và Công nghệWeb (Nâng cao) để xây dựng website phù hợp
- Kết quả đạt được:
+ Nắm được các nhu cầu cơ bản của mọi người trong việc tìm kiếm vàlựa chọn phòng trọ
+ Phân tích và thiết kế hệ thống website phù hợp
+ Xây dựng được website có chức năng đăng tải, hiện thị và tìm kiếmthông tin phòng trọ
+ Nắm được cách thức hoạt động của một website hoàn chỉnh
1.3 Cấu trúc đồ án
Đồ án gồm có 5 chương:
- Chương 1: GIỚI THIỆU TỔNG QUAN
- Chương 2: CƠ SỞ LÝ THUYẾT
- Chương 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
- Chương 4: TRIỂN KHAI XÂY DỰNG
Trang 11Chương 2 CƠ SỞ LÝ THUYẾT
2.1 Phân tích và thiết kế hệ thống hướng đối tượng
2.1.1 Khái niệm OOAD
Để phân tích và thiết kế một phần mềm thì có nhiều cách làm, một trongnhững cách làm đó là xem hệ thống gồm những đối tượng sống trong đó vàtương tác với nhau Việc mô tả được tất cả các đối tượng và sự tương táccủa chúng sẽ giúp chúng ta hiểu rõ hệ thống và cài đặt được nó Phươngthức này gọi là Phân tích thiết kế hướng đối tượng (OOAD - Object-Oriented Analysis and Design)
2.1.2 Khái niệm UML
UML (Unified Modeling Language) là ngôn ngữ mô hình hóa hợp nhấtdùng để biểu diễn hệ thống Nói một cách đơn giản là nó dùng để tạo racác biểu đồ nhằm mô tả thiết kế hệ thống Các biểu đồ này được sử dụng
để các nhóm thiết kế trao đổi với nhau cũng như dùng để thi công hệthống (phát triển), thuyết phục khách hàng, các nhà đầu tư,
2.1.3 OOAD và UML
OOAD cần các biểu đồ để mô tả hệ thống được thiết kế, còn UML là ngônngữ mô tả các biểu đồ nên cần nội dung thể hiện Do vậy, chúng ta phântích và thiết kế theo hướng đối tượng và sử dụng UML để biểu diễn cácthiết kế đó nên chúng thường đi đôi với nhau
2.2 Mô hình MVC
2.2.1 Khái niệm:
MVC là viết tắt của Model – View – Controller Là một kiến trúc phầnmềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm Nó là
mô hình phân bố source code thành 3 phần, mỗi thành phần có một nhiệm
vụ riêng biệt và độc lập với các thành phần khác Bao gồm:
- Model : là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệquản trị cơ sở dữ liệu (mysql, mssql… ); nó sẽ bao gồm cácclass/function xử lý nhiều nghiệp vụ như kết nối database, truy vấn
dữ liệu, thêm – xóa – sửa dữ liệu…
- View : là nới chứa những giao diện như một nút bấm, khung nhập,menu, hình ảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúpngười dùng tương tác với hệ thống
- Controller : là nới tiếp nhận những yêu cầu xử lý được gửi từ ngườidùng, nó sẽ gồm những class/ function xử lý nhiều nghiệp vụ logicgiúp lấy đúng dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớpModel cung cấp và hiển thị dữ liệu đó ra cho người dùng nhờ lớpView
Trang 122.2.2 Luồng dữ liệu trong mô hình MVC
Khi có một yêu cầu từ phía client gửi đến server, Bộ phận controller cónhiệm vụ nhận yêu cầu, xử lý yêu cầu đó Và nếu cần, nó sẽ gọi đến phầnmodel, vốn là bộ phần làm việc với Database
Sau khi xử lý xong, toàn bộ kết quả được đẩy về phần View Tại View, sẽgen ra mã Html tạo nên giao diện, và trả toàn bộ html về trình duyệt đểhiển thị
Hình 2.1 Luồng dữ liệu trong mô hình MVC
2.2.3 Ưu, nhược điểm
Ưu điểm:
Trình tự xử lý rất rõ ràng
Mô hình MVC quy hoạch các class/function vào các thành phầnriêng biêt Controller - Model - View, việc đó làm cho quá trình pháttriển - quản lý - vận hành - bảo trì web diễn ra thuận lợi hơn, tạo rađược các chức năng chuyên biệt hoá đồng thời kiểm soát được luồng
Trang 132.3 ExpressJS framework
2.3.1 Khái niệm NodeJS
Nodejs là một nền tảng (Platform) phát triển độc lập được xây dựng
ở trên Javascript Runtime của Chrome mà chúng ta có thể xây dựngđược các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng
Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thờigian thực
Nodejs áp dụng cho các sản phẩm có lượng truy cập lớn, cần mởrộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startupnhanh nhất có thể
Thiết lập các lớp trung gian để trả về các HTTP request
Define router cho phép sử dụng với các hành động khác nhau dựatrên phương thức HTTP và URL
Cho phép trả về các trang HTML dựa vào các tham số
2.4 Cơ sở dữ liệu MongoDB
2.4.1 NoSQL
NoSQL là 1 dạng CSDL mã nguồn mở không sử dụng Transact-SQL đểtruy vấn thông tin NoSQL viết tắt bởi: None-Relational SQL, hay có nơithường gọi là Not-Only SQL CSDL này được phát triển trên JavascriptFramework với kiểu dữ liệu JSON (Cú pháp của JSON là “key:value”)NoSQL ra đời như là 1 mảnh vá cho những khuyết điểm và thiếu xót cũngnhư hạn chế của mô hình dữ liệu quan hệ RDBMS về tốc độ, tính năng,khả năng mở rộng, memory cache,
2.4.2 MongoDB
MongoDB là một chương trình cơ sở dữ liệu mã nguồn mở và là một cơ sở
dữ liệu NoSQL được thiết kế theo kiểu hướng đối tượng trong đó các bảngđược cấu trúc một cách linh hoạt cho phép các dữ liệu lưu trên bảng khôngcần phải tuân theo một dạng cấu trúc nhất định nào Chính do cấu trúc linhhoạt này nên MongoDB có thể được dùng để lưu trữ các dữ liệu có cấutrúc phức tạp và đa dạng và không cố định
Lợi thế của MongoDB so với các cơ sở dữ liệu dạng quan hệ (RDBMS):
Ít Schema hơn: MongoDB là một cơ sở dữ liệu dựa trên Document,trong đó một Collection giữ các Document khác nhau Số trường,nội dung và kích cỡ của Document này có thể khác với Documentkhác
Cấu trúc của một đối tượng là rõ ràng
Không có các Join phức tạp
Trang 14 Khả năng truy vấn sâu hơn MongoDB hỗ trợ các truy vấn độngtrên các Document bởi sử dụng một ngôn ngữ truy vấn dựa trênDocument mà mạnh mẽ như SQL.
Trang 15Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 Mô hình hóa yêu cầu
3.1.1 Xác định các tác nhân (actors)
Người tìm trọ
Chủ trọ
Người quản trị
3.1.2 Xác định các trường hợp sử dụng (use case)
Tạo tài khoản
Cập nhật thông tin tài khoản
Đăng tin
Tìm kiếm
Xem thông tin chi tiết tin
Quản lý tin đã đăng
Chỉnh sửa tin
Xóa tin
Quản lý toàn bộ tài khoản
Quản lý toàn bộ tin
3.1.3 Đặc tả ca sử dụng (use case descriptions)
a Ca sử dụng Tạo tài khoản
- Các tác nhân: Chủ trọ
- Điều kiện trước: Chủ trọ đã truy cập vào website
- Điều kiện sau: Tài khoản được tạo thành công
- Mô tả: Sau khi truy cập vào website và nhấn nút đăng ký, chủ trọ cung cấpcác thông tin cần thiết và nhấn đăng ký Nếu thành công thông tin sẽ đượclưu vào database và tài khoản được tạo
Luồng sự kiện chính
Hành động của tác nhân Hành động của hệ thống
1 Chọn chức năng đăng ký
3 Điền thông tin cần thiết vào form
4 Gửi các thông tin đã nhập đến hệ
thống
2 Hiển thị form đăng ký
5 Kiểm tra các thông tin nhập vào
6 Lưu thông tin tài khoản vào database
7 Thông báo trạng thái đăng ký thành công
8 Chuyển tới trang đăng nhập
Luồng sự kiện phụ
Trang 16Hành động của tác nhân Hành động của hệ thống
3 Nhập các thông tin không chính xác
6 Hiển thị lỗi và yêu cầu thực hiện lại
b Ca sử dụng Cập nhật thông tin tài khoản
- Các tác nhân: Chủ trọ, người quản trị
- Điều kiện trước: Chủ trọ/ Người quản trị đã đăng nhập vào website
- Điều kiện sau: Thông tin tài khoản của tác nhân được cập nhật
- Mô tả: Sau khi đăng nhập vào website, chủ trọ/ người quản trị truy cập vàophần Tài khoản và nhấn nút cập nhật Sau đó thay đổi, bổ sung các thôngtin cần thiết và nhấn lưu thay đổi Thông tin tài khoản đó sẽ được cập nhậtvào database
Luồng sự kiện chính
Hành động của tác nhân Hành động của hệ thống
1 Chọn chức năng cập nhật thông tin
2 Truy cập database lấy các thông tin
đã có và hiển thị vào các input của formthông tin tài khoản
5 Kiểm tra các thông tin nhập vào
6 Lưu thông tin vào database
7 Thông báo trạng thái cập nhật thànhcông
Luồng sự kiện phụ
Hành động của tác nhân Hành động của hệ thống
3 Nhập các thông tin không chính xác
6 Hiển thị lỗi và yêu cầu thực hiện lại
c Ca sử dụng Đăng tin
- Các tác nhân: Chủ trọ
- Điều kiện trước: Chủ trọ đã đăng nhập vào website
- Điều kiện sau: Tin đã được lưu vào database và hiển thị lên website
- Mô tả: Sau khi đăng nhập vào website, chủ trọ nhấn vào phần đăng tin,điền các thông tin về phòng trọ và nhấn nút đăng tin Tin sẽ được lưu vàodatabase và hiển thị lên website
Luồng sự kiện chính
Hành động của tác nhân Hành động của hệ thống
Trang 171 Chọn chức năng đăng tin
5 Kiểm tra các thông tin nhập vào
6 Lưu thông tin vào database
7 Hiển thị tin lên website
8 Chuyển tới trang thông tin chi tiết của tin vừa đăng
Luồng sự kiện phụ
Hành động của tác nhân Hành động của hệ thống
3 Nhập các thông tin không chính xác
6 Hiển thị lỗi và yêu cầu thực hiện lại
d Ca sử dụng Tìm kiếm
- Các tác nhân: Người tìm trọ
- Điều kiện trước: Người tìm trọ đã truy cập vào website
- Điều kiện sau: Các tin phòng trọ phù hợp sẽ được hiển thị
- Mô tả: Người tìm trọ truy cập vào website, tại mục tìm kiếm chọn các lựachọn theo nhu cầu Hệ thống sẽ lọc và hiển thị các tin phòng trọ phù hợp
4 Hiển thị các tin đã tìm được
Luồng sự kiện phụ
Hành động của tác nhân Hành động của hệ thống
1 Không chọn các lựa chọn nào
3 Lọc theo lựa chọn mặc định là Tất
cả các tin
4 Hiển thị tất cả các tin trên website
e Ca sử dụng Xem thông tin chi tiết tin
- Các tác nhân: Người tìm trọ
- Điều kiện trước: Người tìm trọ đã truy cập vào website
- Điều kiện sau: Thông tin chi tiết của tin phòng trọ được hiển thị