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

ĐỒ ÁN CƠ SỞ 2 ĐỀ TÀI: XÂY DỰNG WEBSITE ĐẶT MÓN ĂN. Giảng viên : THS. TRỊNH THỊ NGỌC LINH

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 (7.89 MB, 61 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN

ĐỒ ÁN CƠ SỞ 2
ĐỀ TÀI: XÂY DỰNG WEBSITE ĐẶT MÓN ĂN

Sinh viên thực hiện
Giảng viên dạy

: TRẦN QUỐC TÍNH - 19IT5
NGUYỄN ĐĂNG QUÝ - 19IT4
: THS. TRỊNH THỊ NGỌC LINH


Đà nẵng, tháng 11 năm 2020


ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN

ĐỒ ÁN CƠ SỞ 2
ĐỀ TÀI: XÂY DỰNG WEBSITE ĐẶT MÓN ĂN

Sinh viên thực hiện
Giảng viên dạy

: TRẦN QUỐC TÍNH - 19IT5
NGUYỄN ĐĂNG QUÝ - 19IT4
: THS. TRỊNH THỊ NGỌC LINH



Đà Nẵng, tháng 11 năm 2020


MỞ ĐẦU
1. Lý do chọn đề tài:
Trong những năm gần đây với sự phát triển vượt trội của khoa học kỹ thuật
đặc biệt là công nghệ thông tin, với những ứng dụng của công nghệ thông tin vào
các lĩnh vực đã đóng góp phần to lớn cho sự nghiệp phát triển của con người.
Việc xây 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 càng phổ biến và khơng cịn là vấn đề xa lạ.
Và một người bất kì có thể trở thành chủ của một website giới thiệu về bất cứ gì
mà họ quan tâm: một website giới thiệu về bản thân và gia đình họ, hay là một
website trình bày các bộ sưu tập hình ảnh, các sở thích mà họ u thích,...
Đối với các nhà hàng 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 món
ăn, dịch vụ mới của nhà hàng 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 giao tiếp truyền thống thường gặp phải.
Từ vốn kiến thức có được trong q trình học tập và thơng qua tham khảo
một số trang Web giới thiệu sản phẩm, quảng bá sản phẩm. Em đã thực hiện đề
tài: “Xây dựng website đặt món ăn”
2. Mục đích nghiên cứu:
Website sau khi xây dựng xong sẽ đáp ứng được các yêu cầu cơ bản sau:
 Giúp cho khách hàng: Đăng ký tài khoản, đăng nhập tài khoản, đổi mật
khẩu, chỉnh sửa thông tin cá nhân, đặt mua món ăn, xem trạng thái đơn
hàng, tìm kiếm và xem thơng tin về món ăn
 Giúp cho quản trị: Đăng nhập, đổi mật khẩu, chỉnh sửa thông tin cá
nhân, quản lý danh mục các sản phẩm, quản lý đơn hàng, quản lý tài
khoản, quản lý khuyến mãi, thống kê đơn đặt hàng

3. Đối tượng ứng dụng và phạm vi ứng dụng:
Đối tượng ứng dụng của đề tài:
 Mọi người tiêu dùng trên tồn quốc có nhu cầu đặt mua món ăn qua
mạng
 Các cơng ty, doanh nghiệp có nhu cầu mua hệ thống website đặt món
ăn
Phạm vi nghiên cứu của đề tài:
 Tìm hiểu kỹ thuật lập trình, cách thức hoạt động và các đối tượng trong
PHP
 Hiểu được cách lưu trữ dữ liệu của hệ quản trị cơ sở dữ liệu MySQL
 Sử dụng ngôn ngữ PHP và hệ quản trị MySQL để xây dựng website
4. Ý nghĩa khoa học thực tiễn của đề tài:
Trong thời đại thương mại điện tử đang ngày càng phát triển việc ứng dụng
vào hoạt động “Xây dựng website đặt món ăn” đã mang lại nhiều ý nghĩa sau:
 Đỡ tón thời gian cho người tiêu dùng cũng như nhà quản lý trong việc
tham gia vào hoạt động mua bán món ăn
 Giúp người tiêu dùng tìm được giá cả và hình ảnh món ăn một cách
chính xác
 Giúp nhà quản lý dễ dàng hơn trong việc quản lý sản phẩm


LỜI CẢM ƠN
Trước hết, xin gởi lời cảm ơn chân thành đến cơ giáo Trịnh Thị Ngọc Linh
đã tận tình chỉ dẫn, góp ý để báo cáo của nhóm tránh nhiều sai sót và hồn thiện
hơn. Đề án này được được thực hiện bởi nhóm gồm 2 thành viên thuộc sinh viên
của trường Đại học Công nghệ thông tin và Truyền thông Việt – Hàn Đà Nẵng.
Xin gởi lời cảm ơn đến các tác giả bài viết, các trang web đã góp phần cung cấp
cho chúng tơi các tiện ích và thông tin cần thiết để thực hiện đồ án.
Cuối cùng, mặc dù nhóm đã rất cố gắng nhưng chắc chắn sẽ cịn rất nhiều
sai sót mà chưa thể khắc phục hết được vì vậy rất mong thầy đóng góp ý kiến,

phê bình để nhóm rút thêm kinh nghiệm cho những lần sau.
Xin chân thành cảm ơn!


NHẬN XÉT
(Của giảng viên hướng dẫn)
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………

……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
Ký tên


MỤC LỤC
Trang
MỞ ĐẦU..............................................................................................................1
Chương 1 Giới thiệu.........................................................................................11
1.1 Tổng quan...............................................................................................11
1.2 Phương pháp, kết quả.............................................................................11
1.2.1 Nhiệm vụ thiết kế.............................................................................11
1.3 Giới thiệu về kiến trúc và cơng nghệ chính được sử dụng......................11
1.3.1 PHP..................................................................................................12
1.3.2 Bootstrap.........................................................................................12
1.3.3 JavaScript........................................................................................12
1.3.4 Giới thiệu về Ajax............................................................................13
1.3.5 CodeIgniter......................................................................................13
1.4 Cấu trúc đồ án........................................................................................15
Chương 2 Phân tích thiết kế hệ thống...............................................................16
2.1 Phân tích yêu cầu hệ thống.....................................................................16
2.1.1 Các yêu cầu chức năng....................................................................16

2.1.2 Các yêu cầu phi chức năng..............................................................16
2.2 Bảng chú giải..........................................................................................16
2.2.1 Giới thiệu.........................................................................................16
2.2.2 Các định nghĩa.................................................................................17
2.3 Đặc tả bổ sung........................................................................................17
2.3.1 Mục tiêu...........................................................................................17
2.3.2 Phạm vi............................................................................................17
2.3.3 Tài liệu tham khảo...........................................................................17
2.3.4 Chức năng........................................................................................17
2.3.5 Tính khả dụng..................................................................................17
2.3.6 Tính ổn định....................................................................................17
2.3.7 Hiệu suất..........................................................................................17
2.3.8 Sự hỗ trợ..........................................................................................18
2.3.9 Tính bảo mật....................................................................................18
2.3.10 Các ràng buộc thiết kế..................................................................18
2.4 Các sơ đồ Use Case................................................................................18
2.4.1 Các tác nhân của hệ thống...............................................................18
2.4.2 Mơ hình các trường hợp sử dụng của Người dùng...........................19
2.4.3 Mơ hình các trường hợp sử dụng của Quản trị viên.........................19
2.4.4 Biểu đồ use case mức tổng quát của hệ thống..................................19
2.5 Đặc tả Use Case......................................................................................21
2.5.1 Đăng nhập vào hệ thống:.................................................................21
2.5.2 Đăng ký tài khoản:...........................................................................22
2.5.3 Đăng xuất tài khoản:........................................................................23
2.5.4 Quản lý đơn hàng:...........................................................................23
2.5.5 Quản lý thông tin cá nhân:...............................................................24
2.5.6 Quản lý thực đơn:............................................................................25
2.5.7 Quản lý mặt hàng:............................................................................25
2.5.8 Quản lý danh mục sản phẩm:...........................................................26
2.5.9 Quản lý tài khoản người dùng:........................................................27

2.5.10 Quản lý khuyến mãi:....................................................................28
2.5.11 Thống kê đơn đặt hàng:................................................................28
2.5.12 Quản lý trang con:........................................................................29


2.5.13 Quản lý ngơn ngữ website:...........................................................30
2.5.14 Tìm kiếm:.....................................................................................30
2.5.15 Đổi mật khẩu:...............................................................................31
2.5.16 Quản lý giỏ hàng:.........................................................................32
2.5.17 Xem thức ăn đồ uống:..................................................................33
2.6 Biểu đồ lớp.............................................................................................33
2.6.1 Các biểu đồ lớp ràng buộc mối quan hệ:..........................................33
2.7 Biểu đồ tuần tự.......................................................................................38
2.7.2 Biểu đồ tuần tự cho chức năng quản trị hệ thống.............................39
2.7.3 Biểu đồ tuần tự cho chức năng quản lý danh mục sản phẩm...........40
2.7.4 Biểu đồ tuần tự cho chức năng tìm kiếm.........................................41
2.7.5 Biểu đồ tuần tự cho chức năng quản lý đơn hàng............................42
2.7.6 Biểu đồ tuần tự cho chức năng quản lý khuyến mãi........................43
2.7.7 Biểu đồ tuần tự cho chức năng đổi mật khẩu:..................................44
2.7.8 Biểu đồ tuần tự cho chức năng chỉnh sửa thông tin cá nhân:...........45
2.7.9 Biểu đồ tuần tự cho chức năng đặt món ăn:.....................................46
2.7.10 Biểu đồ tuần tự cho chức năng xem đơn hàng:.............................47
Chương 3 Triển khai xây dựng website............................................................48
3.1 Cài đặt website trên máy tính.................................................................48
3.1.1 Cài đặt phần mềm Xampp...............................................................48
3.1.2 Tạo cơ sở dữ liệu MySQL...............................................................52
3.2 Thiết kế giao diện website......................................................................53
3.2.1 Giao diện người dùng......................................................................53
3.2.2 Giao diện quản trị............................................................................56
Kết luận và Hướng phát triển...............................................................................58

3.3 Kết luận..................................................................................................58
3.4 Hướng phát triển.....................................................................................58
3.4.1 Để tài có thể được mở rộng và phát triển theo các hướng sau:........58
3.4.2 Liên kết với các hệ thống ngân hàng:..............................................58
3.4.3 Liên kết với các đối tác là nhà cung cấp dịch vụ để thực hiện quá
trình đăng ký và thanh toán tự động.............................................................58
3.4.4 Đưa vào triển khai ứng dụng trên thực tế.........................................59
DANH MỤC TÀI LIỆU THAM KHẢO..............................................................58


DANH MỤC CÁC BẢNG
Trang
Bảng 2.1 - Danh sách các tác nhân của hệ thống.................................................13
Bảng 2.2 - Đăng nhập..........................................................................................18
Bảng 2.3 - Đăng ký..............................................................................................20
Bảng 2.4 - Đăng xuất...........................................................................................21
Bảng 2.5 - Quản lý đơn hàng...............................................................................21
Bảng 2.6 - Quản lý thông tin cá nhân...................................................................22
Bảng 2.7 - Quản lý thực đơn................................................................................23
Bảng 2.8 - Quản lý mặt hàng...............................................................................23
Bảng 2.9 - Quản lý danh mục sản phẩm..............................................................24
Bảng 2.10 - Quản lý tài khoản người dùng..........................................................25
Bảng 2.11 - Quản lý khuyến mãi..........................................................................26
Bảng 2.12 - Thống kê đơn đặt hàng.....................................................................26
Bảng 2.13 - Quản lý trang con.............................................................................27
Bảng 2.14 - Quản lý ngơn ngữ website................................................................28
Bảng 2.15 - Tìm kiếm..........................................................................................28
Bảng 2.16 - Đổi mật khẩu....................................................................................29
Bảng 2.17 - Quản lý giỏ hàng..............................................................................30
Bảng 2.18 - Xem thức ăn đồ uống.......................................................................31



DANH MỤC HÌNH
Trang
Hình 2.1 - Biểu đồ Use Case của người dùng......................................................15
Hình 2.2 - Biểu đồ Use Case của người quản trị..................................................16
Hình 2.3 - Biểu đồ ràng buộc của lớp orders.......................................................17
Hình 3.2 - Giao diện thiết lập cấu hình của XAMPP...........................................27
Hình 3.3 - Thiết lập thư mục Webserver XAMPP................................................27
Hình 3.4 - Tiến trình cài đặt của Xampp..............................................................28
Hình 3.5 - Giao diện chọn ngơn ngữ mặc định của Xampp.................................28
Hình 3.6 - Giao diện chương trình Xampp..........................................................29
Hình 3.7 - Hướng dẫn truy cập file php.ini..........................................................29
Hình 3.8 - Code của file php.ini...........................................................................30
Hình 3.9 - Giao diện trang phpMyAdmin............................................................30
Hình 3.10 - Tạo cơ sở dữu liệu............................................................................30


DANH MỤC CỤM TỪ VIẾT TẮT
STT
1
2
3
4

Cụm từ
Công nghệ phần mềm
Công nghệ thông tin
Cơ sở dữ liệu
O2O


Viết tắt
CNPM
CNTT
CSDL
Online to offline


Chương 1

Giới thiệu

1.1 Tổng quan
Với sự phát triển của thương mại điện tử, mơ hình thương mại điện tử O2O
dần ra đời. Hệ thống đặt hàng trực tuyến là một biểu hiện của mơ hình kinh doanh
này. Bây giờ có nhiều điều cần biết xung quanh khuôn viên trường chúng tôi,
nhưng hầu hết chúng vẫn sử dụng cách đặt hàng qua điện thoại và ghi chép bằng
tay. Phương thức này khơng chỉ rườm rà, mất thời gian mà cịn do việc mua mang
về thường tập trung nên nhiều người sẽ gọi cùng lúc trong bữa trưa và bữa tối.
Đối mặt với tình huống này, nhà hàng hoặc sẽ tăng số lượng kết nối đồng thời
nhưng điều này sẽ làm tăng chi phí hoặc khơng làm gì sẽ mất đi lợi nhuận mà
đáng lẽ có được.
Hệ thống đặt hàng trực tuyến có thể giải quyết tốt vấn đề này, mạng có thể
xử lý đồng thời các công việc kinh doanh cùng lúc, từ đó tránh được tình trạng
mất khách do nhiều người gọi đến cùng lúc và không kết nối được. Đồng thời
cách thức đặt suất ăn điện tử cũng tạo điều kiện thuận lợi cho việc thu thập và
phân tích dữ liệu. Do đó, đồ án này có thể hiện thực hóa việc đặt hàng trực tuyến
đồng bộ, chỉ cần người dùng đặt hàng trực tuyến là có thể nhận được dịch vụ giao
đồ ăn giống như đặt hàng qua điện thoại, tiện lợi và nhanh chóng hơn.


1.2 Phương pháp, kết quả
1.2.1 Nhiệm vụ thiết kế
Giao diện người dùng của một trang web rất quan trọng, nó trực tiếp đối
mặt với người dùng. Tuy nhiên để nâng cao trải nghiệm của nhiều người dùng
cần phải có nhiều chức năng tương tác giữa người dùng và quản trị viên. Vì vậy,
trong đồ án này, thiết kế back-end chiếm một phần lớn và liên quan đến nhiều
khía cạnh của cơng nghệ.
Giao diện người dùng của trang sử dụng công nghệ HTML và JavaScript
để hỗ trợ hoạt động của giao diện người dùng và sử dụng công nghệ Ajax để đăng
dữ liệu lên máy chủ, nhờ đó trang có thể tương tác với máy chủ mà không cần
làm mới.
Cấu trúc website được thiết kế để khách hàng có thể đặt thức ăn trực tiếp
trên website sau khi đăng ký trên website. Còn quản trị sau khi đăng nhập trên
trang web có thể quản lý các cài đặt khác nhau của nhà hàng trong nền, bao gồm
tên nhà hàng, giờ làm việc, giới thiệu nhà hàng, số điện thoại nhà hàng (số điện
thoại di động, điện thoại cố định) và các thông tin khác, và bạn cũng có thể tùy
chỉnh các yêu cầu giao hàng của riêng mình Chờ đợi. Sau khi tùy chỉnh thơng tin,
người dùng nhà hàng có thể tải lên thơng tin món ăn của riêng họ. Sau khi tải
thơng tin món ăn lên, hãy tải hình ảnh món ăn lên và cuối cùng, nhấp vào nút trực
tuyến nhà hàng trong nền để món ăn trong nhà hàng có thể được xuất bản bình
thường. Với sự kiểm sốt của quản trị viên để tất cả thơng tin sản phẩm có thể
được cập nhật kịp thời và tất cả các đơn đặt hàng có thể được xử lý kịp thời điều
này thực sự hiện thực hóa văn phịng trực tuyến, giảm chi phí làm việc và nâng
cao hiệu quả cơng việc.

1.3 Giới thiệu về kiến trúc và cơng nghệ chính được sử dụng
Môi trường phát triển đồ án này là Window 10, ngôn ngữ phát triển là PHP,
cơ sở dữ liệu sử dụng mã nguồn mở MySql, máy chủ sử dụng máy chủ mã nguồn
mở nổi tiếng Xampp. Nó được cài đặt bằng gói mơi trường phát triển Xampp, do



đó khơng cần phải cấu hình các biến mơi trường của PHP, Apache và MySql
riêng sau khi cài đặt. Xampp tích hợp PHP, Apache, MySql để cấu hình cùng
nhau, trong q trình phát triển bạn có thể dễ dàng sửa đổi các thơng tin cấu hình
khác nhau, ngồi ra Xampp cịn đi kèm với cơng cụ phpMyAdmin cho phép bạn
dễ dàng thực hiện các thao tác khác nhau trên cơ sở dữ liệu thông qua trang web.
Đồ án này sử dụng một framework PHP có tên là CodeIgniter, được phát
hành sau phiên bản PHP 5.3, điều này cho thấy nó có nhiều ưu điểm hơn so với
các framework PHP khác.
Lý do tại sao ngôn ngữ PHP được sử dụng để phát triển là vì theo thống kê
của Alexa, vào năm 2013, khoảng 40% trang web được phát triển với cơ sở dữ
liệu PHP và MySql. Là một sinh viên năm hai, tơi rất tị mị về việc sử dụng nhiều
loại cơng nghệ như vậy. Có vẻ như, em hy vọng sẽ học hỏi được nhiều điều từ
quá trình phát triển đồ án này.
1.3.1 PHP
PHP (tên đầy đủ là Hypertext Preprocessor) là một ngơn ngữ lập trình máy
tính đa năng mã nguồn mở, đặc biệt thích hợp để phát triển web và được nhúng
trong HTML. Ngữ pháp của PHP hấp thụ các đặc điểm của các ngơn ngữ máy
tính phổ biến như ngôn ngữ C, Java và Perl, và rất dễ học cho các lập trình viên
nói chung. Mục tiêu chính của PHP là cho phép các nhà phát triển web nhanh
chóng viết các trang động, nhưng PHP cũng được sử dụng trong nhiều lĩnh vực
khác. PHP ban đầu được phát triển bởi Ledorf vào năm 1995. Và bây giờ các tiêu
chuẩn PHP được duy trì bởi Nhóm PHP và cộng đồng nguồn mở. PHP sử dụng
Giấy phép PHP làm thỏa thuận cấp phép, nhưng vì thỏa thuận này hạn chế việc
sử dụng tên PHP, nên nó khơng tương thích với thỏa thuận cấp phép nguồn mở
GPL. PHP có một loạt các ứng dụng, đặc biệt là trong việc phát triển các chương
trình web. Nói chung, PHP chủ yếu chạy trên các máy chủ web và tạo ra các
trang web được người dùng duyệt bằng cách chạy mã PHP. PHP có thể chạy trên
hầu hết các máy chủ và hệ điều hành, và hồn tồn miễn phí khi sử dụng PHP.
1.3.2 Bootstrap

Trang sử dụng phiên bản Bootstrap V3 nhiều nhất, đây là bộ công cụ mã
nguồn mở để phát triển front-end do Twitter đưa ra. Nó là một khn khổ
CSS/HTML được phát triển bởi nhà thiết kế Twitter Mark Otto và Jacob
Thornton. Bootstrap cung cấp các thông số kỹ thuật HTML và CSS thanh lịch,
được viết bằng ngôn ngữ CSS động Less. Bootstrap đã trở nên phổ biến kể từ khi
nó được đưa ra và là một dự án nguồn mở phổ biến trên GitHub, bao gồm cả Tin
tức mới về MSNBC (Microsoft National Broadcasting Corporation) của NASA.
Nhiều công ty xuất sắc trong và ngoài nước sử dụng Bootstrap làm khung
phát triển front-end cho các trang web của họ. Các trang riêng của Twitter được
phát triển bằng Bootstrap và phần phụ trợ của các nhà phát triển Douban trong
nước cũng được viết bằng Bootstrap. Ưu điểm của việc sử dụng ngôn ngữ CSS
động Less for development là bạn có thể viết mã CSS như lập trình, điều này giúp
cải thiện đáng kể hiệu quả phát triển.
1.3.3 JavaScript
JavaScript, một ngôn ngữ kịch bản theo nghĩa đen, là một ngôn ngữ dựa
trên nguyên mẫu được gõ động, được gõ yếu, có hỗ trợ kiểu cài sẵn. Trình thơng
dịch của nó được gọi là cơng cụ JavaScript, là một phần của trình duyệt và được
sử dụng rộng rãi trong các ngôn ngữ kịch bản phía máy khách. Nó được sử dụng
lần đầu tiên trên các trang web HTML để thêm các chức năng động vào các trang


web HTML. Tuy nhiên, giờ đây JavaScript cũng có thể được sử dụng trên các
máy chủ web như Node.js.
Trong đồ án này, thư viện jQuery rất thông dụng đã được sử dụng. jQuery
là một thư viện JavaScript trên nhiều trình duyệt giúp đơn giản hóa hoạt động
giữa HTML và JavaScript. Phiên bản đầu tiên được phát hành bởi John Resig tại
BarCamp NYC vào tháng 1 năm 2006. Nó hiện đang được phát triển bởi một
nhóm phát triển do Dave Methvin dẫn đầu. Trong số 10.000 trang web được truy
cập nhiều nhất trên thế giới, 65% sử dụng jQuery, đây là thư viện JavaScript phổ
biến nhất hiện nay.

jQuery là phần mềm mã nguồn mở, được cấp phép theo giấy phép MIT.
Thiết kế cú pháp của jQuery giúp thực hiện nhiều thao tác dễ dàng, chẳng hạn
như thao tác với các đối tượng tài liệu (document), chọn phần tử DOM, tạo hiệu
ứng hoạt hình, xử lý sự kiện và phát triển chương trình Ajax. jQuery cũng cung
cấp cho các nhà phát triển khả năng tạo các plug-in trên đó. Điều này cho phép
các nhà phát triển tóm tắt các tương tác và hoạt ảnh cấp thấp, các hiệu ứng nâng
cao và các thành phần chủ đề nâng cao. Phương pháp mô-đun cho phép thư viện
jQuery tạo các trang web động và ứng dụng web mạnh mẽ.
Hệ thống này sử dụng hai phiên bản jQuery, phiên bản 2.1.0 mới nhất
được sử dụng ở chế độ nền và phiên bản 2.0.3 được sử dụng ở chế độ nền. Ưu
điểm lớn nhất của việc sử dụng jQuery là tính đến khả năng tương thích của trình
duyệt, vì vậy bạn khơng cần phải Gỡ lỗi trong các trình duyệt khác nhau.
1.3.4 Giới thiệu về Ajax
AJAX là viết tắt của "Asynchronous JavaScript and XML" (công nghệ
JavaScript và XML không đồng bộ), dùng để chỉ một tập hợp các cơng nghệ phát
triển trang web phía trình duyệt tích hợp nhiều công nghệ. Khái niệm về Ajax
được đưa ra bởi Jesse James Garrett.
Các ứng dụng web truyền thống cho phép người dùng điền vào biểu mẫu
và gửi yêu cầu đến máy chủ web khi biểu mẫu được gửi. Máy chủ nhận và xử lý
biểu mẫu đến, sau đó gửi nó trở lại một trang web mới, nhưng cách tiếp cận này
lãng phí rất nhiều băng thơng, vì hầu hết các mã HTML trong hai trang thường
giống nhau. Vì mỗi giao tiếp ứng dụng cần gửi một yêu cầu đến máy chủ, thời
gian phản hồi của ứng dụng phụ thuộc vào thời gian phản hồi của máy chủ. Điều
này khiến giao diện người dùng phản hồi chậm hơn nhiều so với các ứng dụng
gốc.
Không giống như điều này, các ứng dụng AJAX chỉ có thể gửi và truy xuất
dữ liệu cần thiết đến máy chủ và sử dụng JavaScript trên máy khách để xử lý
phản hồi từ máy chủ. Do dữ liệu trao đổi giữa máy chủ và trình duyệt giảm đi rất
nhiều (chỉ còn khoảng 5% so với ban đầu) nên máy chủ phản hồi nhanh hơn.
Đồng thời, rất nhiều cơng việc xử lý có thể được thực hiện trên máy khách thực

hiện yêu cầu, do đó, tải trên máy chủ Web cũng được giảm bớt.
Trong đồ án này, thư viện Ajax sử dụng thư viện trong jQuery, và tất cả dữ
liệu tương tác với máy chủ đều ở định dạng json để tránh các định dạng không
nhất quán.
1.3.5 CodeIgniter
CodeIgniter là một nền tảng ứng dụng web nguồn mở được viết bằng ngôn
ngữ PHP bởi Rick Ellis (CEO của EllisLab, Inc). Phiên bản đầu tiên được phát
hành ngày 28.02.2006, phiên bản hiện tại: 1.7.2 (phát hành ngày 11.09.2009). Ý
tưởng xây dựng CodeIgniter được dựa trên Ruby on Rails, một nền tảng ứng


dụng web được viết bằng ngôn ngữ Ruby. Hiện tại, CodeIgniter đang được phát
triển bởi ExpressionEngine Development Team thuộc EllisLab, Inc
CI Framework hoạt động theo cơ chế lưu các nội dung vào cache (bộ nhớ
đệm) và check bộ đệm trước khi tiến hành thực hiện yêu cầu. Từ đó giúp trang
website bạn xây dựng giảm số lần truy cập và xử lý các dữ liệu. Qua đó giúp tối
ưu hóa tốc độ tải website. Một số tính năng cơ bản của Codeigniter Framework
bao gồm:
 Thông qua active records hỗ trợ kết nối và tương tác đa nền tảng
database.
 Hỗ trợ quản lý Session.
 Định dạng và chuẩn hóa dữ liệu đầu vào.
 Tăng độ truy xuất dữ liệu và giảm tải cho toàn trang để tăng tốc độ
thực thi (Caching).
 Hỗ trợ giao diện web Template Engine hoặc sử dụng chính PHP tags
hoặc để điều hướng trong Views.
 Hỗ trợ Hooks, Class Extensions (các lớp ngòai) và Plugins.
Framework này giúp bạn có khung sườn xử lý cả 2 vấn đề là bảo mật PHP
và PHP nâng cao để tạo ra những dự án khác nhau. Với người mới tìm hiểu về
MVC thì Codeigniter Framework rất phù hợp bởi tính năng dễ học, tốc độ chạy

nhanh chóng, nhà phát triển web khơng cần phải viết những đoạn code hỗn tạp,
khó khăn. Ngồi ra, bạn cịn có thể upload file, xử lý hình ảnh, tạo session và
cookies đơn giản.
Ưu điểm:
- Được thiết kế theo mơ hình Model-View-Controller: Mơ hình MVC giúp
tách thành phần hiển thị giao diện (presentation) và xử lý (business logic)
của một phần mềm thành những thành phần độc lập, từ đó giúp cho việc
thiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả năng mở
rộng của phần mềm. CodeIgniter vận dụng mơ hình này trong thiết kế,
giúp tách biệt các tập tin giao diện với các tập tin xử lý dữ liệu, nâng cao
khả năng quản lý và dễ bảo trì
- Nhỏ gọn: Gói cài đặt chỉ 404KB (không bao gồm phần User Guide). So
với các PHP framework khác như CakePHP (1.3MB), Symfony (5.08MB)
hay Zend Framework (5.66MB)…kích thước của CodeIgniter giúp giảm
thiểu đáng kể không gian lưu trữ.
- Tốc độ nhanh: CodeIgniter được được đánh giá là PHP framework có tốc
độ nhanh chỉ sau framework Laravel. Bằng cơ chế lưu nội dung vào bộ
đệm (cache), kiểm tra bộ đệm trước khi tiến hành thực hiện yêu cầu,
CodeIgniter giảm số lần truy cập và xử lý dữ liệu, từ đó tối ưu hóa tốc độ
tải trang.
- Miễn phí: CodeIgniter được phát hành dưới giấy phép Apache/BSD mở
rộng, cho phép người dùng tự do thay đổi, phát triển và phân phối mã
nguồn
- Hỗ trợ Search Engine Optimization: Cấu trúc URL của CodeIgniter rất
thân thiện với các robot tìm kiếm
- Hệ thống thư viện phong phú: CodeIgniter cung cấp các thư viện phục vụ
cho những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truy
cập cơ sở dữ liệu, gửi email, kiểm tra dữ liệu, quản lý session, xử lý
ảnh…đến những chức năng nâng cao như XML-RPC, mã hóa, bảo mật…



-

-

-

-

-

Bảo mật hệ thống: Cơ chế kiểm tra dữ liệu chặt chẽ, ngăn ngừa XSS và
SQL Injection của CodeIgniter giúp giảm thiểu các nguy cơ bảo mật cho
hệ thống
Nhược điểm:
Chưa hỗ trợ kỹ thuật lập trình ORM (Object – Relational Mapping): Kỹ
thuật lập trình này giúp các bảng của cơ sở dữ liệu được ánh xạ thành các
đối tượng trong lập trình, giúp việc thực hiện các thao tác trong cơ sở dữ
liệu thuận tiện và đơn giản hơn.
Chưa hỗ trợ công nghệ AJAX tạo ứng dụng cho website (Asynchronous
Javascript and XML): Để thiết kế các website 2.0 dường như không thể
thiếu AJAX nhằm tăng cường tương tác giữa hệ thống và người dùng. Đây
là điểm yếu của Codeigniter khiến các lập trình viên/nhà phát triển web
phải sử dụng thêm thư viện bên ngoài như Mootools, JQuery, Prototype,
Script.aculo.us,…
Chưa hỗ trợ một vài loại module thông dụng như với một số loại
framework mã nguồn mở khác: Codeigniter chưa sở hữu các module hỗ
trợ một số tác vụ cơ bản trong quá trình thiết lập và phát triển ứng dụng
web như trình xử lý PDF, Chứng thực người dùng (User Authorization),
trình phân tích RSS (RSS Parser,…

Chưa hỗ trợ ngun lý lập trình EDP (Event Driven Programming): Các
luồng xử lý của hệ thống của EDP sẽ dựa vào các sự kiện, ví dụ như một
cú click chuột, gõ bàn phím,… Dù vậy thì khuyết điểm này không phải là
vấn đề lớn của Framework Codeigniter.

1.4 Cấu trúc đồ án
Phần này trình bày cấu trúc của đồ án:
Chương 2: Phân tích thiết kế hệ thống. Bao gồm các tài liệu liên quan
đến quá trình phân tích hệ thống như: phân tích các yêu cầu chức năng và phi
chức năng, các mơ hình use case và đặt tả use case, các mơ hình lớp và lưu đồ
hoạt động
Chương 3: Triển khai xây dựng website. Bao gồm các tài liệu liên quan
đến quá trình thiết kế hệ thống như: cài đặt môi trường máy chủ và cơ sở dữ liệu,
thiết kế giao diện
Chương 4: Kết luận và hướng phát triển. Trình bày tóm tắt các kết quả
đạt được và đề xuất các hướng mở rộng, phát triển trong tương lai.


Chương 2

Phân tích thiết kế hệ thống

2.1 Phân tích yêu cầu hệ thống
2.1.1 Các yêu cầu chức năng
Yêu cầu chức năng nghiệp vụ:
 Cho phép người dùng đăng ký với hệ thống với vai trị khách

hàng.
 Lưu trữ thơng tin của khách hàng.
 Cho phép khách hàng đặt món ăn qua web.

 Cho phép khách hàng tìm kiếm thơng tin món ăn.
 Cho phép khách hàng và quản trị viên hiệu chỉnh thông tin cá

nhân khi cần thiết.
 Hỗ trợ cho người quản trị trong việc quản lý hệ thống bao
gồm: quản lý thông tin của khách hàng, được quyền kích hoạt,
hủy kích hoạt và xem thơng tin các đối tượng này, quản lý các
 thơng tin món ăn, thực đơn và các thông tin liên quan.

Yêu cầu chức năng hệ thống:
 Cho phép người dùng đăng nhập vào hệ thống với các vai trò

người dùng và quản trị viên.
 Đảm bảo tính bảo mật của các thơng tin đăng nhập của người
dùng.
 Phân cấp quyền hạn của khách hàng và quản trị viên trong việc
truy cập vào các tài nguyên của hệ thống.
2.1.2 Các yêu cầu phi chức năng
Nhằm lợi ích của các đối tượng người dùng:
 Tính tiện dụng: Giao diện thân thiện, dễ sử dụng đối với những
người dùng Windows.
 Tính hiệu quả: Đảm bảo việc truy xuất nhanh đến các trang và khả
năng kiểm soát lỗi tốt.
 Tính tương thích: Hỗ trợ tốt trên các trình duyệt từ IE5.1 trở lên và
các trình duyệt tương thích khác như Netscape, Opera, Mozilla…
Tính tiến hóa.
Nhằm lợi ích của việc phát triển đồ án:
 Thiết kế theo mơ hình MVC.
 Tính module hóa.
 Các tham số của hệ thống được thiết kế động, dễ điều chỉnh.

 Tính dùng lại của code.

2.2 Bảng chú giải
2.2.1 Giới thiệu
Bảng chú giải này được dùng để định nghĩa các thuật ngữ đặc thù trong
lĩnh vực của bài tốn, giải thích các từ ngữ có thể khơng quen thuộc đối v ới
người đọc trong các mô tả use case hoặc các tài liệu khác của đề tài. Thường thì
tài liệu này có thể được dùng như một từ điển dữ liệu khơng chính thức, ghi lại


các định nghĩa dữ liệu để các mô tả use case và các tài liệu khác có thể tập trung
vào những gì hệ thống phải thực hiện.
2.2.2 Các định nghĩa
Bảng chú giải này bao gồm các định nghĩa cho các thuật ngữ được sử dụng
trong mơ hình use case và trong các tài liệu khác của hệ thống website đặt món
ăn sau:
 Admin (Quản trị viên): Admin là người quản trị hệ thống website, chịu
trách nhiệm quản lý tất cả các thông tin người dùng thuộc các đối
tượng khác nhau. Ngồi ra, nhiệm vụ quan trọng của phía quản trị
trang web là làm cầu nối liên hệ giữa bên cung cấp dịch vụ (thanh tốn
ví điện tử, thẻ ngân hàng).
 Users (Người dùng): Người dùng là đối tượng phục vụ chủ yếu của hệ
thống. Người dùng có nhu cầu sử dụng các dịch vụ như đăng ký tài
khoản, tìm kiếm sản phẩm, thêm sản phẩm vào giỏ hàng. Sau khi đăng
ký tài khoản thì người dùng có thể thanh tốn giỏ hàng, chỉnh sửa trang
các nhân, đổi mật khẩu, xem trạng thái đơn hàng, điểm khuyến mãi.

2.3 Đặc tả bổ sung
2.3.1 Mục tiêu
Mục tiêu của tài liệu này là để định nghĩa các yêu cầu của Hệ thống

website đặt món ăn qua mạng. Đặc tả bổ sung này liệt kê các yêu cầu chưa được
thể hiện trong các use case. Đặc tả bổ sung cùng với các use case trong mơ hình
use case thể hiện đầy đủ các u cầu trong hệ thống.
2.3.2 Phạm vi
Đặc tả bổ sung áp dụng cho Hệ thống website đặt món ăn qua mạng được
phát triển bởi nhóm thực hiện đề tài này.
Đặc tả này vạch rõ các yêu cầu phi chức năng của hệ thống, như là tính ổn
định, tính khả dụng, và tính hỗ trợ cũng như các yêu cầu chức năng chung của
một số use case.
2.3.3 Tài liệu tham khảo
Khơng có.
2.3.4 Chức năng
Hỗ trợ nhiều người dùng làm việc đồng thời
Thông báo kết quả đăng ký cho người dùng trong thời gian nhanh nhất
Tìm kiểm sản phẩm phù hợp nhất cho người dùng
2.3.5 Tính khả dụng
Giao diện của website thân thiện, dễ sử dụng.
2.3.6 Tính ổn định
Hệ thống hoạt động trong khoảng thời gian mà quản trị viên đã cài đặt và
không cho phép người dùng đặt món ăn ngồi thời gian làm việc.
2.3.7 Hiệu suất
Hệ thống phải hỗ trợ hàng chục người cùng truy cập đến cơ sở dữ liệu
trung tâm đồng thời bất kỳ lúc nào.


2.3.8 Sự hỗ trợ
Khơng có
2.3.9 Tính bảo mật
Vai trị của từng đối tượng phải được thể hiện rõ ràng.
Chỉ có người quản trị mới có quyền quyết định thêm, xóa hay kích hoạt,

hủy kích hoạt các đối tượng và nội dung trong website.
Các thông tin chung của mỗi đối tượng do đối tượng đó quản lý.
2.3.10 Các ràng buộc thiết kế
Hệ thống phải hỗ trợ tốt trên hầu hết các trình duyệt của Windows như:
Chrome, Internet Explorer, Netscape, Opera, Mozilla…

2.4 Các sơ đồ Use Case
2.4.1 Các tác nhân của hệ thống
Bảng 2.1 - Danh sách các tác nhân của hệ thống

STT
1

Tên Actor
Người dùng (User)

-

-

-

Giải thích
Đăng nhập hệ thống: Mỗi một khách hàng
đã đăng ký tài khoản đều có quyền đăng
nhập vào tài khoản của mình và tài khoản
sẽ được quản lý bởi Adminstrator
Đăng ký tài khoản thành viên khi khách
hàng muốn tham gia website
Sửa thông tin tài khoản: khi cần cập nhật,

sửa thông tin (họ và tên, địa chỉ email, số
điện thoại)
Đặt đơn hàng: Khi người dùng đã chọn các
sản phẩm cần mua vào giỏ hàng thì sẽ được
chuyển đến trang thanh tốn để điền các
thơng tin cần thiết (chọn địa chỉ, phương
thức thanh tốn) và sau đó xác nhận đơn
hàng
Xem đơn hàng: Khi đơn hàng đã được đặt
thành công thì người dùng có thể xem trạng
thái đơn hàng và hủy đơn hàng
Sửa địa chỉ giao hàng: người dùng có thể
tùy chỉnh địa chỉ (thêm, sửa, xóa) và đặt địa
chỉ mặc định khi đặt hàng.
Thay đổi mật khẩu: khi muốn thay đổi mật
khẩu người dùng chỉ cần nhập đúng mật
khẩu cũ và mật khẩu mới 2 lần


2

Quản trị viên (Admin)

-

-

Admin là tác nhân giữ vai trò chính của
website: Quyền quản lý là quyền cao nhất
của hệ thống. Những người giữ vai trị quản

lý chính có thể phân quyền cho các thành
viên trong website.
Tác nhân Admin có thể thực hiện được tất
cả các chức năng của website như: Tạo,
quản lý tài khoản thành viên tức là Admin
có quyền sửa hay xóa tài khoản của các
thành viên trong ban quản trị các chun
mục tin. Ngồi ra Admin cịn quản lý và
phân quyền cho các chuyên mục, tùy chỉnh
món ăn (thêm, sửa, xóa).

2.4.2 Mơ hình các trường hợp sử dụng của Người dùng
2.4.3 Mơ hình các trường hợp sử dụng của Quản trị viên
2.4.4 Biểu đồ use case mức tổng quát của hệ thống
Hình 2.1 - Biểu đồ Use Case của người dùng


Hình 2.2 - Biểu đồ Use Case của người quản trị

2.5 Đặc tả Use Case
2.5.1 Đăng nhập vào hệ thống:
Bảng 2.2 - Đăng nhập

Use case

Nội dung


Tên Use case
Mô tả


Đăng nhập
Use case cho phép người dùng đăng nhập vào website
để thực hiện những chức năng của mình

Actor
Điều kiện kích hoạt

Khách hàng,Admin
Khi người dùng chọn chức năng đăng nhập từ trang chủ
của website
Người dùng phải có tài khoản trên website
Người dùng đăng nhập thành công
1. Hệ thống hiển thị màn hình đăng nhập.
2. Người dùng nhập tên đăng nhập và mật khẩu.
3. Hệ thống hiển thị kiểm tra thông tin đăng nhập.
4. Nếu thành công hệ thống hiển thị ra giao diện của
người dùng.
5. Kết thúc Use case.
TH1 – Mật khẩu không hợp lệ: Khi người dùng nhập sai
tên đăng nhập và mật khẩu
1. Hệ thống hiển thị lại màn hình đăng nhập để
người dùng đăng nhập lại thông tin kèm theo
thông báo tên đăng nhập và mật khẩu bị sai.
2. Quay lại bước 2 trong luồng sự kiện chính.
TH2 – Quên mật khẩu: Khi người dùng chọn chức năng
quên mật khẩu trên màn hình đăng nhập
1. Hệ thống hiển thị màn hình để người dùng nhập
email.
2. Người dùng nhập email và chọn nút chức năng

Lấy lại mật khẩu.
3. Hệ thống kiểm tra email hợp lệ và gửi liên kết để
reset mật khẩu cho người dùng email.
4. Hệ thống hiển thị màn hình thơng báo thành cơng
5. Use case kết thúc.

Tiền điều kiện
Hậu điều kiện
Luồng sự kiện chính

Luồng sự kiện phụ

2.5.2 Đăng ký tài khoản:
Bảng 2.3 - Đăng ký

Use case

Nội dung

Tên Use case

Đăng ký


Mô tả

Use case cho phép người dùng đăng ký tài khoản để
thực hiện những chức năng của mình

Actor


Khách hàng

Điều kiện kích hoạt

Khi người dùng chọn chức năng đăng ký từ trang chủ
của website

Tiền điều kiện

Người dùng phải có tài khoản email

Hậu điều kiện

Người dùng đăng ký thành công

Luồng sự kiện chính

Use case này bắt đầu khi một khách viếng có nhu cầu
đăng ký làm thành viên của hệ thống hoặc khi người
dùng chọn đăng ký sử dụng dịch vụ mà chưa có account
đăng ký.

Luồng sự kiện phụ

1. Hệ thống hiển thị màn hình đăng ký.
2. Người dùng nhập tên, email, số điện thoại và mật
khẩu.
3. Hệ thống hiển thị kiểm tra thông tin đăng ký.
4. Nếu thành công hệ thống hiển thị thơng báo

thành cơng trên màn hình.
5. Kết thúc Use case.
TH1 - Nếu trong quá trình đăng ký người dùng quyết
định hủy bỏ các thơng tin đăng ký thì use case sẽ kết
thúc và trạng thái của hệ thống khơng thay đổi.
TH2 - Nếu q trình kiểm tra thơng tin nhập phát hiện
khơng hợp lệ thì hệ thống sẽ trở về trạng thái trước đó
(mở trang nhập liệu với các thơng tin nhập trước đó vẫn
cịn để người dùng có thể chỉnh sửa).

2.5.3 Đăng xuất tài khoản:
Bảng 2.4 - Đăng xuất

Use case

Nội dung

Tên Use case

Đăng xuất

Mô tả

Use case cho phép người dùng đăng xuất khỏi website


Actor

Khách hàng, Admin


Điều kiện kích hoạt

Khi người dùng chọn chức năng đăng xuất từ trang chủ
của website

Tiền điều kiện

Người dùng phải phải đăng hhập vào hệ thống

Hậu điều kiện

Người dùng đăng xuất thành cơng

Luồng sự kiện chính

Luồng sự kiện phụ

1. Hệ thống hiển thị màn hình đăng xuất.
2. Người dùng nhấn vào mục Logout xuất hiện trên
thanh menu “My Account”.
3. Hệ thống sẽ kiểm tra tài khoản.
4. Nếu thành công hệ thống hiển thị thơng báo
thành cơng trên màn hình.
5. Kết thúc Use case.
TH - Nếu trong quá trình đăng ký người dùng quyết
định hủy bỏ các thông tin đăng ký thì use case sẽ kết
thúc và trạng thái của hệ thống không thay đổi.

2.5.4 Quản lý đơn hàng:
Bảng 2.5 – Quản lý đơn hàng


Use case

Nội dung

Tên Use case

Quản lý đơn hàng

Mô tả

Use case cho phép người dùng quản lý đơn hàng của
khách hàng

Actor

Admin

Điều kiện kích hoạt

Khi người dùng chọn chức năng Orders trên thanh menu
của website

Tiền điều kiện

Người dùng phải đăng nhập vào hệ thống

Hậu điều kiện

Người dùng xem thơng tin đơn hàng thành cơng


Luồng sự kiện chính

1. Hệ thống hiển thị thơng tin đơn hàng trên màn
hình.
2. Người dùng có thể xem các đơn hàng mới, đơn
hàng đã giao hay đơn hàng đã hủy, có thể tìm
kiếm thơng tin đơn hàng.
3. Hệ thống hiển thị thông tin cụ thể về đơn hàng
như : ngày đặt hàng, tên khách hàng, số điện
thoại khách hàng....
4. Kết thúc Use case.


2.5.5 Quản lý thông tin cá nhân:
Bảng 2.6 - Quản lý thông tin cá nhân

Use case

Nội dung

Tên Use case

Quản lý thông tin cá nhân

Mô tả

Use case cho phép người dùng chỉnh sửa hồ sơ của mình

Actor


Khách hàng, Admin

Điều kiện kích hoạt

Khi người dùng chọn chức năng profile trên thanh menu
của website

Tiền điều kiện

Người dùng phải đăng nhập vào hệ thống

Hậu điều kiện

Người dùng có thể chỉnh sửa và cập nhật hồ sơ

Luồng sự kiện chính

1. Hệ thống hiển thị trang profile.
2. Người dùng nhập tên, họ, email, số điện thoại và
ảnh đại diện. Sau đó nhấn nút cập nhật hoặc hủy
bỏ
3. Hệ thống hiển thị kiểm tra thông tin cập nhật.
4. Nếu thành công hệ thống hiển thị thông báo
thành cơng trên màn hình.
5. Kết thúc Use case.
TH2 – Nhập không đúng thông tin yêu cầu: Khi người
dùng nhập sai định dạng tên, email hoặc số điện thoại.
1. Hệ thống hiển thị lại màn hình cập nhật hồ sơ để
người dùng điền lại thông tin kèm theo thông báo

định dạng tên, email, số điện thoại hoặc số điện
thoại bị sai.
2. Quay lại bước 2 trong luồng sự kiện chính.

Luồng sự kiện phụ

2.5.6 Quản lý thực đơn:
Bảng 2.7 - Quản lý thực đơn

Use case

Nội dung

Tên Use case

Quản lý thực đơn

Mô tả

Use case cho phép người dùng chỉnh sửa thông tin của
thực đơn
Admin

Actor


×