Kể từ phiên bản 1.5 WordPress hỗ trợ quản lý các trang tĩnh, vì vậy nền tảng đã được tạo ra để sử dụng WordPress không như là một phầnmềm viết blog tinh khiết, mà còn là một hệ thống quả
Trang 1LỜI CẢM ƠN
Trong quá trình học tập tại Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông Thái Nguyên em đã nhận được sự chỉ bảo, dạy dỗ nhiệt tình và
sự giúp đỡ chân thành của các thầy, các cô, bạn bè cùng người thân
Em xin chân thành cảm ơn Bộ môn Công Nghệ Phần Mềm, Khoa CôngNghệ Thông Tin và trường Đại học Công Nghệ Thông Tin và Truyền ThôngThái Nguyên đã tạo điều kiện cho em hoàn thành đồ án này
Em xin gửi lời cảm ơn chân thành tới cô Nguyễn Thị Dung – giảng viên
Bộ môn Công Nghệ Phần Mềm đã nhiệt tình hướng dẫn em hoàn thành đồ án tốtnghiệp này
Em xin gửi lời cảm ơn sâu sắc tới tất cả các thầy cô giáo, những người đãgiảng dạy, trang bị cho em những kiến thức quý báu trong suốt những năm họcvừa qua tại trường Đại học Công Nghệ Thông Tin và Truyền Thông TháiNguyên
Xin chân thành cảm ơn tới gia đình, anh chị, bạn bè đã giúp đỡ, ủng hộ vàđộng viên em trong suốt thời gian học tập và nghiên cứu
Em hy vọng sẽ tiếp tục nhận được sự quan tâm, giúp đỡ của thầy cô giáo
để em hoàn thiện những vấn đề còn thiếu sót trong đồ án tốt nghiệp và hoàn thiệnmình hơn nữa
Em xin chân thành cảm ơn!Sinh viên thực hiện
Nguyễn Thị Tuyết Nhung
Trang 2LỜI CAM ĐOAN
Em xin cam đoan nội dung của đồ án này là sản phẩm của bản thân emtìm hiểu, nghiên cứu và xây dựng lên Không sao chép của ai Nội dung đồ án cótham khảo, sử dụng tài liệu, thông tin từ một số nguồn khác được trích dẫn trongphần tài liệu tham khảo và một số website Nếu có gì sai sót em xin chịu hoàntoàn mọi trách nhiệm và kỷ luật của trường đề ra
Tác giả đồ án
Nguyễn Thị Tuyết Nhung
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC CÁC BẢNG 6
DANH MỤC CÁC HÌNH 7
LỜI MỞ ĐẦU 9
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 11
1.1 Giới thiệu về PHP và MySQL 11
1.1.1 PHP là gì? 11
1.1.2 Hệ quản trị cơ sở dữ liệu MySQL 15
1.2 Mã nguồn mở WordPress 15
1.2.1 Giới thiệu về mã nguồn mở WordPress 15
1.2.2 Cài đặt WordPress 17
1.3 Giới thiệu về UML 20
1.3.1 Khái niệm của UML 20
1.3.2 Đặc điểm của UML 21
1.4 Giới thiệu về Google Maps API 21
CHƯƠNG 2 : KHẢO SÁT HIỆN TRẠNG 22
2.1 Đặt vấn đề 22
2.2 Giải pháp 22
2.3 Thực trạng hiện tại của những website tìm kiếm địa điểm đã có 22
2.4 Yêu cầu bài toán cần giải quyết 23
2.4.1 Mô tả bài toán 23
2.4.2 Phân tích yêu cầu bài toán 23
2.4.3 Thông tin đầu vào, đầu ra của bài toán 23
2.5 Mục đích và mục tiêu của đề tài 24
2.5.1 Mục đích của đề tài 24
2.5.2 Mục tiêu của đề tài 24
Trang 4CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 25
3.1 Các tác nhân và UC của hệ thống 25
3.2 Biểu đồ UC 26
3.2.1 Biểu đồ UC tổng thể 26
3.2.2 Biểu đồ UC mức chi tiết 27
3.3 Đặc tả một số UC chính 28
3.3.1 UC đăng ký 28
3.3.2 UC đăng nhập 30
3.3.3 UC tìm kiếm 32
3.3.4 UC quản lý địa điểm 34
3.3.5 UC quản lý danh mục địa điểm 36
3.3.6 UC quản lý huyện 39
3.3.7 UC quản lý thành viên 41
3.3.8 UC quản lý tin tức 43
3.3.9 UC quản lý bình luận 45
3.3.10 UC thống kê báo cáo 47
3.4 Thiết lập hệ thống 48
3.5 Biểu đồ lớp và các ca sử dụng 49
3.5.1 Biểu đồ lớp ca sử dụng đăng ký 49
3.5.2 Biểu đồ lớp ca sử dụng đăng nhập 50
3.5.3 Biểu đồ lớp ca sử dụng tìm kiếm 50
3.5.4 Biểu đồ lớp ca sử dụng quản lý thành viên 51
3.5.5 Biểu đồ lớp ca sử dụng quản lý địa điểm 51
3.5.6 Biểu đồ lớp ca sử dụng quản lý danh mục địa điểm 52
3.5.7 Biểu đồ lớp ca sử dụng quản lý huyện 52
3.5.8 Biểu đồ lớp ca sử dụng quản lý tin tức 53
3.5.9 Biểu đồ lớp ca sử dụng quản lý bình luận 53
3.6 Lược đồ cơ sở dữ liệu 53
3.6.1 Bảng thông tin thành viên(User) 54
3.6.2 Bảng địa điểm(locations) 55
3.6.3 Bảng danh mục địa điểm(cat_locations) 55
Trang 53.6.4 Bảng tin tức(post) 56
3.6.5 Bảng bình luận(comments) 56
3.7 Biểu đồ quan hệ thực thể 57
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH 58
4.1 Giao diện chính 58
4.2 Giao diện tìm kiếm 59
4.3 Giao diện đăng nhập 59
4.4 Giao diện đăng ký 60
4.5 Giao diện đăng địa điểm 60
4.6 Giao diện quản lý địa điểm 62
4.7 Giao diện quản lý thành viên 62
4.8 Giao diện quản lý danh mục địa điểm 63
KẾT LUẬN 64
TÀI LIỆU THAM KHẢO 65
NHẬN XÉT CỦA GIÁO VIÊN 66
Trang 6DANH MỤC CÁC BẢNG
Bảng 3.1 : Mối quan hệ giữa các tác nhân và UC 26
Bảng 3.2: Luồng sự kiện chính của UC đăng ký 29
Bảng 3.3: Luồng sự kiện chính của UC đăng nhập 31
Bảng 3.4: Luồng sự kiện chính của UC tìm kiếm 33
Bảng 3.5: Luồng sự kiện chính của UC quản lý địa điểm 34
Bảng 3.6: Luồng sự kiện chính của UC quản lý danh mục địa điểm 37Bảng 3.7: Luồng sự kiện chính của UC quản lý huyện 40
Bảng 3.8: Luồng sự kiện chính của UC quản lý địa điểm thi 41
Bảng 3.9: Luồng sự kiện chính của UC quản lý tin tức 43
Bảng 3.10: Luồng sự kiện chính của UC quản lý bình luận 45
Bảng 3.11: Luồng sự kiện chính của UC thống kê báo cáo 47
Bảng 3.12: Thông tin thành viên 54
Bảng 3.13 : Thông tin địa điểm 55
Bảng 3.14 : Danh mục địa điểm 55
Bảng 3.15 : Tin tức 56
Bảng 3.16 : Bình luận 56
Trang 7DANH MỤC CÁC HÌNH
Hình 1.1: Bước đầu khởi tạo cấu hình cài đặt WordPress 17
Hình 1.2: Các thông tin về database cần có trước khi cài đặt 18
Hình 1.3: Kiểm tra các thông tin trước khi kết nối 18
Hình 1.4: Chuẩn bị cài đặt 19
Hình 1.5: Nhập thông tin để bắt đầu cài đặt 19
Hình 1.6: Cài đặt thành công, đăng nhập để sử dụng WordPress 20
Hình 3.1 : Biểu đồ UC mức tổng thể 26
Hình 3.2 : Biểu đồ UC mức chi tiết tác nhân quản trị hệ thống 27
Hình 3.3 : Biểu đồ UC mức chi tiết tác nhân chủ địa điểm và người dùng 28Hình 3.4: Biểu đồ trình tự UC đăng ký thành viên 29
Hình 3.5: Biểu đồ cộng tác UC đăng ký thành viên 30
Hình 3.6: Biểu đồ trình tự UC đăng nhập hệ thống 31
Hình 3.7: Biểu đồ cộng tác UC đăng nhập hệ thống 32
Hình 3.8: Biểu đồ trình tự UC tìm kiếm 33
Hình 3.9: Biểu đồ cộng tác UC tìm kiếm 34
Hình 3.10: Biểu đồ trình tự UC quản lý địa điểm 35
Hình 3.11: Biểu đồ cộng tác UC quản lý địa điểm 36
Hình 3.12: Biểu đồ trình tự UC quản lý danh mục địa điểm 38
Hình 3.13: Biểu đồ cộng tác UC quản lý danh mục địa điểm 39
Hình 3.14: Biểu đồ trình tự UC quản lý huyện 40
Hình 3.15: Biểu đồ cộng tác UC quản lý huyện 41
Hình 3.16: Biểu đồ trình tự UC quản lý thành viên 42
Hình 3.17: Biểu đồ cộng tác UC quản lý thành viên 43
Hình 3.18: Biểu đồ trình tự UC quản lý tin tức 44
Hình 3.19: Biểu đồ cộng tác UC quản lý tin tức 45
Hình 3.20: Biểu đồ trình tự UC quản lý bình luận 46
Hình 3.21: Biểu đồ cộng tác UC quản lý bình luận 47
Hình 3.22: Biểu đồ trình tự UC thống kê báo cáo 48
Trang 8Hình 3.23: Biểu đồ lớp ca sử dụng đăng ký 49
Hình 3.24: Biểu đồ lớp ca sử dụng đăng nhập 50
Hình 3.25: Biểu đồ lớp ca sử dụng tìm kiếm 50
Hình 3.26: Biểu đồ lớp ca sử dụng quản lý thành viên 51
Hình 3.27: Biểu đồ lớp ca sử dụng quản lý địa điểm 51
Hình 3.28: Biểu đồ lớp ca sử dụng quản lý danh mục địa điểm52Hình 3.29: Biểu đồ lớp ca sử dụng quản lý huyện 52
Hình 3.30: Biểu đồ lớp ca sử dụng quản lý tin tức 53
Hình 3.31: Biểu đồ lớp ca sử dụng quản lý bình luận 53
Hình 3.32: Biểu đồ quan hệ thực thể 57
Hình 4.1: Giao diện chính 58
Hình 4.2: Giao diện tìm kiếm 59
Hình 4.3: Giao diện đăng nhập 59
Hình 4.4: Giao diện đăng ký 60
Hình 4.5: Giao diện chính đăng thông tin địa điểm 61
Hình 4.6: Giao diện quản lý địa điểm 62
Hình 4.7: Giao diện quản lý thành viên 62
Hình 4.8: Giao diện quản lý danh mục địa điểm 63
Trang 9LỜI MỞ ĐẦU
Hiện nay, kinh tế Việt Nam đang trên đà phát triển Bên cạnh việc pháttriển và xây dựng các cơ sở hạ tầng như nhà máy, xí nghiệp, bệnh viện, trườnghọc,… là sự phát triển của hàng loạt các khu vui chơi, giải trí, các địa điểm phục
vụ đời sống tinh thần cho người dân Ở các thành phố lớn như Hà Nội, Hồ ChíMinh và các tỉnh lân cận như Thái Nguyên, Vĩnh Phúc, Hải Phòng,… hàng loạtcác địa điểm được xây dựng Với sự phát triển một cách ồ ạt và mạnh mẽ nhưvậy thì việc tìm kiếm các địa điểm cũng trở nên khó khăn hơn, đặc biệt là đối vớinhững người từ địa phương khác đến sinh sống Để đến được những địa điểm mà
họ cần tới, thì họ sẽ phải mất thời gian tìm kiếm Nên việc xây dựng một websitetìm kiếm địa điểm là rất thiết thực Website có thể cung cấp thông tin địa điểmchính xác, những thông tin này được cung cấp đến người dùng, người dùng cóthể tìm kiếm một cách nhanh chóng, thuận tiện và trực quan nhất
Cùng với sự phát triển nhanh chóng của công nghệ thông tin nói chung vàmạng Internet nói riêng, đã đem lại rất nhiều thay đổi trong việc tìm kiếm thôngtin Bằng internet, chúng ta đã thực hiện được nhiều công việc nhanh hơn và chiphí thấp hơn nhiều so với cách thức truyền thống Với những thao tác đơn giảntrên máy tính có nối mạng internet bạn sẽ có tận tay những gì mình cần màkhông phải mất nhiều thời gian Chúng ta chỉ cần vào các trang dịch vụ tìm kiếmtìm những gì chúng ta cần, các thông tin sẽ được cung cấp nhanh và đáp ứng tốtnhu cầu của người dùng
Vì vậy, em đã chọn đề tài đồ án “Xây dựng website tìm kiếm địa điểm tại tỉnh Thái Nguyên” hy vọng sẽ đem lại một trong những sự lựa chọn tốt nhất để
cung cấp thông tin địa điểm tới người tìm địa điểm Giúp người tìm địa điểm cóthể tìm kiếm địa điểm một cách trực quan, nhanh chóng
Trong thời gian có hạn và kinh nghiệm còn khiêm tốn tuy đã cố gắng hếtsức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng vẫn không tránh khỏinhiều bỡ ngỡ trước đề tài lớn và chắc rằng không tránh khỏi những thiếu sót Em
Trang 10rất mong nhận được sự chỉ bảo và đóng góp ý kiến để chương trình của em có thểhoàn thiện hơn và có thêm những hướng phát triển mới
Cuối cùng, em xin chân thành cảm ơn các thầy cô trong bộ môn Công nghệ phần mềm – Trường Đại Học Công Nghệ Thông Tin và Truyền cùng với
sự ủng hộ và hướng dẫn nhiệt tình của cô giáo Ks.Nguyễn Thị Dung đã giúp em
hoàn thành đề tài đồ án tốt nghiệp này
Thái Nguyên, tháng 5 năm 2014
Trang 11CHƯƠNG 1: CƠ SỞ LÝ THUYẾT1.1 Giới thiệu về PHP và MySQL
1.1.1 PHP là gì?
PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay mộtloại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mãnguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễdàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độnhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩmtương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thànhmột ngôn ngữ lập trình web phổ biến nhất thế giới
Cặp thẻ <?php ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mãPHP qua đó máy chủ biết để xử lý và dịch mã cho đúng Đây là một điểm khátiện lợi của PHP giúp cho việc viết mã PHP trở nên khá trực quan và dễ dàngtrong việc xây dựng phần giao diện ứng dụng HTTP
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộngđồng và có sự đóng góp rất lớn của Zend Inc, công ty do các nhà phát triển lõicủa PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP pháttriển ở quy mô doanh nghiệp
Lịch sử phát triển của PHP
PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI doRasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giảncủa các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch củaông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home PageTools' Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thibằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sửdụng phát triển các ứng dụng web đơn giản Rasmus đã quyết định công bố mãnguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nóđồng thời cải tiến mã nguồn
PHP/FI, viết tắt từ “Personal Home Page/Forms Interpreter”, bao gồm một
Trang 12biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTMLnhúng Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và
có phần thiếu nhất quán
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hútđược hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đãđược ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạngInternet Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mãnguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thờigian khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó,
nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0
PHP 3
PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi vớicác phiên bản PHP mà chúng ta được biết ngày nay Nó đã được Andi Gutmans
và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước
đó Lý do chính mà họ đã tạo ra phiên bản này là do nhận họ thấy PHP/FI 2.0 hếtsức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ đangxúc tiến trong một dự án của trường đại học Trong một nỗ lực hợp tác và bắt đầuxây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đãquyết định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/
FI 2.0, và chấm dứt phát triển PHP/FI 2.0
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộngmạnh mẽ của nó Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạtầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tínhnăng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuấtcác mô đun mở rộng mới Hoàn toàn có thể kết luận được rằng đây chính là điểmmấu chốt dẫn đến thành công vang dội của PHP 3.0.Các tính năng khác đượcgiới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cúpháp ngôn ngữ nhất quán khác
Trang 13Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏmối liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI2.0 gợi nhắc Nó đã được đặt tên ngắn gọn là PHP, một kiểu viết tắt hồi quy của
“PHP: Hypertext Preprocessor”
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàngchục ngàn người sử dụng và hàng chục ngàn Website báo cáo là đã cài nó Vàothời kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web cótrên mạng Internet
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian
9 tháng được cộng đồng kiểm nghiệm
PHP 4
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố,Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi củaPHP Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, vàcải tiến tính mô đun của cơ sở mã PHP Những ứng dụng như vậy đã chạy đượctrên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu
và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý các ứngdụng phức tạp như thế này một cách có hiệu quả
Một động cơ mới, có tên Zend Engine (ghép từ các chữ đầu trong tên củaZeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công,
và lần đầu tiên được giới thiệu vào giữa năm 1999 PHP 4.0, dựa trên động cơnày, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công
bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời Ngoài tốc độ
xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm
có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệmthông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào bảo mật hơn
và cung cấp một vài các cấu trúc ngôn ngữ mới
Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn vàhàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạngInternet
Trang 14Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiềunghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR,PECL và tài liệu kĩ thuật cho PHP.
PHP 5
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm pháttriển PHP tự mãn Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếukém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử
lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợdịch vụ web yếu Những điểm này chính là mục đích để Zeev và Andi viết ZendEngine 2.0, lõi của PHP 5.0 Một thảo luận trên Slashdot đã cho thấy việc pháttriển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng nhữngbài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên mạng Internetvào khoảng tháng 7 năm 2002 Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đãchính thức được công bố để cộng đồng kiểm nghiệm Đó cũng là phiên bản đầutiên của Zend Engine 2.0 Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm
2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflectionnhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn.Ngày 21 tháng 12 năm 2003 PHP 5 Beta 3 đã được công bố để kiểm tra với việcphân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bêntrong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới PHP 5 bản chínhthức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm trathử bao gồm Beta 4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầutiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP
Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bốđánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trongviệc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thựchiện các câu truy vấn Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục
có những cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bảnPCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams và SPL
Trang 15PHP 6
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sửdụng thử đã có thể được download tại địa chỉ http://snaps.php.net Phiên bảnPHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiệntại, ví dụ: hỗ trợ namespace (hiện tại các nhà phát triển vẫn chưa công bố rõ ràng
về vấn đề này); hỗ trợ Unicode; sử dụng PDO làm API chuẩn cho việc truy cập
cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện PECL
1.1.2 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới
và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng VìMySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển,hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rấtmạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng cótruy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên có thể tải vềMySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau:phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix,FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệuquan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác,
nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
1.2 Mã nguồn mở WordPress
1.2.1 Giới thiệu về mã nguồn mở WordPress
WordPress là một phần mềm miễn phí cho việc quản lý nội dung web(vănbản và hình ảnh) Nó đặc biệt hữu ích cho việc xây dựng và duy trì một weblogtrên, vì nó cho phép mỗi bài cho một hoặc nhiều mẫu hệ thống chỉ định, và tựđộng tạo ra các chuyển hướng thích hợp
Tiếp theo, các hệ thống ý kiến độc giả có cơ hội để xem xét nó trước khiphát hành, cũng như quản lý các liên kết, quản lý một vai trò người sử dụng,
Trang 16quyền và khả năng bên ngoài các plugin, làm cho WordPress hướng tới một “hệthống quản lý nội dung” đầy đủ và có thể được mở rộng hơn.
WordPress được viết bằng ngôn ngữ lập trình PHP và sử dụng MySQL.WordPress là hậu duệ chính thức của b2/cafelog, được phát triển bởi MichelValdrighi Cái tên WordPress được đề xuất bởi Chritine Selleck, một người bạncủa nhà phát triển Matt Mullenweg
Lịch sử phát triển
Trong những năm 2001-2002 Michel Valdrighi phát triển một chươngtrình bằng văn bản trong hệ thống PHP Weblog gọi là b2/Cafelog, phát hành bởiGPL B2/Cafelog thường được biết đến cái tên đơn giản hơn là b2 hay cafelog làtiền thân của WordPress B2/cafelog đã ước lượng được khoảng 2000 blog được
sử dụng trong tháng 5 năm 2003 Nó cũng được viết bằng ngôn ngữ lập trìnhPHP để dùng với MySQL bởi Michel Valdrighi, người đã trở thành nhà pháttriển chính của WordPress hiện nay
Phiên bản ổn định đầu tiên của WordPress được phát hành vào ngày 3tháng 1 năm 2004 Kể từ phiên bản 1.5 WordPress hỗ trợ quản lý các trang tĩnh,
vì vậy nền tảng đã được tạo ra để sử dụng WordPress không như là một phầnmềm viết blog tinh khiết, mà còn là một hệ thống quản lý nội dung đơn giản.Năm 2007, WordPress đã giành giải thưởng Packt Open Source CMS.Năm 2009, WordPress dẫn đầu về mã nguồn CMS tốt nhất
Trang 171.2.2 Cài đặt WordPress
Để cài đặt WordPress cần thực hiện các thao tác sau:
Bước 1: Phần chuẩn bị
Tải phiên bản mới nhất của WordPress từ http://wordpress.org/download/
Chọn phần mềm web server để cài đặt, có thể chọn Wamp, Xamp,AppServ… Ở đây ta sẽ cài đặt WordPress trên WampServer Bộ cài đặt được tảitrực tiếp từ http://www.wampserver.com/en/
Bước 2: Cài đặt Wamp
Sau khi download, tiến hành giải nén và thực hiện các thao tác như bộ càiđặt hướng dẫn
Cài đặt thành công, mở trình duyệt nhập http://localhost/phpmyadimin.Chọn Database rồi chọn tiếp Create database, tạo một cơ sở dữ liệu mới với tênwordpress
Bước 3: Cài đặt WordPress
Giải nén và copy toàn bộ code của WordPress vào thư mục www của
Wamp Đổi tên bộ cài đặt thành wordpress.
Khởi động Wamp, mở trình duyệt, nhấn http:// localhost/wordpress Sẽhiển thị thông báo Create a Configuration File
Chọn Create a Configuration File để tạo một tập tin cài đặt cấu hình choWordPress
Hình 1.1: Bước đầu khởi tạo cấu hình cài đặt WordPress
Trang 18 Chọn Let’s go chuyển qua bước tiếp theo.
Hình 1.2: Các thông tin về database cần có trước khi cài đặt
Điền tên cơ sở dữ liệu, tên sử dụng, mật khẩu và các thông số khác để sử
dụng wordpress trên host Chú ý User Name là root, Password để trống Sau đó
chọn Submit
Hình 1.3: Kiểm tra các thông tin trước khi kết nối
Trang 19 Chọn Run the install để chạy cài đặt.
Hình 1.4: Chuẩn bị cài đặt
Nhập tên cho trang web cần tạo, tên đăng nhập và mật khẩu để đăng nhập
và quản lý trang website Sau đó chọn Install WordPress
Hình 1.5: Nhập thông tin để bắt đầu cài đặt
Trang 20 Nếu nhận được thông báo Success có nghĩa là việc cài đặt WordPress đãhoàn tất, bạn có thể đăng nhập bằng tài khoản và password mà bạn đã đăng ký ởbước trước để bắt đầu thiết kế website của mình
Hình 1.6: Cài đặt thành công, đăng nhập để sử dụng WordPress
1.3 Giới thiệu về UML
1.3.1 Khái niệm của UML
UML là ngôn ngữ mô hình hóa thống nhất(Unified Modeling Language),trước hết nó là mô tả ký pháp thống nhất, ngữ nghĩa và các định nghĩa vềmetamodel(mô tả định nghĩa chính ngôn ngữ mô hình hóa), nó không mô tảphương pháp phát triển UML được sử dụng để hiển thị, đặc tả, xây dựng và làmtài liệu các vật phẩm của quá trình phân tích xây dựng hệ thống phần mềm theohướng đối tượng UML được sử dụng cho mọi tiến trình phát triển phần mềm,xuyên suốt vòng đời phát triển và độc lập với các công nghệ cài đặt hệ thống
UML là ngôn ngữ chuẩn để viết các kế hoạch chi tiết phần mềm Nó phùhợp cho việc mô hình hóa các hệ thông tin doanh nghiệp, các ứng dụng phân tántrên nền Web, hệ thống nhúng thời gian thực… Các khung nhìn của ngôn ngữđược quan sát từ góc độ phát triển và triển khai hệ thống, nó không khó sử dụng
và dễ hiểu UML là ngôn ngữ mô hình được cả con người và máy sử dụng
Trang 211.3.2 Đặc điểm của UML
UML là ngôn ngữ
UML là ngôn ngữ để hiển thị
UML làm ngôn ngữ đặc tả
UML là ngôn ngữ dễ xây dựng
UML là ngôn ngữ tài liệu
1.4 Giới thiệu về Google Maps API
Google Maps là một dịch vụ ứng dụng và công nghệ bản đồ trực tuyếntrên web miễn phí được cung cấp bởi Google, hỗ trợ nhiều dịch vụ khác củaGoogle Google Maps hỗ trợ các dịch vụ như định vị, tìm đường, thêm dữ liệu cánhân, các điều khiển làm cho việc ứng dụng bản đồ trong ứng dụng Web trở nên
dễ dàng và thuận tiện hơn bao giờ hết
Map API là gì?
Đó là một phương thức cho phép 1 website B sử dụng dịch vụ bản đồcủa site A (gọi là Map API) và nhúng vào website của mình (site B).Site A ở đây là google map, site B là các web site cá nhân hoặc tổ chứcmuốn sử dụng dịch vụ của google, có thể rê chuột, room, đánh dấu trênbản đồ
Các ứng dụng xây dựng trên maps được nhúng vào trang web cá nhânthông qua các thẻ javascripts do vậy việc sử dụng API google rất dễdàng
Google Map API đã được nâng cấp lên phiên bản thứ 3 Phiên bản này hỗtrợ không chỉ cho các máy để bàn truyền thống mà cho cả các thiết bị di động.Nhanh hơn và nhiều hơn các ứng dụng
Điều quan trọng là các dịch vụ hoàn toàn miễn phí với việc xây dựng mộtứng dụng nhỏ Trả phí nếu đó là việc sử dụng cho mục đích kinh doanh, doanhnghiệp
Trang 22CHƯƠNG 2 : KHẢO SÁT HIỆN TRẠNG
2.1 Đặt vấn đề
Hiện nay, kinh tế Việt Nam đang trên đà phát triển Bên cạnh việc pháttriển và xây dựng các cơ sở hạ tầng như nhà máy, xí nghiệp, bệnh viện, trườnghọc,… là sự phát triển của hàng loạt các khu vui chơi, giải trí, các địa điểm phục
vụ đời sống tinh thần cho người dân Ở các thành phố lớn như Hà Nội, Hồ ChíMinh và các tỉnh lân cận như Thái Nguyên, Vĩnh Phúc, Hải Phòng,… hàng loạtcác địa điểm được xây dựng nên Với sự phát triển một cách ồ ạt và mạnh mẽnhư vậy thì việc tìm kiếm các địa điểm cũng trở nên khó khăn hơn, đặc biệt làđối với những người từ địa phương khác đến sinh sống Để đến được những địađiểm mà họ cần tới, thì họ sẽ phải mất thời gian tìm kiếm Nên việc xây dựngmột website tìm kiếm địa điểm là rất thiết thực Website có thể cung cấp thôngtin địa điểm chính xác, những thông tin này được cung cấp đến người dùng,người dùng có thể tìm kiếm một cách nhanh chóng, thuận tiện và trực quan nhất
Ý tưởng xây dựng website tìm kiếm địa điểm được ra đời với mong muốntrở thành một website cung cấp thông tin và cho phép tìm kiếm các địa điểm cầnthiết một cách nhanh chóng, chính xác và trực quan nhất
2.2 Giải pháp
Em đưa ra giải pháp xây dựng website tìm kiếm địa điểm, cụ thể là tìmkiếm các địa điểm trong khu vực tỉnh Thái Nguyên Nhằm mang đến sự lựa chọnmới cho người sử dụng như sinh viên mới lên Thái Nguyên học tập, cán bộ mớilên Thái Nguyên làm việc hoặc công tác trong thời gian ngắn, có nhu cầu tìmkiếm các địa điểm mua sắm, vui chơi, giải trí cũng như các địa chăm sóc sứckhỏe,…
2.3 Thực trạng hiện tại của những website tìm kiếm địa điểm đã có
Xu hướng tìm kiếm địa điểm qua mạng Internet đã phổ biến ở nhiều nước
từ nhiều năm nay Tại Việt Nam, các website tìm kiếm địa điểm chỉ tập trung vàothành phố Hà Nội hoặc thành phố Hồ Chí Minh Như vậy, người dùng ở các tỉnhkhác, muốn tìm địa điểm nơi mình đang sinh sống thì chưa có một website nào
hỗ trợ
Trang 232.4 Yêu cầu bài toán cần giải quyết
2.4.1 Mô tả bài toán
Xây dựng một website tìm kiếm địa điểm cho tỉnh Thái Nguyên, từ đó cácthông tin về địa điểm sẽ được đăng tải bởi chủ địa điểm, mang lại những giá trịthiết thực cho các chủ địa điểm và người dùng tìm kiếm
2.4.2 Phân tích yêu cầu bài toán
Từ bài toán đặt ra, ta thấy cần xây dựng một website tìm kiếm địa điểmvới những tính năng sau:
Hiển thị thông tin:
- Hiển thị thông tin địa điểm trên Google Maps
- Hiển thị danh mục địa điểm
Tìm kiếm thông tin địa điểm
Đưa lên thông tin địa điểm:
- Chủ địa điểm có thể đưa lên thông tin địa điểm của mình
Hệ thống cần quản lý được:
- Thông tin địa điểm
- Danh mục địa điểm
- Thông tin các chủ địa điểm
2.4.3 Thông tin đầu vào, đầu ra của bài toán
Các thông tin đầu vào
Thông tin đầu vào của hệ thống có thể do người quản trị hệ thống đưa lênnhư : thông tin về địa điểm, thông tin chủ địa điểm,… Hoặc các chủ địa điểm cóthể đưa lên thông tin địa điểm của mình Cụ thể là :
Các thông tin về địa điểm : hình ảnh, thông tin chi tiết về địa điểm
Các thông tin về chủ địa điểm
Các thông tin đầu ra
Hệ thống sẽ hiển thị các thông tin về địa điểm trên Google Maps như cácđịa điểm giải trí, chăm sóc sức khỏe, mua sắm, trung tâm, trường học,…
Trang 242.5 Mục đích và mục tiêu của đề tài
2.5.1 Mục đích của đề tài
Xây dựng website tìm kiếm địa điểm để :
Trở thành một kênh tìm kiếm địa điểm trên địa bàn tỉnh Thái Nguyên, vớinhiều thông tin chi tiết và khả năng tương tác trực quan
Giúp các chủ địa điểm có thể đưa thông tin, quảng bá địa điểm của mìnhtới người cần tìm kiếm Ngược lại, giúp những người tìm kiếm/ngườidùng có thể tìm kiếm địa điểm mình cần tới một cách chính xác và trựcquan nhất
2.5.2 Mục tiêu của đề tài
Website có đầy đủ các chức năng nhằm phục vụ việc tìm kiếm cũng nhưđăng tài thông tin địa điểm
Các tác vụ phải hoạt động linh hoạt thuận tiện cho người sử dụng
Website phải chứa đầy đủ hình ảnh, thông tin về địa điểm
Trang 25CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.1 Các tác nhân và UC của hệ thống
Tác nhân là thực thể bên ngoài tương tác với hệ thống Tác nhân có thể làcon người cũng có thể là thiết bị phần cứng hay hệ thống khác có trao đổi thôngtin với hệ thống Đối với bài toán này ta xác định được các tác nhân và các UCtương ứng
Quản trị hệ thống: là người dùng hệ thống có quyền cao nhất trên hệ
thống Tác nhân này tham gia vào hệ thống với công việc chủ yếu là quản lýthông tin địa điểm, quản lý thông tin chủ địa điểm,… tiếp nhận các ý kiến được
đề xuất từ hệ thống
Chủ địa điểm: tác nhân này tham gia vào hệ thống để đưa lên thông tin
địa điểm của mình, cung cấp tới người cần tìm địa điểm
Người dùng: tham gia vào hệ thống chủ yếu để tìm kiếm thông tin về địa
Quản lý địa điểm
Quản lý danh mục địa điểm
Trang 26Xem địa điểm
Thống kê báo cáo
Chủ địa điểm
Đăng ký thành viên
Đăng nhập vào hệ thống
Quản lý địa điểm
Tìm kiếm địa điểm
Xem địa điểm
Đăng địa điểm
Xem địa điểm
Bảng 3.1 : Mối quan hệ giữa các tác nhân và UC
Trang 27Hình 3.2 : Biểu đồ UC mức chi tiết tác nhân quản trị hệ thống
Trang 28Tác nhân chủ địa điểm và người dùng
Hình 3.3 : Biểu đồ UC mức chi tiết tác nhân chủ địa điểm và người dùng
3.3 Đặc tả một số UC chính
3.3.1 UC đăng ký
Mục đích : Cho phép chủ địa điểm trở thành thành viên và thực hiện đăng,
sửa và quản lý thông tin địa điểm của mình
Tác nhân : Chủ địa điểm.
Mô tả chung : Mô tả quá trình trở thành thành viên của website, có quyền
đăng lên thông tin địa điểm và thực hiện chức năng được phân quyền bởi hệthống
Trang 29Các luồng sự kiện
Luồng sự kiện chính :
Hành động của tác nhân Phản hồi của hệ thống
1 Người chủ địa điểm truy cập vào
trang website và chọn chức năng đăng
ký thành viên
2 Hệ thống hiển thị form nhậpliệu để cho người chủ địa điểmđăng ký thông tin
3 Chủ địa điểm điền các thông tin vào
form theo hướng dẫn
4 Hệ thống kiểm tra sự hợp lệcủa trường thông tin Nếu khônghợp lệ thì chuyển sang luồng rẽnhánh 1
Bảng 3.2: Luồng sự kiện chính của UC đăng ký Luồng rẽ nhánh 1: Hiển thị thông báo lỗi yêu cầu tác nhân nhập lại Nếu
tác nhân tiếp tục nhập lại, trở về luồng chính
Luồng rẽ nhánh 2: Hiển thị tài khoản đã tồn tại hoặc không đúng, yêu cầu
tác nhân nhập lại thông tin Nếu tác nhân tiếp tục nhập lại Trở về luồng chính
Biểu đồ trình tự
Hình 3.4: Biểu đồ trình tự UC đăng ký thành viên
Trang 30Tác nhân : Chủ địa điểm, quản trị hệ thống.
Mô tả chung : Chủ địa điểm muốn thực hiện các thao tác liên quan đến
đưa lên thông tin địa điểm hoặc một số tác vụ khác cần phải đăng nhập vào hệthống Hệ thống sẽ kiểm tra các thông tin có đúng là thành viên của hệ thống haykhông, nếu đúng thì cho truy cập với quyền hạn nhất định
Tiền điều kiện : Chủ địa điểm phải có tài khoản trên hệ thống và truy cập
vào trang đăng nhập của hệ thống
Trang 31Các luồng sự kiện
Luồng sự kiện chính :
Hành động của tác nhân Phản hồi của hệ thống
Chủ địa điểm hoặc quản trị hệ thống
nhập thông tin và mật khẩu
Chủ địa điểm hoặc quản trị hệ thống
nhấn nút đăng nhập
Hệ thống kiểm tra sự tồn tại của tàikhoản trên hệ thống Nếu không tồn tạichuyển sang luồng rẽ nhánh 1
Chuyển hướng về trang trước khi đăngnhập
Bảng 3.3: Luồng sự kiện chính của UC đăng nhập Luồng rẽ nhánh 1: Hiện thị thông báo nếu sai thông tin và mật khẩu Nếu
chủ địa điểm hoặc quản trị hệ thống muốn đăng nhập thì trở về luồng chính Kếtthúc
Biểu đồ trình tự
Hình 3.6: Biểu đồ trình tự UC đăng nhập hệ thống
Trang 32Hình 3.7: Biểu đồ cộng tác UC đăng nhập hệ thống
3.3.3 UC tìm kiếm
Mục đích: Tìm kiếm địa điểm theo nhu cầu sử dụng của người tìm địa
điểm Chức năng này sẽ giúp cho việc tìm kiếm địa điểm và các thông tin địađiểm một cách nhanh chóng và chính xác
Tác nhân: Người dùng, chủ địa điểm, quản trị hệ thống.
Mô tả chung: Người dùng hay người tìm địa điểm muốn tìm thông tin địa
điểm mà họ yêu cầu hoặc chủ địa điểm, quản trị hệ thống muốn tìm các loại địađiểm thì sử dụng chức năng này
Trang 33Các luồng sự kiện
Luồng sự kiện chính:
Hành động của tác nhân Phản hồi của hệ thống
Người tìm địa điểm, chủ địa điểm
hoặc người quản trị lựa chọn chức
năng tìm kiếm bài viết
Hệ thống sẽ hiển thị công cụtìm kiếm để các tác nhân có thểtìm kiếm địa điểm
Bảng 3.4: Luồng sự kiện chính của UC tìm kiếm.
Luồng sự kiện phụ: Nếu người dùng hoặc chủ địa điểm hoặc quản trị hệ
thống nhập từ khóa không có trong danh sách địa điểm thì hệ thống sẽ đưa rathông báo không tìm thấy địa điểm nào như vậy
Biểu đồ trình tự
Hình 3.8: Biểu đồ trình tự UC tìm kiếm