Tải bản đầy đủ (.pdf) (41 trang)

Xây dựng website tìm kiếm và đăng tin phòng trọ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.1 MB, 41 trang )

TRƯỜNG ĐẠI HỌC VINH

KHOA CÔNG NGHỆ THÔNG TIN
--------------------------

TRẦN HỮU HẢI

BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Tên đồ án:
XÂY DỰNG WEBSITE TÌM KIẾM VÀ ĐĂNG TIN PHỊNG TRỌ

Nghệ An, tháng 01 năm 2017


TRƯỜNG ĐẠI HỌC VINH

KHOA CÔNG NGHỆ THÔNG TIN
--------------------------

BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Tên đồ án:

XÂY DỰNG WEBSITE TÌM KIẾM VÀ ĐĂNG TIN PHÒNG TRỌ

Sinh viên thực hiện:

Trần Hữu Hải - Mã sinh viên : 1251075386
Lớp:



53K2

Giảng viên hướng dẫn: ThS. Trần Xuân Hào


LỜICẢMƠN
Từ trƣớc đến nay, dù là trong công việc hay học tập khơng có sự thành cơng nào
mà khơng gắn liền với sự hỗ trợ, sự giúp đỡ dù ít dù nhiều, dù trực tiếp hay gián tiếp
của những ngƣời bên cạnh. Trong suốt thời gian từ khi bắt đầu học tập ở giảng đƣờng
đại học đến nay, tôi đã nhận đƣợc rất nhiều sự quan tâm, giúp đỡ của q thầy cơ, gia
đình và bạn bè. Với lịng biết ơn sâu sắc nhất, tôi xin gửi đến quý thầy cô ở khoa Công
Nghệ Thông Tin - Trƣờng Đại Học Vinh đã cùng với tri thức và tâm huyết của mình
để truyền đạt vốn kiến thức q báu cho tơi trong suốt thời gian học tập tại trƣờng.
Đặc biệt, tôi xin chân thành cảm ơn thầy Trần Xuân Hàođã tạo điều kiện, tận
tâm hƣớng dẫn tôi qua từng buổi trao đổi, thảo luận về vấn đề xây dựng “Website tìm
kiếm và đăng tin phịng trọ”.Nếu khơng có những lời hƣớng dẫn, dạy bảo của thầy
thì tơi nghĩ đồ án tốt nghiệp này rất khó có thể hồn thiện đƣợc. Một lần nữa tôi xin
chân thành cảm ơn thầy.
Bài báo cáo đƣợc thực hiện trong khoảng thời gian 3 tháng. Bƣớc đầu
“Website tìm kiếm và đăng tin phịng trọ” đã đáp ứng đƣợc những chức năng nhƣ
ý tƣởng ban đầu, song do thời gian có hạn, kiến thức và kinh nghiệm bản thân của tơi
cịn hạn chế và cịn nhiều bỡ ngỡ. Do vậy, khơng tránh khỏi thiếu sót là điều chắc
chắn, tơi rất mong nhận đƣợc những ý kiến đóng góp q báu của q thầy cơ để kiến
thức của tơi trong lĩnh vực này đƣợc hồn thiện hơn.
Sau cùng tôi xin chúc quý thầy cô trong Khoa Công Nghệ Thông Tin thật dồi dào
sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến
thức cho thê hệ mai sau.
Tôi xin chân thành cảm ơn!
Nghệ An, ngày 11 tháng 1 năm 2017

Sinh viên thực hiện:
Trần Hữu Hải


LỜI MỞ ĐẦU
Công nghệ thông tin ngày càng phát triển, đóng vai trị cực kì quan trọng trong
nền kinh tế - văn hóa - xã hội của mỗi quốc gia. 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 làm việc, cách tiếp cận với
thơng tin theo hƣớng nhanh chóng và tiện lợi nhất.
Đất nƣớc Việt Nam chúng ta đang trên đà phát triển. Nhân lực tại các thành phố
càng ngày càng tăng, nên nhu cầu tìm kiếm phịng trọ, nhà trọ để th, cũng nhƣ tìm
mặt bằng làm văn phịng đại diện, địa điểm giao dịch là rất lớn. Nếu trƣớc đây việc
tìm kiếm nhà trọ chủ yếu thơng qua các kênh môi giới tốn kém hay dán quảng cáo
phát tờ rơi vừa không hiểu quả lại gây mất mỹ quan, nhƣng bằng cách nào để ngƣời
thuê gặp đƣợc chủ nhà một cách dễ dàng và thuê đƣợc căn nhà ƣng ý nhất ?Hiện nay,
nhu cầu tìm kiếm mọi thơng tin trên internet đã trở nên khá phổ biến. Chính vì thế,
đề tài của tơi mong muốn áp dụng cơng nghệ thông tin vào đời sống thực tế, và tôi đã
quyết định lựa chọn đề tài:“Xây dựng website tìm kiếm và đăng tin phịng trọ”,
cho phép ngƣời dùng tìm kiếm vàđăng tin cho th phịng trọ, nhà trọ, tìm ngƣời ở
ghép... một cách nhanh chóng và hiệu quả nhất.
Báo cáo dƣới đây sẽ giới thiệu và phân tích về cách thức hoạt động của hệ
thống website với cách chức năng đơn giản hóa tạo sự thuận tiện, và hiệu quảtrong
việc tìm kiếm và đăng tin dành cho ngƣời dùng, với giao diện thân thiện với ngƣời
dùng đáp ứng đƣợc nhu cầu sử dụng thực tế để ngƣời dùng dễ thao tácsử dụng, cũng
nhƣ tạo sự thuận lợi trong công tác quản lý và bảo trì nâng cấp cho website ngày
càng tốt hơn.


MỤC LỤC


LỜICẢMƠN
LỜI MỞ ĐẦU
MỤC LỤC
CHƢƠNG 1: TỔNG QUAN VỀ HỆ THỐNG ...............................................................1
1.1 Mục tiêu của đồ án .................................................................................................1
1.2 Yêu cầu của đồ án ..................................................................................................1
1.3 Lựa chọn ngơn ngữ lập trình và hệ quản trị cơ sở dữ liệu .....................................2
CHƢƠNG 2: KHẢO SÁT HỆ THỐNG .........................................................................7
2.1 Hoạt động của hệ thống hiện tại.............................................................................7
2.2 Đánh giá của hệ thống hiện tại ...............................................................................7
2.3 Yêu cầu đối với hệ thống hiện nay.........................................................................8
2.3.1 Yêu cầu về phần mềm......................................................................................8
2.3.2 Yêu cầu về ngƣời dùng ....................................................................................8
CHƢƠNG 3: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG ....................................................9
3.1 Các chức năng chính của hệ thống .........................................................................9
3.1.1 Yêu cầu về phần cứng và phần mềm: ..............................................................9
3.1.2 Yêu cầu về website: .........................................................................................9
3.1.3 Yêu cầu về chức năng: .....................................................................................9
3.1.4 Yêu cầu phi chức năng...................................................................................10
3.2 Biểu đồ phân cấp chức năng ................................................................................11
3.3 Biểu đồ use case ...................................................................................................12
3.3.1 Biểu đồ use case của hệ thống .......................................................................12
3.3.2 Biểu đồ use case đăng tin...............................................................................13
3.3.3 Biểu đồ use case quản lý tài khoản ngƣời dùng ............................................13
3.3.4 Biểu đồ use case quản lý tin ..........................................................................14
3.4 Thiết kế cơ sở dữ liệu ...........................................................................................15
CHƢƠNG 4: GIAO DIỆN CHÍNH CỦA WEBSITE...................................................24
4.1 Trang chủ: ............................................................................................................24
4.2 Trang danh sách theo thể loại tin: ........................................................................25



4.3 Trang chi tiết phòng: ............................................................................................26
4.4 Form phản ánh của ngƣời dùng: ..........................................................................27
4.5 Trang kết quả tìm kiếm: .......................................................................................28
4.6 Trang lƣu tin: ........................................................................................................29
4.7 Trang đăng tin: .....................................................................................................30
4.8 Trang quản trị : .....................................................................................................31
4.9 Trang thống kê lƣợt xem: .....................................................................................32
KẾT LUẬN ...................................................................................................................33
i. Kết quả đạt đƣợc của đề tài .....................................................................................33
ii. Hạn chế của đề tài ..................................................................................................33
iii. Hƣớng khắc phục và phát triển đề tài ...................................................................33
TÀI LIỆU THAM KHẢO .............................................................................................35


Đồ án tốt nghiệp đại học

CHƢƠNG 1: TỔNG QUAN VỀ HỆ THỐNG
1.1 Mục tiêu của đồ án
Đây là website chứa một lƣợng lớn thơng tin về các nhà, phịng hiện tại chủ nhà
khơng có nhu cầu sử dụng và muốn cho thuê. Ngƣời truy cập vào trang website có thể
sử dụng chức năng tìm kiếm theo khu vực ở thành phố, quận huyện, tìm theo địa chỉ
nhƣ số nhà của đƣờng nào đó, theo giá tiền thuê cũng nhƣ các tiện nghi của nhà, phòng
cho thuê... Đồng thời website cũng liên kết với các website khác nhằm giúp ngƣời truy
cập có đƣợc hƣớng dẫn cụ thể sơ đồ đi đến nhà cần tìm, cung cấp cho ngƣời truy cập
thơng tin chi tiết về nhà, phịng có nhu cầu cho th, địa chỉ, email cũng nhƣ điện thoại
để liên hệ với chủ nhà. Website cũng có khả năng tiếp nhận cập nhật thơng tin về một
ngơi nhà nào đó mà chủ nhà muốn đăng tải trên website cũng nhƣ các đăng ký quảng
cáo trên website từ phía các cơng ty khác.
1.2 u cầu của đồ án

- Để đồ án có tính khả thi và thực tế thì nó cần đáp ứng đƣợc các chức năng nhƣ sau:
- Cho phép ngƣời dùng khơng cần đăng ký tài khoản vẫn có thể vào tham quan
trang web, tìm kiếm phịng trọ, nhà trọ, tìm ngƣời ở ghép, xem các thông tin chi tiết và
so sánh giá cả giữa các phòng và chỉ phải đăng ký, đăng nhập khi muốn đăng tin hoặc
muốn dùng chức năng phản ánh tình trạng phịng.
- Cho phép ngƣời dùng đăng kí tài khoản, và đăng tin miễn phí.
- Tìm kiếm những phòng mong muốn theo tỉnh thành, quận huyện, phƣờng xã,
đƣờng, giá cả, diện tích...
- Cho phép ngƣời dùng xem đƣợc địa chỉ liên hệ chi tiết, cũng nhƣ số điện thoại
để liên hệ với chủ phòng.
- Cho phép ngƣời dùng lƣu tin khi tìm kiếm trên website để xem lại.
- Cho phép sắp xếp giá phòng theo giá giảm dần hoặc tăng dần và ngày đăng theo
mới nhất và cũ nhất.
- Cho phép ngƣời dùng bình luận, chia sẻ bài viết lên các trang mạng xã hội nhƣ
Facebook, Google+ ...
- Các ngƣời dùng đã đăng ký tạo tài khoản trên website thì có thể:
+ Đăng tin miễn phí
+ Xem thơng tin của tin mình đã đăng nhƣ ngày giờ tạo, tên tài
khoản.
+ Có thể chỉnh sửa thơng tin tài khoản của mình nhƣ thay đổi mật khẩu.

Trần Hữu Hải - Lớp 53K2 - CNTT

1


Đồ án tốt nghiệp đại học
+ Chỉnh sửa cập nhật hoặc xóa tin đã đăng.
- Về ngƣời quản trị (admin) là ngƣời có trách nhiệm quản lý tồn bộ hệ thống, sẽ
có các chức năng nhƣ sau:

+ Quản lí các tài khoản của ngƣời dùng trong hệ thống, thống kê số lƣợng
tài khoản, có thể thêm sửa xóa các tài khoản khác.
+ Quản lí tất cả các tin đã đăng của ngƣời dùng, thêm sửa xóa các bài đăng.
+ Quản lí tin phản ánh từ ngƣời dùng.
+ Quản lí thống kê lƣợt xem trang và lƣợt xem bài viết của website.
+Ngồi ra admin có thể tham quan website, xem các bài viết chi tiết và đăng
tin nhƣ ngƣời dùng bình thƣờng.
- Và điểm mới của website so với các trang website tìm kiếm đăng tin phịng trọ
thơng thƣờng là có thêm chức năng:
+ Tìm kiếm theo từ cụm từ khóa, tìm kiếm nâng cao kết hợp nhiều trƣờng
tìm kiếm nhƣ kết hợp giữa các trƣờng chuyên mục tin, tỉnh thành, quận
huyện, phƣờng xã,đƣờng, giá cả, diện tích, đối tƣợng cho thuê.
+ Lƣu tin, xóa tin đã lƣu.
+ Phản ánh của ngƣời dùng.
+ Ở phần chi tiết phịng có kèm bản đồ Google Map giúp ngƣời tìm có thể
dễ hình dung vị trí nơi cần tìm.
+ Có thêm chức năng bình luận chia sẻ like lên các trang mạng xã hội nhƣ
Facebook , Google + , giúp ngƣời dùng có thể dễ dàng tìm kiếm hơn.
+ Ở mục quản trị có thêm chức năng năng thống kê lƣợt xem tin bằng biểu
đồ trực quan.
1.3 Lựa chọn ngơn ngữ lập trình và hệ quản trị cơ sở dữ liệu
Việc lựa chọn ngôn ngữ lập trình cần đáp ứng đƣợc các yêu cầu sau:
+ Chƣơng trình viết bằng ngơn ngữ phải chạy đƣợc trên các máy tính có hệ
điều hành khác nhau nhƣ Windows, Unix, Linux,…
+ Có tính an tồn và bảo mật cao.
+ Trong sáng, dễ hiểu, dễ sửa chữa và bảo trì.
+ Mã nguồn rõ ràng, tách biệt giữa mã nguồn với giao diện html.
+ Hƣớng đối tƣợng để phù hợp với nhu cầu đồ án đặt ra.

Trần Hữu Hải - Lớp 53K2 - CNTT


2


Đồ án tốt nghiệp đại học
Việc lựa chọn hệ quản trị cơ sở dữ liệu cần đáp ứng đƣợc những yêu cầu sau:
+ Ngân hàng dữ liệu thích hợp với mơ hình thơng tin phong phú và đáp ứng
đƣợc về nhu cầu áp dụng vào thực tiễn.
+ Phải có các công cụ hữu hiệu để ngăn chặn tranh chấp và xung đột dữ liệu.
+ Ngôn ngữ mạch lạc, dễ sử dụng, cho phép ngƣời lập trình ứng dụng, tùy
biến mềm dẻo, nhanh chóng, đáp ứng đƣợc tất các nhu cầu trong hệ thống
+ Phổ biến, dễ cài đặt, dễ quản trị.
Để đáp ứng đƣợc những yêu cầu trên, trong đồ án này tơi đã sử dụng ngơn ngữ lập
trình Java và hệ quản trị cơ sở dữ liệu SQL Server 2012. Đây là ngôn ngữ và hệ quản
trị rất phổ biến và phù hợp với yêu cầu bài toán đặt ra.
Ngồi ra, ngơn ngữ Java cịn có thêm rất nhiều ƣu điểm nhƣ vừa biên dịch, vừa
thông dịch, giúp mã Java có thể chạy trên nhều nền tảng khác nhau với điều kiện là
JVM (Java Virtual Machine) có hỗ trợ trên nền tảng đó. Java cũng có ƣu điểm rất nổi
bật đó là cơ chế thu gom rác tự động. Khi tạo ra các đối tƣợng trong Java, JRE sẽ tự
động cấp phát không gian bộ nhớ cho các đối tƣợng ở trên heap.
Với ngôn ngữ nhƣ C \ C++, ta sẽ phải yêu cầu hủy vùng nhớ mà bạn đã cấp phát,
để tránh việc thất thoát vùng nhớ. Tuy nhiên vì một lý do nào đó, nếu ta khơng hủy
một vài vùng nhớ, dẫn đến việc thất thoát và làm giảm hiệu năng chƣơng trình.
Ngơn ngữ lập trình Java hỗ trợ cho chúng ta giải quyết vấn đề này, nghĩa là ta
không phải tự gọi hủy các vùng nhớ. Bộ thu dọn rác của Java sẽ theo vết các tài
ngun đã đƣợc cấp. Khi khơng có tham chiếu nào đến vùng nhớ, bộ thu dọn rác sẽ
tiến hành thu hồi vùng nhớ đã đƣợc cấp phát.
Bên cạnh việc lựa chọn ngơn ngữ Java, cơng nghệ lập trình cũng là một yếu tố rất quan
trọng, công nghệ tôi ứng dụng để xây dựng trang web là công nghệ Struts 2. Struts là
một framework nguồn mở mở rộng Java Servlet API và sử dụng kiến trúc Model,

View, Controller (MVC 2). Nó cho phép tạo ra các ứng dụng web linh hoạt dựa trên
công nghệ tiêu chuẩn, nhƣ các trang JSP, JavaBeans và XML. Đây là một
framework khơng cịn q mới nhƣng đang đƣợc ứng dụng rất rộng rãi để giải quyết
rất nhiều các vấn đề liên quan đến các ứng dụng Web hƣớng business đòi hỏi hiệu
năng cao sử dụng Java servlet và JSP. Struts đƣợc phát triển bởi Craig McClanahan và
đƣợc bảo trợ bởi Apache, nhóm Jakarta. Hiện nay rất nhiều tập đồn, cơng ty lớn trong
việc xây dựng các website cũng đang sử dụng mơ hình này vàđây cũng là công nghệ
tôi đƣợc học trong thời gian thực tập tại FPT Software Đà Nẵng trong đợt vừa rồi.
Struts 2 là sản phẩm của Apache: webwork + struts 1 (với webwork là
framework đƣợc phát triển bởi opensymphony, struts 1 là sản phẩm của Apache ).

Trần Hữu Hải - Lớp 53K2 - CNTT

3


Đồ án tốt nghiệp đại học
Struts 2 bắt nguồn và dựa trên nền tảng cơ bản là mơ hình thiết kế MVC 2. MVC
viết tắt là Model - View - Controller. Đây là phƣơng pháp thiết kế dựa trên việc chia
nhỏ một ứng dụng nhiều lớp hoặc chia nhỏ phần giao diện ngƣời dùng (user interface)
của một ứng dụng thành ba phần chính là Model, View và Controller. Struts 2 đƣợc
cung cấp hàng loạt các thƣ viện và tiện ích để hỗ trợ ngƣời dùng phát triển ứng dụng
web theo mơ hình MVC một cách nhanh chóng và dễ dàng.
Struts 2 Framework hỗ trợ việc xây dựng ứng dụng web theo mơ hình MVC2
nhƣng đơn giản hóa hơn mơ hình Strut 1 Framework nhƣ rút gon tập tin cấu hình hay
sử dụng annotation thay thế cho tập tin cấu hình.
Một số đặc tính cải tiến của Struts 2 Framework:
+ Java Beans đƣợc sử dụng để thay thế Action form và có phƣơng thức chỉ
định để kích hoạt thực thi (mặc định là phƣơng thức execute khơng có tham
số truyền và kiểu trả về là kiểu String ) nhằm tăng khả năng tái sử dụng các

object trong các ứng dụng và các framework khác. Đặc biệt, chung dễ dàng
thuận tiện cho testing từng phần chức năng và thành phần.
+ Sử dụng cả annotation và tập tin cấu hình XML rút gọn.
+Sử dụng ngôn ngữ mới Object Graphic Notation Language (OGNL) thay
thế cho EL của JSP.
OGNL là một dạng ngôn ngữ biểu thức cho phép thành phần Interceptors
vả Result sử dụng để truy cập đến dữ liệu lƣu trữ trong Value Stack.
+ Sử dụng bộ taglib duy nhất thay cho 4-5 bộ taglib trong Struts 1
Framework và JSTL 1.1 trong JSP
Model (tạm dịch là phần “Mơ hình”) là một đối tƣợng hoặc tập hợp các đối
tƣợng biểu diễn cho phần dữ liệu của chƣơng trình, ví dụ các dữ liệu đƣợc lƣu trong cơ
sở dữ liệu hay từ các hệ thống ứng dụng khác (nhƣ email…). Model trong Struts 2,
thành phần Model đƣợc cài đặt bởi các lớp hành động ( Action class ).
Trong một ứng dụng, Model là thành phần cài đặt tồn bộ cấu trúc dữ liệu và
thuật tốn giải quyết vấn đề. Hay nói cách khác Model bao gồm Data Model và
Business Logic.
Trong Struts 2 , Action đƣợc cài đặt bởi các lớp Java thuần túy (POJO - Plain
Old Java Object).
View (tạm dịch là phần “Hiển thị”) là phần giao diện với ngƣời dùng, bao gồm
việc hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp thoại, chọn lựa,… để
ngƣời dùng có thể thêm, sửa, xóa và tìm kiếm và làm các thao tác khác đối với dữ liệu

Trần Hữu Hải - Lớp 53K2 - CNTT

4


Đồ án tốt nghiệp đại học
trong hệ thống. View trong Struts 2 là thành phần hiện thị đƣợc định nghĩa là Result.
Có thể xây dựng Result trên nhiều ngơn ngữ nhƣ: JSP, Velocity, Freemaker, XSLT,...

Về cơ bản, trong một ứng dụng sẽ có rất nhiều lớp Action để xử lí các request.
Một Action class nhận request, gọi các phƣơng thức tác vụ để xử lí rồi chọn một mẫu
trình diễn Result để hiện thị kết quả đến ngƣời dùng. Thông thƣờng phƣơng thức tác
vụ cài đặt và trả về một trong hai giá trị: SUCCESS hoặc ERROR và Action sẽ dựa
vào các giá trị này để gọi Result tƣơng ứng.
Controller (tạm dịch là phần “Điều khiển”) là phần điều khiển toàn bộ logic về
hoạt động của giao diện, tƣơng tác với thao tác của ngƣời dùng (từ chuột, bàn phím và
các thiết bị ngoại vi khác) và cập nhật, thao tác trên dữ liệu theo đầu vào nhận đƣợc và
điều khiển việc chọn phần “Hiển thị” thích hợp để truyền dữ liệu tới ngƣời dùng.
Controller trong Struts 2 thành phần Controller đƣợc cài đặt bởi Filter Dispatcher. Đây
là thành phần đầu tiên giao tiếp với HttpRequest, định hƣớng request đến model,
Framwork làm mọi việc, ngƣời lập trình chỉ cần khai báo URL nào sẽ đƣợc xử lý bởi
Action nào tròn file định dạng XML có tên struts.xml hoặc sử dụng Java annotation.
Với phƣơng pháp thiết kế này, các chức năng hiển thị, chức năng logic điều
khiển và chức năng truy cập dữ liệu của chƣơng trình đƣợc chia làm các phần tách
biệt.
Java là một ngơn ngữ lập trình hƣớng đối tƣợng thuần túy nên việc áp dụng
MVC vào các phần mềm viết bằng Java rất dễ dàng và hiển nhiên. Có hai hình mẫu
chính của phƣơng pháp thiết kế MVC trong Java là MVC model 1 và MVC model 2.
Trong MVC model 1, các trang JSP đóng vai trị “Hiển thị” (View) và “Điều
khiển” (Controller). Có thể có nhiều trang JSP khác nhau đóng các vai trị khác nhau.
Thao tác của ngƣời dùng trên trình duyệt web đƣợc gửi tới một trang JSP. Trang
JSP này sẽ khởi tạo một hoặc nhiều Java Bean (nếu cần thiết), truyền các lệnh cần thi
hành tới Java Bean (không phải Enterprise Java Bean).
Sau khi Java Bean thực hiện xong việc truy xuất hoặc cập nhật dữ liệu, trang JSP
ban đầu có thể hiển thị dữ liệu lấy từ Bean (JSP ban đầu đóng ln vai trò View), hoặc
chọn một trang JSP khác để hiện dữ liệu từ Bean (JSP ban đầu đóng ln vai trò
Controller). Trong một thiết kế tốt, để đảm bảo việc tách tời phần trình bày và logic
của chƣơng trình, trang JSP nhận u cầu chỉ đóng vai trị “Điều khiển” (Controller).
MVC model 1 có một nhƣợc điểm là phần logic điều khiển đƣợc viết trong trang

JSP, nhƣ vậy phần chƣơng trình Java phức tạp dùng để điều khiển sẽ bị lẫn vào trong
mã HTML dùng để trình bày. Độ phức tạp của chƣơng trình càng cao thì trang JSP
càng khó phát triển và bảo trì. Hơn nữa, trong các dự án phức tạp, phần hiển thị do

Trần Hữu Hải - Lớp 53K2 - CNTT

5


Đồ án tốt nghiệp đại học
ngƣời thiết kế web giỏi về HTML và đồ họa thực hiện, còn phần điều khiển đƣợc
ngƣời chuyên về lập trình thực hiện. Dùng JSP làm phần điều khiển sẽ khó phân ranh
giới trách nhiệm giữa nhóm thiết kế đồ họa và nhóm lập trình.
Trong MVC model 2, một hoặc nhiều servlet (thƣờng là một) đóng vai trị điều
khiển, các Java Bean đóng vai trị mơ hình và các trang JSP đóng vai trị hiển thị.
Trong model 2, các logic phức tạp của chƣơng trình đƣợc viết hồn tồn trong
các trang servlet (chƣơng trình Java). Phần hiển thị chỉ gồm các trang JSP với một vài
mã đơn giản để lấy dữ liệu có sẵn, khơng có logic phức tạp, vì thế hồn tồn có thể
giao cho ngƣời thiết kế web.
Các yêu cầu của ngƣời dùng đƣợc gửi từ trình duyệt tới servlet. Servlet sẽ khởi
tạo các Java Bean (nếu cần thiết), ra lệnh thu thập, cập nhật thơng tin. Khi Java Bean
hồn thành cơng việc, servlet sẽ chọn trang JSP thích hợp để hiện thơng tin trong Java
Bean cho ngƣời dùng.
Đây là một cách sử dụng MVC rất hiệu quả trong Java. Tất nhiên, sử dụng MVC
model 2 một cách hoàn toàn cứng nhắc, phần “Điều khiển” chỉ dùng servlet, phần
“Hiển thị” chỉ dùng JSP sẽ dẫn đến một vài trƣờng hợp kém hiệu quả, nhất là khi các
u cầu từ trình duyệt chỉ địi hỏi việc hiển thị thông tin.
Trong website này của tôi địi hỏi khá nhiều các nghiệp vụ logic chứ khơng chỉ
riêng hiển thị các dữ liệu ra màn hình nên tôi chọn MVC model 2 để áp dụng vào việc
thiết kế và phát triển website.

Bên cạnh đó, về hệ quản trị cơ sở dữ liệu, tôi chọn hệ quản trị cơ sở dữ liệu SQL
Server 2012. Đây là phiên bản thứ 2 của hệ quản trị cơ sở dữ liệu SQL Server 2012.
Dù không phải là một phiên bản mới, tuy nhiên nó đƣợc cập nhật các tính năng mới và
hoàn thiện về hiệu suất hoạt động. Các ƣu điểm của SQL Server 2012 nổi bật nhƣ:
+ Công nghệ ảo hóa
+ Khả năng quản lý
+ Khả năng mở rộng
+ Dịch vụ Web
+ Kết nối mạng và truy nhập.
+ Khả năng kết nối tốt hơn với Windows 7
Vì vậy tơi đã quyết định lựa chọn 2 công cụ này để thực hiện đồ án, với các công
cụ hỗ trợ thêm nhƣ Eclipse Jee Neon, Apache Tomcat 9.0, Photoshop Cs 6, Snipping
Tool, Paint , Notepad++...

Trần Hữu Hải - Lớp 53K2 - CNTT

6


Đồ án tốt nghiệp đại học

CHƢƠNG 2: KHẢO SÁT HỆ THỐNG
2.1 Hoạt động của hệ thống hiện tại
- Các chức năng chính của website là:
+ Lƣu trữ các thơng tin về đặc điểm ngôi nhà, căn nhà cần cho thuê nhƣ ở
khu vực nào, địa chỉ, giá thuê phòng và các thơng tin cần thiết để có thể liên
lạc với chủ nhà. Các thông tin đƣợc lƣu trữ theo cấu trúc hợp lý thuận lợi cho
việc tìm kiếm nhanh.
+ Giao diện bắt mắt, thân thiện, cho phép đặt các thông tin quảng cáo.
+ Trang bị chức năng tìm kiếm linh hoạt giúp ngƣời dùng có thể nhanh

chóng tìm kiếm ra thông tin nhà trọ khu vực, địa chỉ, giá cả...
- Các nhóm ngƣời dùng:
+ Ngƣời sử dụng trang web có thể là bất kỳ ai biết sử dụng internet và đang
có nhu cầu cần th nhà, phịng để ở trọ lại ít có thời gian đọc trên báo chí,
hoặc khơng muốn liên hệ với các trung tâm giao dịch nhà đất. Ngƣời dùng có
thể cung cấp ý kiến cho ngƣời quản trị.
+ Hay chủ nhà có nhà, phịng hiện tại không sử dụng mà muốn cho thuê
nhƣng lại không muốn đăng quảng cáo trên báo chí thủ tục rƣờm rà, không
muốn liên hệ với các trung tâm giao dịch hay in dán phát tờ rơi quảng cáo lên
tƣờng, cột điện gây mất mỹ quan đơ thị có thể tìm đến website đăng kí một
tài khoản để đƣa các thơng tin lên website.
2.2 Đánh giá của hệ thống hiện tại
- Ƣu điểm:
+ Giao diện website thân thiện và dễ dùng.
+ Các chức năng tìm kiếm và đăng tin, lƣu tin, phản ánh tin, đăng ký tài
khoản ngƣời dùng đƣợc bố trí hợp lí cho phép ngƣời sử dụng thao tác nhanh
chóng và hiểu quả.
+ Dễ dàng quản lý cập nhật các thông tin đã đăng cũng nhƣ thông tin tài
khoản cá nhân của ngƣời dùng.
+Theo dõi và thống kê đƣợc lƣợt xem tin, và có thể tƣơng tác đƣợc sự phản
ánh của ngƣời dùng đối với các bài viết đăng lên để điều chỉnh, bổ sung
thống tin cho ngƣời dùng nhanh chóng.

Trần Hữu Hải - Lớp 53K2 - CNTT

7


Đồ án tốt nghiệp đại học
+ Có thể bình luận và chia sẻcác tin đăng của ngƣời dùng lên các trang mạng

xã hội nhƣ Facebook, Google+... giúp ngƣời cần tìm dễ dàng tìm kiếm.
- Nhƣợc điểm:
+ Cịn một số lĩnh vực về cho thuê nhà đất chƣa đƣợc đƣa vào để trang
website trở nên đa dạng và phong phú nguồn tin.
+ Việc quản lí ngƣời dùng và lƣợng tin đăng lên website cịn một vài hạn
chế.
+ Chƣa tích hợp đƣợc giao dịch thanh tốn trả phí về đăng tin tính phí với
ngƣời dùng.
2.3 Yêu cầu đối với hệ thống hiện nay
2.3.1 Yêu cầu về phần mềm
Yêu cầu về phần mềm của trang web rất đơn giản và hầu hết với mọi hệ điều
hành cũng nhƣ phần cứng không cần cấu hình cao cũng hồn tồn có thể đáp ứng
đƣợc.
+Website thiết kế chạy trên mạng Inter
+ Hệ điều hành có thể thích hợp gồm Windows, Unix, Linux...
+ Hệ quản trị cơ sở dữ liệu là SQL Server 2012, SQL Server 2014...
2.3.2 Yêu cầu về ngƣời dùng
Ngƣời dùng hệ thống cần phải sử dụng thành thạo Internet, có kiến thức về tin
học nhƣ khả năng nắm bắt, đọc hiểu các hƣớng dẫn sử dụng hệ thống.

Trần Hữu Hải - Lớp 53K2 - CNTT

8


Đồ án tốt nghiệp đại học

CHƢƠNG 3: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG

3.1 Các chức năng chính của hệ thống

3.1.1 Yêu cầu về phần cứng và phần mềm:
Hệ thống đƣợc xây dựng dựa trên tiêu chí dễ đƣa vào sử dụng rộng rãi nên các
yêu cầu về phần cứng và phần mềm không quá khắt khe, hầu hết đều sử dụng đƣợc
cho các hệ điều hành và các hệ quản trị cơ sở dữ liệu phổ biến.
- Hệ điều hành hỗ trợ chƣơng trình: Windows , Linux, Unix, …
- Hệ quản trị cơ sở dữ liệu SQL server 2012
- Phần mềm: Eclipse JEE, Tomcat 9.0,....
3.1.2 Yêu cầu về website:
Website chia làm ba phần:
- Phần cho nhà quản trị.
- Phần cho ngƣời dùng có nhu cầu tham quan xem tin và tìm kiếm.
- Phần cho ngƣời dùng đăng tin và thao tác quản trị tin của mình đã đăng.
3.1.3 Yêu cầu về chức năng:
 Chức năng quản trị viên:
Để truy cập vào hệ thống Để truy cập vào hệ thống, quản trị viên cần có một tài
khoản để đăng nhập, sau khi đăng nhập quản trị viên có thể thực hiện các chức năng
sau:
- Đăng nhập: Quản trị viên đăng nhập vào hệ thống để quản trị toàn bộ hệ
thống.
- Xem thống kê số lƣợng tài khoản theo loại khách hàng.
- Xem thống kê tất cả toàn bộ số lƣợt xem từng bài viết và theo thể loại tin.
- Quản lý thông tin tài khoản cá nhân với chức năng cập nhật thông tin.
- Quản lý tất cả các tài khoản của ngƣời dùng đăng ký, bao gồm các công việc:
thêm, sửa, xóa thơng tin tài khoản ngƣời dùng và phân quyền cho các tài khoản
đó trong hệ thống.
- Quản lý tất cả tin đã đăng đã trên website, bao gồm các cơng việc: tìm kiếm,
thêm, sửa, xóa các tin đã đăng trong hệ thống.
- Quản lý tiếp nhận tin nhắn phản ánh từ ngƣời dùng về các bài viết với cơng
việc: xem và xóa tin phản ánh.


Trần Hữu Hải - Lớp 53K2 - CNTT

9


Đồ án tốt nghiệp đại học

 Chức năng của ngƣời dùng chƣa có đăng ký tài khoản trên website:
- Đăng ký tạo tài khoản.
- Xem thông tin các bài đăng.
- Tìm kiếm thơng tin trên website.
- Sử dụng chức năng lƣu tin, xóa tin đã lƣu.
- Sử dụng chức năng bình luận chia sẽ lên bài viết lên các trang mạng xã hội
nhƣ: Facebook, Google +...
- Gửi phản ánh đến quản trị viên.
 Chức năng của ngƣời dùng đã đăng ký sửa dụng tài khoản trên website:
- Đăng nhập: Ngƣời dùng đăng nhập vào để xem tin hoặc đăng tin.
- Tìm kiếm thơng tin trên website.
- Sử dụng chức năng lƣu tin, xóa tin đã lƣu.
- Sử dụng chức năng bình luận chia sẽ lên bài viết lên các trang mạng xã hội
nhƣ: Facebook, Google +...
- Gửi phản ánh đến quản trị viên.
- Quản lí cập thơng tin tài khoản cá nhân.
- Quản lí các tin đã mà ngƣời dùng đó đã đăng bao gồm chức năng: thêm, sửa,
xóa tin.
3.1.4 Yêu cầu phi chức năng
- Giao diện: Ngoài các chức năng trên website cịn phải trình bày dễ hiểu, giao
diện gần gũi thiên thiện, ngƣời dùng dễ thấy thông tin hộ cần tìm, cung cấp cho ngƣời
dùng những tin mới nhất đƣợc cập nhật liên tục.
- An toàn: Điều quan trọng khi trao đổi thông tin trên mạng là phải đảm bảo

tuyệt đối cho những thông tin cá nhân liên quan đến khách hàng trong trình hoạt động
trên website.
- Độ tin cậy và tính pháp lý của tin đã đăng: Thơng tin đăng phải trung thực
chính xác, khơng đƣợc đăng tải hình ảnh hay thơng tin khơng phù hợp với nội quy của
trang website đề ra cũng nhƣ không vi phạm tính hợp pháp lý của pháp luật của quốc
gia đó đề ra.
- Bảo mật: Đồng thời website cần phải có hệ thống dễ nâng cấp bảo trì, sửa
chữa, cập nhật chức năng mới.
- Tốc độ truy cập: Đảm bảo tốc độ truy cập trên website ngay khi có cùng lúc
nhiều ngƣời truy cập vào.

Trần Hữu Hải - Lớp 53K2 - CNTT

10


Đồ án tốt nghiệp đại học
3.2 Biểu đồ phân cấp chức năng

Trần Hữu Hải - Lớp 53K2 - CNTT

11


Đồ án tốt nghiệp đại học
3.3 Biểu đồ use case
3.3.1 Biểu đồ use case của hệ thống

Trần Hữu Hải - Lớp 53K2 - CNTT


12


Đồ án tốt nghiệp đại học
3.3.2 Biểu đồ use case đăng tin

3.3.3 Biểu đồ use case quản lý tài khoản ngƣời dùng

Trần Hữu Hải - Lớp 53K2 - CNTT

13


Đồ án tốt nghiệp đại học
3.3.4 Biểu đồ use case quản lý tin

Trần Hữu Hải - Lớp 53K2 - CNTT

14


Đồ án tốt nghiệp đại học
3.4 Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu của đồ án gồm các bảng sau:
STT

Ý nghĩa

Tên bảng


Diễn giải
Lƣu tên tài khoản, mật
khẩu cũng nhƣ quyền
các tài khoản.
Lƣu thông tin chi tiết về
các tin ngƣời dùng
đăng.

1

NguoiDung

Ngƣời dùng

2

PhongChoThue

Phịng cho th

3

Anh

Ảnh

Lƣu trữ hình ảnh do
ngƣời dùng đăng tin.

4


PhanAnhTinhTrangTin

Phản ánh tình trạngTin

Lƣu thơng tin phản ánh
của ngƣời dùng về các
tin đã đăng.

5

TinhThanh

Tỉnh thành

Lƣu dữ liệu tên tỉnh
thành.

6

QuyenHuyenThanh

Quận huyện thành

Lƣu dữ liệu tên quận
huyện.

7

PhuongXa


Phƣờng xã

Lƣu dữ liệu tên phƣờng


8

Duong

Đƣờng

Lƣu dữ liệu tên đƣờng..

Chi tiết về các bảng nhƣ sau:
Bảng Anh:

Trần Hữu Hải - Lớp 53K2 - CNTT

15


Đồ án tốt nghiệp đại học

Mô tả:
STT

Tên cột

Kiểu dữ liệu


Diễn giải

Ràng buộc

1

maAnh

int

Mã ảnh

Khóa chính

2

tenAnh

nvarchar(MAX)

Tên ảnh

3

maPhong

int

Mã phịng


Khóa ngoại

Bảng NguoiDung:

Trần Hữu Hải - Lớp 53K2 - CNTT

16


Đồ án tốt nghiệp đại học
Mô tả:
STT

Tên cột

Kiểu dữ liệu

Diễn giải

Ràng buộc

1

userName

navarchar(50)

Tên đăng nhập


Khóa chính

2

password

nvarchar(50)

Mật khẩu đăng nhập

3

email

nvarchar(50)

Địa chỉ email

4

gioiTinh

nvarchar(50)

Giới tính

5

hoTen


nvarchar(50)

Họ tên

6

soDienThoai

nvarchar(50)

Số điện thoại

7

diaChi

nvarchar(MAX)

Địa chỉ phịng

8

anhDaiDien

nvarchar(50)

Ảnh đại diện

9


quyenHan

nvarchar(50)

Quyền hạn

Bảng PhanAnhTinhTrangTin:

Trần Hữu Hải - Lớp 53K2 - CNTT

17


Đồ án tốt nghiệp đại học
Mô tả:
STT

Tên cột

Kiểu dữ liệu

Diễn giải

Ràng buộc

1

maTinPhanAnh

int


Mã tin phản ánh

Khóa chính

2

userName

nvarchar(50)

Ngƣời dùng gửi tin

Khóa ngoại

3

mucPhanAnh

nvarchar(50)

Mục phản ánh

4

noiDungPhanAnh

nvarchar(MAX)

Nội dụng phản ánh


5

maPhong

int

Mã phòng

6

userNameDangTin

nvarchar(50)

Ngƣời dùng đăng tin

7

thoiGianPhanAnh

datetime

Thời gian phản ánh

Bảng PhongChoThue:

Trần Hữu Hải - Lớp 53K2 - CNTT

18



Đồ án tốt nghiệp đại học
Mô tả:
STT

Tên cột

Kiểu dữ liệu

Diễn giải

Ràng buộc

1

maPhong

int

Mã phịng

Khóa chính

2

tieuDeTin

nvarchar(MAX)


Tiêu đề tin

3

chuyenMucTin

nvarchar(50)

Chun mục tin

4

maTinhThanh

nvarchar(50)

Mã tỉnh thành

Khóa ngoại

5

maQuanHuyen

nvarchar(50)

Mã quận huyện

Khóa ngoại


6

maPhuongXa

nvarchar(50)

Mã phƣờng xã

Khóa ngoại

7

maDuong

nvarchar(50)

Mã đƣờng

Khóa ngoại

8

giaPhong

money

Giá phịng

9


giaDien

nvarchar(50)

Giá điện

10

giaNuoc

nvarchar(50)

Giá nƣớc

11

dienTich

float

Diện tích

12

veSinh

nvarchar(50)

Vệ sinh


13

tinhTrangPhong

nvarchar(50)

Tình trạng phịng

14

chiTietPhong

nvarchar(MAX)

Chi tiết phịng

15

diaChiPhong

nvarchar(MAX)

Địa chỉ phịng

16

doiTuongThue

nvarchar(50)


Đối tƣợng thuê

17

soNguoiO

nvarchar(50)

Số ngƣời ở

18

soDienThoai

nvarchar(50)

Số điện thoại

19

userName

nvarchar(50)

Tên ngƣời dùng

20

ngayDangTin


datetime

Ngày đăng tin

21

ngayHetHan

datetime

Ngày hết hạn

22

soLuotXem

int

Số lƣợt xem

23

tenAnhRoot

nvarchar(50)

Tên ảnh gốc

Trần Hữu Hải - Lớp 53K2 - CNTT


Khóa ngoại

19


×