ĐẠI HỌC ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐỒ ÁN CƠ SỞ 2
ĐỀ TÀI: XÂY DỰNG WEBSITE
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
ĐẠ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Ọ
Đà 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ông qua 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ếu chí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ũng như khả năng tiếp
cận thông tin về các phòng trọ đang cho thuê còn rất hạn chế. 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ây dự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.
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ền thô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ình hướng dẫn, chỉ
bảo, giúp đỡ cho chúng em hoàn thành đề tài này. Chúng em cũng xin 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ăng
cho 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ảm
thô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
NHẬN XÉT
(Của giảng viên hướng dẫn)
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………
MỤ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
4.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
DANH 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
DANH MỤC CỤM TỪ VIẾT TẮT
STT 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
Chươ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ăn
trong việc tìm kiếm phòng trọ bằng các phương pháp truyền thống như rao
vặ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 tin
và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ìm
kiếm phòng trọ để khắc phục các nhược điểm của việc tìm trọ truyền
thống: khả năng tiếp cận các thông tin phòng trọ còn hạn chế, thông tin
thiếu chính xác, việc xác thực thông tin (xem trọ, liên hệ với chủ trọ) còn
tố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ấp
chứ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ức
năng đăng tải, hiển thị danh sách, thông tin phòng trọ chính xác, được cập
nhậ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ếm
thô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
Chươ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 trong
nhữ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ác
của chúng sẽ giúp chúng ta hiểu rõ hệ thống và cài đặt được nó. Phương
thứ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ất
dùng để biểu diễn hệ thống. Nói một cách đơn giản là nó dùng để tạo ra
cá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ôn
ngữ mô tả các biểu đồ nên cần nội dung thể hiện. Do vậy, chúng ta phân
tích và thiết kế theo hướng đối tượng và sử dụng UML để biểu diễn các
thiế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ần
mề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ác
class/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úp
ngườ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ười
dùng, nó sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic
giúp lấy đúng dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp
Model cung cấp và hiển thị dữ liệu đó ra cho người dùng nhờ lớp
View.
2.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ần
model, 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 CƠ SỞ LÝ THUYẾT.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ần
riêng biêt Controller - Model - View, việc đó làm cho quá trình phát
triể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
xử lý.
 Tạo mô hình chuẩn cho dự án, khi người có chuyên môn ngoài dự án
tiếp cận với dự án dễ dàng hơn.
 Mô hình đơn giản, dễ hiểu, xử lý những nghiệp vụ đơn giản, và dễ
dàng triển khai với các dự án nhỏ.
Nhược điểm:
 Đối với các dự án có tính phức tạp cao thì mô hình MVC trở nên
không khả dụng.
Tải bản FULL (file word 30 trang): bit.ly/2Ywib4t
Dự phòng: fb.com/KhoTaiLieuAZ
2.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ời
gian 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 Startup
nhanh nhất có thể.
2.3.2 ExpressJS
Expressjs là một framework được xây dựng trên nền tảng của Nodejs. Nó
cung cấp các tính năng mạnh mẽ để phát triển web hoặc mobile. Expressjs
hỗ trợ các method HTTP và midleware tạo ra API vô cùng mạnh mẽ và dễ
sử dụng.
Expressjs có một số chức năng chính:
 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ựa
trê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ơi
thường gọi là Not-Only SQL. CSDL này được phát triển trên Javascript
Framework 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ũng
như 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ông
cầ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 linh
hoạt này nên MongoDB có thể được dùng để lưu trữ các dữ liệu có cấu
trú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 Document
khác.
 Cấu trúc của một đối tượng là rõ ràng.
Tải bản FULL (file word 30 trang): bit.ly/2Ywib4t
Dự phòng: fb.com/KhoTaiLieuAZ
 Không có các Join phức tạp.
 Khả năng truy vấn sâu hơn. MongoDB hỗ trợ các truy vấn động
trên các Document bởi sử dụng một ngôn ngữ truy vấn dựa trên
Document mà mạnh mẽ như SQL.
 MongoDB dễ dàng để mở rộng.
 Việc chuyển đổi/ánh xạ của các đối tượng ứng dụng đến các đối
tượng cơ sở dữ liệu là không cần thiết.
 Sử dụng bộ nhớ nội tại để lưu giữ phần công việc, giúp truy cập dữ
liệu nhanh hơn.
Chươ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ấp
các thông tin cần thiết và nhấn đăng ký. Nếu thành công thông tin sẽ được
lư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
6849972

XÂY DỰNG WEBSITE TÌM KIẾM PHÒNG TRỌ

  • 1.
    ĐẠI HỌC ĐÀNẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN CƠ SỞ 2 ĐỀ TÀI: XÂY DỰNG WEBSITE 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
  • 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Ọ
  • 3.
    Đà Nẵng, tháng12 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ông qua 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ếu chí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ũng như khả năng tiếp cận thông tin về các phòng trọ đang cho thuê còn rất hạn chế. 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ây dự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.
  • 4.
    LỜI CẢM ƠN Chúngem xin chân thành cảm ơn Khoa Công nghệ Thông tin và Truyền thô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ình hướng dẫn, chỉ bảo, giúp đỡ cho chúng em hoàn thành đề tài này. Chúng em cũng xin 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ăng cho 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ảm thô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
  • 5.
    NHẬN XÉT (Của giảngviên hướng dẫn) …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… ……………………………………………………………………
  • 6.
    MỤC LỤC Trang MỞ ĐẦU...............................................................................................................3 LỜICẢ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
  • 7.
    4.7 Chức năngquả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
  • 8.
    DANH MỤC HÌNH Trang Hình2.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
  • 9.
    DANH MỤC CỤMTỪ VIẾT TẮT STT 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
  • 10.
    Chương 1 GIỚITHIỆ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ăn trong việc tìm kiếm phòng trọ bằng các phương pháp truyền thống như rao vặ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 tin và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ìm kiếm phòng trọ để khắc phục các nhược điểm của việc tìm trọ truyền thống: khả năng tiếp cận các thông tin phòng trọ còn hạn chế, thông tin thiếu chính xác, việc xác thực thông tin (xem trọ, liên hệ với chủ trọ) còn tố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ấp chứ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ức năng đăng tải, hiển thị danh sách, thông tin phòng trọ chính xác, được cập nhậ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ếm thô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
  • 11.
    Chươ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 trong nhữ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ác của chúng sẽ giúp chúng ta hiểu rõ hệ thống và cài đặt được nó. Phương thứ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ất dùng để biểu diễn hệ thống. Nói một cách đơn giản là nó dùng để tạo ra cá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ôn ngữ mô tả các biểu đồ nên cần nội dung thể hiện. Do vậy, chúng ta phân tích và thiết kế theo hướng đối tượng và sử dụng UML để biểu diễn các thiế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ần mề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ác class/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úp ngườ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ười dùng, nó sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị dữ liệu đó ra cho người dùng nhờ lớp View.
  • 12.
    2.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ần model, 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 CƠ SỞ LÝ THUYẾT.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ần riêng biêt Controller - Model - View, việc đó làm cho quá trình phát triể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 xử lý.  Tạo mô hình chuẩn cho dự án, khi người có chuyên môn ngoài dự án tiếp cận với dự án dễ dàng hơn.  Mô hình đơn giản, dễ hiểu, xử lý những nghiệp vụ đơn giản, và dễ dàng triển khai với các dự án nhỏ. Nhược điểm:  Đối với các dự án có tính phức tạp cao thì mô hình MVC trở nên không khả dụng. Tải bản FULL (file word 30 trang): bit.ly/2Ywib4t Dự phòng: fb.com/KhoTaiLieuAZ
  • 13.
    2.3 ExpressJS framework 2.3.1Khá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ời gian 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 Startup nhanh nhất có thể. 2.3.2 ExpressJS Expressjs là một framework được xây dựng trên nền tảng của Nodejs. Nó cung cấp các tính năng mạnh mẽ để phát triển web hoặc mobile. Expressjs hỗ trợ các method HTTP và midleware tạo ra API vô cùng mạnh mẽ và dễ sử dụng. Expressjs có một số chức năng chính:  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ựa trê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ơi thường gọi là Not-Only SQL. CSDL này được phát triển trên Javascript Framework 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ũng như 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ông cầ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 linh hoạt này nên MongoDB có thể được dùng để lưu trữ các dữ liệu có cấu trú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 Document khác.  Cấu trúc của một đối tượng là rõ ràng. Tải bản FULL (file word 30 trang): bit.ly/2Ywib4t Dự phòng: fb.com/KhoTaiLieuAZ
  • 14.
     Không cócác Join phức tạp.  Khả năng truy vấn sâu hơn. MongoDB hỗ trợ các truy vấn động trên các Document bởi sử dụng một ngôn ngữ truy vấn dựa trên Document mà mạnh mẽ như SQL.  MongoDB dễ dàng để mở rộng.  Việc chuyển đổi/ánh xạ của các đối tượng ứng dụng đến các đối tượng cơ sở dữ liệu là không cần thiết.  Sử dụng bộ nhớ nội tại để lưu giữ phần công việc, giúp truy cập dữ liệu nhanh hơn.
  • 15.
    Chương 3 PHÂNTÍ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ấp các thông tin cần thiết và nhấn đăng ký. Nếu thành công thông tin sẽ được lư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 6849972