3. Các đoạn mã quan trọng:
2.2. Phía người quản trị & người duyệt đơn hàng:
2.2..1. Đăng nhập:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Mật khNu Textbox Max=30 ký tự, không rỗng Nhập lại mật
khNu
Textbox Giống mật khNu
Lưu thay đổi Button Không Nhấn Cập nhật vào database Hủy tác vụ Button Không Nhấn Trở về tab xem tài khoản
Tên Kiểu Bẫy lỗi Sự kiện Hành động
ID Textbox Không
Password Textbox Không
Grant ComboBox Không Nhấn Chọn quyền
Cancel Button Không Nhấn Xóa trống các textbox Login Button không Nhấn Kiểm tra tài khoản đăng
2.2..2. Quản lý giới thiệu: • Xem danh sách:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
DataGrid DataGrid Không Select Chọn 1 dòng
Delete Button Không Nhấn Xóa 1 dòng trên datagrid & database
Insert Button Không Nhấn Mở trang Insert Update Button không Nhấn Mở trang Update
• Thêm
• Sửa
Tên Kiểu Bẫy lỗi Sự kiện Hành động
DataGrid DataGrid Không Select Chọn 1 dòng Save Button Không Nhấn Lưu vào database
2.2..3. Quản lý tài khoản: • Cấp quyền & khóa tài khoản:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Priority Textbox Dạng số nguyên dương, max=10
Save Button Không Nhấn Lưu thay đổi vào
database
Cancel Button Không Nhấn Về trang xem giới thiệu
Tên Kiểu Bẫy lỗi Sự kiện Hành động
DataGrid DataGrid Không Select Chọn 1 dòng
Grant Button Không Nhấn Cấp quyền Reviewer (duyệt
đơn hàng) cho tài khoản chọn
• Đổi mật khNu:
Tên Kiểu Bẫy lỗi Sự
kiện
Hành động
Password Textbox Max=30 ký tự, không rỗng Retype
Password
Textbox Giống mật khNu
Save Change Button Không Nhấn Cập nhật vào database Cancel Button Không Nhấn Xóa trắng các textbox
2.2..4. Quản lý sự kiện: • Xem danh sách:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
DataGrid DataGrid Không Select Chọn 1 dòng
Delete Button Không Nhấn Xóa 1 dòng trên datagrid & database
Insert Button Không Nhấn Mở trang Insert Update Button không Nhấn Mở trang Update
• Thêm:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
… Button Không Nhấn Mở hộp thoại chọn hình Intro Textbox Không rỗng,
max=500 ký tự
Detail Textbox Không rỗng, max=1000 ký
tự
Date from DateField <= date to Nhấn Mở lịch chọn Date to Datefield >=date from Nhấn Mở lịch chọn
Homepage Checkbox Không Check
Save Button Không Nhấn Lưu vào database Cancel Button Không Nhấn Xóa rỗng các textbox
Finish Button Không Nhấn Trở về trang xem sự
• Sửa
Tên Kiểu Bẫy lỗi Sự kiện Hành động
… Button Không Nhấn Mở hộp thoại chọn hình Intro Textbox Không rỗng,
max=500 ký tự
Detail Textbox Không rỗng, max=1000 ký
tự
Date from DateField <= date to Nhấn Mở lịch chọn Date to Datefield >=date from Nhấn Mở lịch chọn
Homepage Checkbox Không Check
Save Button Không Nhấn Lưu vào database
Cancel Button Không Nhấn Trở về trang xem sự
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Các radiobutton
Radiobutto n
Không Select Chọn trạng thái đơn hàng
Search Button Không Nhấn Tìm kiếm đơn hàng theo ngày, trạng thái trong database
DataGrid Datagrid Không Select Chọn 1 dòng From date DateField <= date to Nhấn Mở lịch chọn
To date Datefield >=date from Nhấn Mở lịch chọn Book date Datefield > ngày hiện tại Nhấn Mở lịch chọn Book time Textbox hh:mmam/pm
Cancel Button Không Nhấn Xóa rỗng các textbox Exit Button Không Nhấn Trở về trang dành cho
Reviewer Guest name Textbox Max=50 ký tự
Guestphone Textbox Max=20 ký tự
Pax Numeric stepper
Từ 1 đến 10 Nhấn Tăng hoặc giảm 1 Email Textbox Đúng dạng
Note Textarea Max=1000 ký
tự
Status ComboBox Không Nhấn Chọn trạng thái cho đơn hàng
Update Button Không Nhấn Lưu thay đổi vào database
2.2..6. Quản lý thực đơn: • Xem danh sách:
• Thêm:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
DataGrid DataGrid Không Select Chọn 1 dòng
Delete Button Không Nhấn Xóa 1 dòng trên datagrid & database
Insert Button Không Nhấn Mở trang Insert Update Button không Nhấn Mở trang Update
• Sửa:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Name Textbox Không rỗng, max=50 ký tự
Save Button Không Nhấn Lưu vào database
Cancel Button Không Nhấn Trở về trang xem thực
đơn
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Name Textbox Không rỗng, max=50 ký tự
Priority Numeric stepper
Từ 1 đến 10 Nhấn Tăng hoặc giảm 1
Save Button Không Nhấn Lưu thay đổi vào database Cancel Button Không Nhấn Trở về trang xem thực
2.2..7. Quản lý thực đơn con: • Xem danh sách:
• Thêm:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
DataGrid DataGrid Không Select Chọn 1 dòng
Delete Button Không Nhấn Xóa 1 dòng trên datagrid & database
Insert Button Không Nhấn Mở trang Insert Update Button không Nhấn Mở trang Update
• Sửa:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Menu Combobo x
Không Select Chọn 1 menu
Refresh Button Không Nhấn Load lại Combobox Name Textbox Không rỗng,
max=50 ký tự
Save Button Không Nhấn Lưu vào database
Cancel Button Không Nhấn Trở về trang xem thực đơn con
2.2..8. Quản lý món ăn: • Xem danh sách:
Tên Kiểu Bẫy lỗi Sự
kiện
Hành động
Menu Combobox Không Select Chọn 1 menu Refres
h
Button Không N hấn Load lại Combobox Name Textbox Không rỗng,
max=50 ký tự
Priorit y
Numeric stepper Từ 1 đến 10 N hấn Tăng hoặc giảm 1 Save Button Không N hấn Lưu vào database
• Thêm:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
DataGrid DataGrid Không Select Chọn 1 dòng
Delete Button Không Nhấn Xóa 1 dòng trên datagrid & database
Insert Button Không Nhấn Mở trang Insert Update Button không Nhấn Mở trang Update
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Name Textbox Không rỗng, max=50 ký tự
Recipe Textbox Không rỗng, max=1000 ký tự
Usage Textbox Không rỗng, max=2000 ký tự
Submenu Combobox Không Select Chọn 1 thực đơn con Price Textbox Không rỗng, dạng
số
Origin Textbox Không rỗng, max=50 ký tự
… Button Không Nhấn Mở hộp thoại chọn ảnh Save Button Không Nhấn Lưu vào database
Cancel Button Không Nhấn Trở về trang xem món
ăn Homepage Checkbox không Check
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Name Textbox Không rỗng, max=50 ký tự
Recipe Textbox Không rỗng, max=1000 ký tự
Usage Textbox Không rỗng, max=2000 ký tự
Submenu Combobox Không Select Chọn 1 thực đơn con Price Textbox Không rỗng, dạng
số
Origin Textbox Không rỗng, max=50 ký tự
… Button Không Nhấn Mở hộp thoại chọn ảnh
Save Button Không Nhấn Lưu thay đổivào
database
Cancel Button Không Nhấn Trở về trang xem món
ăn Homepage Checkbox không Check
2.2..9. Quản lý hình ảnh: • Chọn:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Datagrid Datagrid Không Select Chọn 1 dòng
Select Button Không Nhấn Chuyển dữ liệu tới nơi yêu cầu
• Sửa:
• Thêm:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Path Textbox Không rỗng, max=50 ký tự
Save Button Không Nhấn Lưu thay đổi vào
database
Cancel Button Không Nhấn Trở về trang xem ảnh Test Button Không Nhấn Kiểm tra đường đẫn
2.2..10. Xem phản hồi:
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Name Textbox Không rỗng, max=50 ký tự
Path Textbox Không rỗng, max=50 ký tự
Save Button Không Nhấn Lưu vào database Cancel Button Không Nhấn Trở về trang xem ảnh
Test Button Không Nhấn Kiểm tra đường đẫn
Tên Kiểu Bẫy lỗi Sự kiện Hành động
Month Combobox Không Select Chọn 1 tháng Year Textbox Không rỗng, dạng
số nguyên từ 1900
đến 2500
KẾT LUẬN
Sau ba tháng nghiên cứu và thực hiện xây dựng trang web Mimes Restaurant, tổng kết lại đã thu được những kết quả sau:
• Hoàn thành đủ toàn bộ những yêu cầu bài toán đặt ra lúc ban đầu
• Trang web thể hiện được hình ảnh nổi bật của nhà hàng, cách trình bày món ăn, thực đơn, sự kiện,… sinh động, đẹp mắt, gây được ấn tượng ban đầu.
• Hỗ trợ khách hàng đặt món ăn một cách dễ dàng, thao tác đơn giản.
• Phần quản trị trang web trình bày hợp lý, tạo thuận lợi cho việc cập nhật thông tin • Thông tin tài khoản được mã hóa và bảo mật tốt.
• Trang web được xây dựng theo kiến trúc 3 lớp, tạo sự dễ dàng cho việc bảo trì và nâng cấp sau này.
Tuy nhiên, do những lý do khách quan và thời gian có hạn nên trang web cũng có những hạn chế sau:
•Chưa thực hiện được cơ chế tựđộng reset mật khNu và gửi email cho chủ tài khoản khi người dùng lỡ quên mật khNu.
•Vài đoạn mã lệnh (code) chưa được tối ưu hóa tuyệt đối, chỉ ưu tiên chạy đúng trước. Bởi vì tài liệu về Flex 3 còn khan hiếm, hơn nữa công nghệ Flex chỉ mới bắt
đầu phổ biến ở Việt Nam nên việc học hỏi kinh nghiệm còn hạn chế. Những phần em viết bằng Flex hoàn toàn là những kiến thức tự tìm hiểu trên internet, e-book và những tài liệu do giáo viên hướng dẫn cung cấp.
Nếu được tài trợ và có nhiều thời gian hơn, em sẽ phát triển thêm những phần sau: •Xây dựng việc đa ngôn ngữ cho phần tương tác với người dùng
•Xuất đơn đặt hàng đã được chấp nhận một cách tựđộng cho bộ phận nhà bếp và tiếp tân chuNn bị trước cho khách hàng
TÀI LIỆU THAM KHẢO [1] http://livedocs.adobe.com/flex/3/html/help.html?content=charts_types_09.html [2]http://demo.quietlyscheming.com/ChartSampler/app.html [3]http://regexlib.com/DisplayPatterns.aspx?cattabindex=6&categoryId=7 [4] http://livedocs.adobe.com/flex/3/langref/flash/filesystem/File.html#browseForSave [5]http://flexcomps.wordpress.com/ [6]http://www.adobe.com/devnet/air/flex/getting_started.html [7]http://livedocs.adobe.com/flex/3/html/help.html?content=FBHelloWord_1.html [8]http://www.7templates.com/ [9]http://bugs.adobe.com/jira/browse/SDK-14811 [10]http://examples.adobe.com/flex2/inproduct/sdk/explorer/explorer.html [11]http://zensoft.vn/Uploads/sondt/071025/3tier.JPG [12]getting_started_with_Flex3.pdf [13]Orelly-flex-cookbook.pdf [14]McGraw.Hill.Flex.3.A.Beginners.Guide.Mar.2008.pdf [15]FoundationFlexForDesignersJan2008.pdf [16]devguide_flex3.pdf [17] createcomps_flex3.pdf [18] compilerAPI_flex3.pdf
[19]Professional ADO.NET 2 Programming With SQL Server 2005, Oracle, & MySQL (2006).pdf
PHỤ LỤC
Hình II-1.3-1: Cơ chế request/response trong Flex ... 12
Hình II-2-1: Hộp thoại N ew Flex Project ... 13
Hình II-2-2: Configuration diaglog ... 13
Hình II-2-3: Source Path tab ... 14
Hình II-2-4: Library Path ... 14
Hình II-2-5: Cửa sổ Main Flex Builder ... 15
Hình II-2-6: Kết quả thực thi ứng dụng web HelloWord ... 16
Hình II-5: Mô hình 3 lớp (Three_tier) [17] ... 20
Hình III-1-1: Mô hình chức năng dành cho người dùng ... 31
Mô hình chức năng dành cho Quản trị và Duyệt đơn hàng: ... 32
Hình III-1-2: Mô hình chức năng dành cho quản trị & người duyệt đơn hàng ... 32
Hình III-1-3: Mô hình thực thể kết hợp ... 33
Hình III-1-4: Mô hình quan hệ giữa các bảng ... 34
Hình III-2-1-1: Sơđồ xử lý người dùng đăng nhập ... 40
Hình III-2-1-2: Sơđồ xử lý người dùng chỉnh sửa thông tin tài khoản ... 41
Hình III-2-1-3: Sơđồ xử lý người dùng đổi mật khNu ... 42
Hình III-2-1-4: Sơđồ xử lý người dùng lấy lại mật khNu ... 42
Hình III-2-1-5: Sơđồ xử lý người dùng xem giới thiệu ... 43
Hình III-2-1-6: Sơđồ xử lý người dùng xem trang chủ ... 43
Hình III-2-1-7: Sơđồ xử lý người dùng xem thực đơn ... 44
Hình III-2-1-8: Sơđồ xử lý người dùng đặt món ăn ... 45
Hình III-2-1-9: Sơđồ xử lý người dùng xem sự kiện ... 45
Hình III-2-1-10: Sơđồ xử lý người dùng gửi phản hồi ... 46
Hình III-2-2-1: Sơđồ xử lý Admin/Reviewer đăng nhập ... 47
Hình III-2-2-2-1: Sơđồ xử lý admin xem giới thiệu ... 48
Hình III-2-2-2-2: Sơđồ xử lý admin thêm giới thiệu ... 48
Hình III-2-2-2-4: Sơđồ xử lý admin sửa giới thiệu ... 49
Hình III-2-2-3-1: Sơđồ xử lý admin khóa tài khoản ... 50
Hình III-2-2-3-2: Sơđồ xử lý admin cấp quyền ... 50
Hình III-2-2-3-3: Sơđồ xử lý Admin/Reviewer đổi mật khNu ... 51
Hình III-2-2-4-1: Sơđồ xử lý admin xem sự kiện ... 51
Hình III-2-2-4-2: Sơđồ xử lý admin thêm sự kiện ... 52
Hình III-2-2-4-3: Sơđồ xử lý admin xóa sự kiện ... 52
Hình III-2-2-4-4: Sơđồ xử lý admin sửa sự kiện ... 53
Hình III-2-2-5-1: Sơđồ xử lý admin xem thực đơn ... 54
Hình III-2-2-5-2: Sơđồ xử lý admin thêm thực đơn ... 54
Hình III-2-2-5-3: Sơđồ xử lý admin xóa thực đơn ... 55
Hình III-2-2-5-4: Sơđồ xử lý admin sửa thực đơn ... 55
Hình III-2-2-6-1: Sơđồ xử lý admin xem thực đơn con ... 56
Hình III-2-2-6-2: Sơđồ xử lý admin thêm thực đơn con ... 56
Hình III-2-2-6-3: Sơđồ xử lý admin xóa thực đơn con ... 57
Hình III-2-2-6-4: Sơđồ xử lý admin sửa thực đơn con... 57
Hình III-2-2-7-1: Sơđồ xử lý admin xem món ăn ... 58
Hình III-2-2-7-2: Sơđồ xử lý admin thêm món ăn ... 58
Hình III-2-2-7-3: Sơđồ xử lý admin xóa món ăn ... 59
Hình III-2-2-7-4: Sơđồ xử lý admin sửa món ăn ... 59
Hình III-2-2-8: Sơđồ xử lý admin xem thông tin phản hồi ... 60
Hình III-2-2-9: Sơđồ xử lý reviewer xử lý đơn hàng ... 61
Hình III-2-2-10-1: Sơđồ xử lý admin xem hình ảnh ... 61
Hình III-2-2-10-2: Sơđồ xử lý admin thêm hình ảnh ... 62
Hình III-2-2-10-3: Sơđồ xử lý admin xóa hình ảnh ... 62