Tải bản đầy đủ (.doc) (30 trang)

BÁO CÁO BÀI TẬP LỚN MÔI: Xây dựng website quản lý du lịch

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 (856.01 KB, 30 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

a----b

BÁO CÁO BÀI TẬP LỚN
MÔN: MÃ NGUỒN MỞ
ĐỀ TÀI: Xây dựng website quản lý du lịch
NHÓM:24
Giảng viên hướng dẫn: Th.S Trần Thanh Huân
Lớp : CĐ-ĐH KHMT2_K5
Nhóm sinh viên thực hiện: 1. Trần Thị Lành
2. Bùi Thị Mai

Hà Nội, ngày 15 tháng 12 năm 2012

1


LỜI NÓI ĐẦU
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem như
là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ,
tổ chức, cũng như các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo ra
những bước đột phá mạnh mẽ.
Việc ứng dụng các trang web để phục vụ cho các nhu cầu riêng của các tổ
chức, công ty, thậm chí các cá nhân, ngày nay không lấy gì làm xa lạ. Với một vài
thao tác đơn giản, một người bất kì có thể trở thành một website giới thiệu về bất cứ
gì anh ta quan tâm…
Đối với các chính phủ, và các công ty thì việc xây dựng các website riêng
càng ngày càng trở nên cấp thiết. Thông qua những website này, thông tin về họ
cũng như các công văn, thông báo, quyết định của chính phủ hay các sản phẩm,


dịch vụ mới của công ty sẽ đến với những người quan tâm, đến với khách hàng của
họ một cách nhanh chóng kịp thời, tránh những phiền hà mà phương thức truyền
thống gặp phải.
Hoạt động của một công ty du lịch có quy mô khá lớn sẽ càng được tăng
cường và mở rộng nếu xây dựng được một website tốt. Bắt nguồn với ý tưởng này,
trong môn học mã nguồn mở chúng em đã thực hiện bài tập lớn “Xây dựng website
quản lý du lịch” với ngôn ngữ lập trình mã nguồn mở php có áp dụng công nghệ
Ajax trong một số chức năng trang web. Tuy được sự hướng dẫn tận tình của thầy
Trần Thanh Huân nhưng do thời gian và năng lực có hạn nên kết quả còn nhiều
thiết sót. Mong được sự góp ý của thầy và các bạn
Xin chân thành cám ơn !

2


Mục lục

CHƯƠNG I: KHẢO SÁT NGHIỆP VỤ VÀ THỰC TẾ ĐỀ TÀI
1.1. Nhu cầu ứng dụng tin học tại công ty du lịch Hà Nội
Qua khảo sát và tìm hiểu thực tế của công ty du lịch Hà Nội (Hà Nội Tourist)
và một số công ty du lịch trong Hà Nội vấn đề áp dụng tin học vào giới thiệu dịch
vụ là rất cần thiết và phổ biến. Nhằm tăng khả năng hoạt động, giảm bớt số nhân
viên quản lý nhưng vẫn đảm bảo độ chính và an toàn dữ liệu cao. Vì những lý do
nên các công ty du lịch chủ yếu giới thiệu bằng tờ rơi, quảng cáo.. .việc xây dựng
trang website để giới thiệu dịch vụ chưa được đưa vào giới thiệu. Vì vậy mà nhà
quản lý gặp không ít khó khăn trong việc quảng bá dịch vụ của công ty
Công ty du lịch Hà Nội là một công ty chuyên tổ chức các chương trình du
lịch trong và ngoài nước cho cả người Việt Nam và người nước ngoài. Với thâm
niên của mình trong lĩnh vực thực hiện các dịch vụ du lịch. Hà Nội Tourist đã có
một số lượng lớn khách hàng trong và ngoài nước.

Hà Nội Tourist liên tục tổ chức các tour khác nhau, thuộc các tour chính
gồm: tour trong nước, tour ngoài nước, tour ngắn ngày, tour dài ngày, tour trọn gói.

3


Các loại tour này do người quản trị của website quy định lúc xây dựng website. Do
số lượng khách hàng đông đảo, chương trình tour của công ty cũng liên tục được tổ
chức mới; và tất cả các thay đổi này đều phải được cập nhật lên website của Hà Nội
Tourist để khách hàng ở xa, không tiện liên lạc trực tiếp đến công ty theo dõi và đặt
chỗ trực tuyến.
Qua nhu cầu thực tế tại một số công ty du lịch việc ra đời một trang websie
giới thiệu các tour du lịch là nhu cầu cần thiết giúp công ty giảm bớt số nhân viên,
hình thức quản cáo mà vẫn đảm bảo được hiệu quả, nâng cao quy mô hoạt động của
công ty.

1.2. Phân tích hiện trạng quản lý công ty du lịch
1.2.1. Nguyên tắc hoạt động của website
- Công ty du lịch thiết kế tour và lên lịch trình cho từng tour cụ thể. Sau đó,
bộ phận văn phòng, có nhiệm vụ cập nhật thông tinh các tour này lên website vói
đầy đủ thông tin về giá cả, loại tour, lịch trình, các địa phương đi đến và hình ảnh
minh họa nếu có.
- Ngoài ra bộ phận văn phòng còn cập nhật thông tin, hình ảnh về các địa
điểm du lịch mà công ty muốn cung cấp cho khác hàng.
- Khách hàng vào viếng thăm webiste sẽ được xem thông tin chi tiết về từng
tour hiện có hoặc tìm kiếm tour theo các yêu cầu cụ thể về giá cả, địa phương muốn
đến, ngày khởi hành của tour. Sau đó, khách hàng có thể tiến hành đặt chỗ cho tour
đang xem nếu muốn.
- Các đơn đặt chỗ này được cập nhật vào database và hiện cho người quản trị
được phân quyền xem, hiệu chỉnh, xóa hoặc xác nhận sau khi đã kiểm tra tính chính

xác của thông tin đặt chỗ.

4


- Khách hàng cũng có thể thêm thông tin trang web để gửi các thông tin yêu
cầu khác về công ty
- Người quản trị cao nhất có quyền tạo lập, thêm mới các user và phân quyền

1.2.2. Sơ đồ hoạt động của website
Vai trò hoạt động chức năng các bộ phận

Bộ phận điều hành

Bộ phận
kinh
doanh

Bộ phận
văn
phòng

- Bộ phận kinh doanh chụi trách nhiệm quản lý đơn đặt tour của khách hàng
gửi lên từ mạng internet.
- Bộ phận văn phòng (Mod) : cập nhật thông tin các địa danh du lịch và các
chương trình tour mà công ty tổ chức. Người quản trị này được cấp quyền “cập nhật
dữ liệu”.
- Bộ phận điều hành: giữ vai trì người quản trị cao cấp (Quản lý
website(admin), bao gồm các quyền trên và có thể phân quyền cho những người
quản trị khác (phân biệt bởi username và password).


1.3. Đặc tả yêu cầu
1.3.1. Yêu cầu chức năng
- Người viếng thăm website có thể xem, tìm kiếm thông tin về các tour du
lịch hiện hành .

5


- Thành viên có thể đặt tour trực tuyến, website sẽ cập nhật thông tin chỗ đặt
này bằng cách trực tiếp lên cơ sở dữ liệu, và cho phép người quản trị được phân
quyền thao tác các công việc sau:
• Tìm kiếm các đơn đặt chỗ đã được xác nhận hay chưa xác nhận.
• Xác nhận đơn đặt chỗ hợp lệ, chỉnh sửa thông tin khách hàng và thông
tin đặt chỗ trên từng đơn cụ thể.
• Thống kê tình hình đặt chõ của từng tour, xem danh sách khách hàng
tham gia các tour đó.
- Thay đổi, thêm mới hoặc xóa bỏ thông tin, hình ảnh về các địa điểm du lịch
ở các địa phương khác nhau mà công ty muốn giới thiệu cho khách hàng.
- Theo dõi tình hình liên hệ thông qua website của khách hàng, để đáp ứng
kịp thời nhu cầu của họ.
- Theo dõi tình hình liên hệ thông qua trang website của khách hàng để đáp
ứng kịp thời nhu cầu của họ,
- Về tổ chức lưu trữ, thực hiện các yêu cầu:
• Thêm, xóa, sửa thông tin, hình ảnh các tour du lịch do công ty tổ
chức, phục vụ cho công tác quản lý, thống kê tình hình hoạt động của
công ty.
• Thêm, xóa, sửa thông tin, hình ảnh về các địa điểm du lịch ở từng địa
phương khác nhau.


1.3.2.Yêu cầu phi chức năng
- Website phải có dung lượng không quá lớn, tốc độ xử lý nhanh.
- Công việc tính toán phải thực hiện chính xác, không chấp nhận sai sót.
- Sử dụng mã hóa các thông tin nhạy cảm của khách hàng.
- Đảm bảo an toàn dữ liệu khi chạy website trực tuyến.

6


CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ DỮ LIỆU
2.1. Phân tích
Mục đích của trang web là giới thiệu các tour du lịch. Từ hệ thống này người
quản lý có thể thêm , sửa, xóa thông tin, tìm kiếm các thông tin về tour du lịch, và
các dịch vụ liên quan, đặt tour và phân quyền. Vì vậy cơ sở dữ liệu đòi hỏi phải đầy
đủ thuộc tính liên quan đến mục đích của hệ thống từ đó đáp ứng được nhu cầu bài

7


toán

Quản lý website

Quản lý
Dịch vụ

Quản lý
Các động
du lịch


Quản lý
tài nguyên
du lịch

Tìm kiếm
thông tin

2. 2. Thiết kế logic cơ sở dữ liệu
2.2.1.Chuyển mô hình liên kết thực thể (ERD) thành mô hình quan hệ.
Các bản logic mô tả quan hệ giới thiệu website bán sách:
• khachsan (maks, hang sao, tenks,diachi, dienthoai, sophong,website,
giathanh)
• huongdanvien (mahdv, tenhdv, ngaysinh, diachi, gioitinh, anh, sodt)
• loainhahang (maloai, tenloai)
• nhahang (manh, tennhahang, diachi, anh, gioithieu, sodt, maloai)
• loaitourdulich (maloaitour, tenloaitour)
• tourdulich (matour, tentour, hanhtrinh, anh, giatien, maks, mahdv, songay,
maloaitour)
• tainguyendulich(matn, tentn, chitiet, anh, malh)
• loaihinhdulich (malh, tenlh)
• chitiethoatdong (id_hd, mahd, ten hd, anh, chi tiet)
• hoadong (mahd, tenhd)
• thanhvien (username, tentv, ngaysinh, diachi, sodt, quyen, password,anh)

8


• hanoi (ma, ten, gioithieu, anh, soluoc

9



2.2.2. Thiết kế vật lý cơ sở dữ liệu
Tên bảng
loainhahang

Tên cột

maloai
tenloai
manh
tennhahang
diachi
anh
gioithieu
nhahang
sodt
maloai
mahdv
Huongdanvien tenhdv
ngaysinh
diachi
gioitinh
anh
sodt
loaituour
maloaitour
tenloaitour
matour
tentour

Hanhtrinh
anh

Nội dung
Mã loại nhà hàng
Tên loại nhà hàng
Mã nhà hàng
Tên nhà hàng
Địa chỉ
Hình ảnh
Giới thiệu
Số điện thoại
Mã loại nhà hàng
Mã hướng dẫn viên
Tên hướng dẫn viên
Ngày sinh
Địa chỉ
Giới tính
ảnh
Số điện thoại
Mã loại tour
Tên loại tour
Mã tour
Tên tour
Hành trình
Hình ảnh

Kiểu dữ liệu
Int
varchar

int
Varchar
Varchar
Varchar
Varchar
Varchar
int
int
Varchar
date
Varchar
Varchar
Varchar
Varchar
int
Varchar
int
Varchar
Varchat
Varchar

Kích

Gía trị

Not

Khóa

Khóa ngoài


thước
10
50
10
50
100
50
200
12
10
10
50

hợp lệ

null
x
x
x
x
x

chính

tham chiếu

100
10
50

12
10
50
10
100
5000
50

x
x
x
x
x
x
x
x
x
x
x
x

maloai

manh

mahdv

Maloai

maks


10


tainguyen
dulich

cthoatdong

giatien
maks
mahdv
songay
maloaitour
matn
tentn
chitiet
anh
malh
malh
tenlh
id_hd

Giá tiền
Mã khách sạn
Mã hướng dẫn viên
Số ngày
Mã loại tour
Mã tài nguyên
Tên tài nguyên

Chi tiết
Hình ảnh
Mã loại hình du lịch
Mã loại hình
Tên loại hình
Mã chi tiết hoạt động

int
int
int
Varchar
int
it
Varchar
Varchar
Varchar
int
int
Varchar
int

10
10
10
10
10
10
100
2000
50

10
10
50
20

mahd
tenhd
anh
chitiet
username
tenthanhvien
ngaysinh
diachi
sodt
quyen
password
anh

tên

Mã hoạt động
Tên hoạt động
Hình ảnh
Chi tiết
Tên đăng nhập
Tên thành viên
Ngày sinh
Địa chỉ
Số điện thoại
Quyền sử dụng

Mật khẩu
Hình ảnh

Tên

Varchar
Varchar
Varchar
Varchar
Varchar
Varchar
Date
Varchar
Varchar
Int
Varchar
Varchar
int
Varchar

20
50
50
3000
20
100
100
12
11
50

50
11
100

>0

x
x
x
x
x
x
x

matn

malh

id_hd

mahd

x
x
x
x
x
x
x
x

x
x
x
x
x
x
x
x
x

11


gioithieu
anh
soluoc

Giới thiệu
Hình ảnh
Sơ lược

Varchar
Varchar
Varchar

5000
50
2000

x

x
x

2.2. 3. Mô hình quan hệ

12


13


CHƯƠNG 3: THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH
3.1. Thiết kế
Đây là website giới thiệu về du lịch, quyền được chia thành 4 cấp:
• Admin: có quyền cập nhật, sửa, xóa, thêm thông tin, tìm kiếm thông tin về
các tour du lịch, đặt tour, và phân quyền
• Mod: có quyền cập nhật, xem thông tin, tìm kiếm thông tin về tour du lịch và
đặt tour.
• Thành viên: có quyền xem thông tin, tìm kiếm thông tin về tour du lịch, và
đặt tour
• Khách: xem thông tin, tìm kiếm thông tin về tour du lịch

Hệ thống bao gồm các thông tin như sau:
• Trang chủ: giới thiệu về Hà Nội
• Các tour du lịch:
o Du lịch trong nước
o Du lịch nước ngoài
o Các tour du lịch mạo hiểm
• Giới thiệu Hà Nội:
o Truyền thống văn hóa

o Lịch sử
o Các vùng của Hà Nội
o Tổng quan
o Thời tiết
o Kinh tế
• Nhà hàng
• Khách san
• Các hoạt động du lịch:
o Ẩm thực

14


o Lễ hội
• Tài nguyên du lịch:
o Di tích lịch sử
o Du lịch tôn giáo
o Du lịch thiên nhiên
o Bảo tàng Hà Nội
o Du lịch làng nghề

Hệ thống có các chức năng chính
• Đăng nhập

• Đăng kí có sử dụng công nghệ Ajax

• Phân quyền thành viên

15



• Hiển thị thông tin của hệ thống

• Tìm kiếm các tour du lịch sử dụng công nghệ Ajax

• Đặt tour du lịch, tính tiền tour cho khách

16


• Cập nhật thông tin về giới thiệu Hà Nội
o Truyền thống văn hóa
o Lịch sử
o Các vùng của Hà Nội
o Tổng quan
o Thời tiết
o Kinh tế

• Cập nhật về thông tin

17


o Loại nhà hàng
o Loại tour du lịch
o Loại hình du lịch
• Sửa thông tin thành viên

• Cập nhật, sửa xóa các thông tin
o Các tour du lịch

o Nhà hàng
o Khách sạn
o Các hoạt động du lịch
o Tài nguyên du lịch
o Hướng dẫn viên

18


3.2. Cài đặt
Một số đoạn code chức năng trang website có sử dụng công nghệ Ajax:

Tìm kiếm
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script type="text/javascript">
function showtour(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajaxtimkiem.php?q="+str,true);
xmlhttp.send();
}
</script>
<table width="600" border="0" align="center">
<tr>
<td colspan="2" class="chuto">Tìm kiếm tour du lịch</div></td>
</tr>
<tr>
<td height="36" colspan="2 valign="top">src="anh/chuan.jpg"></div></td>
</tr>

19


<tr>
<td height="39" align="center" class="chu">Tên tour:</td>
<td>onkeyup="showtour(this.value)"/></td>
</tr>
<tr>
<td colspan="2"><div id="txtHint"></div></td>

</tr>
</table>

Đăng nhập
<script language="javascript">
function checkInput()
{
if(document.frmlogin.txtuser.value=="")
{
window.alert('Bạn chưa nhập username');
document.frmlogin.txtuser.focus();
return false;
}
if(document.frmlogin.txtpass.value=="")
{
window.alert('Bạn chưa nhập pass');
document.frmlogin.txtpass.focus();
return false;
}
}
function thoat()
{
window.location="index.php";
}
</script>
<body>
if(isset($_POST['btnlogin']))
{
include('dbconect.php');

$u=$_POST['txtuser'];
$p=$_POST['txtpass'];

20


$sql="select username from thanhvien where
username='$u' && password= MD5('$p')";
$result=mysql_query($sql);
$rows=@mysql_fetch_array($result,MYSQL_NUM);
if(@mysql_num_rows($result)==1)
{
$_SESSION['username']=$rows[0];
?>
<script language="javascript">
window.alert("Đăng nhập thanh cong");
window.location="index.php";
</script>
}
else
{
?>
<script language="javascript">
window.alert("Đăng nhập ko thanh
cong");
</script>
}
}

?>

<div align="center" >height="100" >
<tr>
<td align="center" valign="top">><b>Username </b></font><input type="text" name="txtuser" id="textfield" />/>

<font color="#FF0000" size="4"><b>Password </b></font>type="password" name="txtpass" id="textfield2" >


<input type="submit" name="btnlogin" value="Đăng Nhập" />
<input name="" type="button" value="Thoát" onClick="thoat();" />
</td>
</tr>
</table></div>
</form>

21


Đăng ký
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script type="text/javascript">
{
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");

if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<script language="javascript">
function checkInput()
{
if(document.frmregister.txtname.value=="")
{
window.alert('Bạn chưa nhập họ tên');
document.frmregister.txtname.focus();
return false;
}
if(document.frmregister.txtuser.value=="")
{
window.alert('Bạn chưa nhập username');
document.frmregister.txtuser.focus();
return false;
}
if(document.frmregister.txtpass.value=="")
{
window.alert('Bạn chưa nhập password');
document.frmregister.txtpass.focus();
return false;
}
if(document.frmregister.txtpass1.value=="")
{
window.alert('Bạn chưa nhập xác nhận mật khẩu');
document.frmregister.txtpass1.focus();
return false;

}
if((document.frmregister.txtpass.value!
="")&&(document.frmregister.txtpass1.value!=""))

22


{
if((document.frmregister.txtpass.value)!
=(document.frmregister.txtpass1.value))
{
window.alert('Bạn nhập mật khẩu xác
nhận sai');
document.frmregister.txtpass1.focus();
return false;
}
}
}
function thoat()
{
window.location="index.php";
}
function kiemtrauser(str)
{
if (str.length==0)
{
document.getElementById("txtCheck").innerHTML="";
return;
}
if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtCheck").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajaxcheckuser.php?ten="+str,true);
xmlhttp.send();
}
</script>

23


if(isset($_POST['btnregister']))
{
$n=$_POST['txtname'];
$u=$_POST['txtuser'];
$p=$_POST['txtpass'];
$gt=$_POST['cbbgioitinh'];
$dt=$_POST['txtdt'];

$c=$_POST['cbbcountry'];
$d=$_POST['cbbday'];
$m=$_POST['cbbmonth'];
$y=$_POST['cbbyear'];
include('dbconect.php');
$sql="INSERT INTO
thanhvien(username,tentv,ngaysinh,diachi,sodt,anh,password)
values('$u','$n',CONCAT('$y','-','$m','-','$d'),'$c','$dt','{$_FILES['upload']
['name']}',MD5('$p'))";
$result=mysql_query($sql);
if($result)
{
$filename=$_FILES['upload']['name'];
if(move_uploaded_file($_FILES['upload']
['tmp_name'],"C:/xampp/htdocs/PHP/Do_An/anhtv/$filename"))
{
?>
<script language="javascript">
window.alert('Bạn đã đăng kí thành
công');
window.location="index.php";
</script>
}
?>
<script language="javascript">
window.alert('Bạn đã đăng kí thành
công');
window.location="index.php";
</script>

}
else
echo' Bạn ko đăng ký được vì lỗi hệ
thống'.mysql_error();
}
?>

24



<div align="center"><table width="600" height="425" border="0">
<tr>
<td height="31" colspan="2" bgcolor="#66FFFF">class="dangky"><b>ĐĂNG KÝ THÀNH VIÊN</b>

</td>
</tr>
<tr>
<td height="23" colspan="2">

Những thông tin có
đánh dấu <font color="#FF0000">*</font>là bắt buộc

</td>
</tr>
<tr>
<td colspan="2"><b><font color="#0099FF">Thông Tin Cá
Nhân</font></b></td>
</tr>
<tr>
<td width="138">Họ Tên<font color="#FF0000">*</font></td>
<td width="417">size="45"></td>

</tr>
<tr>
<td>Ngày Sinh<font color="#FF0000">*</font></td>
<td><select name="cbbday">
<option>[Ngày]</option>
{?>
<option><?php echo "$day \n"; ?></option>
<?php } ?>
</select>
<select name="cbbmonth">
<option>[Tháng]</option>
{?>
<option><?php echo "$month \n"; ?></option>
<?php } ?>
</select>
<select name="cbbyear">
<option>[Năm]</option>
{?>
<option><?php echo "$year \n"; ?></option>
<?php } ?>
</select>

25