



















Preview text:
lOMoAR cPSD| 60820047
TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG
KỲ THI KẾT THÚC HỌC PHẦN HỌC KỲ
NĂM HỌC 2023 – 2024
ĐỀ TÀI BÀI TẬP LỚN: “XÂY DỰNG HỆ
THỐNG QUẢN LÝ BÁN GIÀY ONLINE” Họ và tên sinh viên : Nguyễn Bảo Khánh Nguyễn Đức Anh Nguyễn Tuấn Phong Lê Thanh Liêm Vũ Đức Duy Cao Lê Nhật Minh Lớp: DH11C13 Tên học phần:
Phát triển ứng dụng trên nền Web Giảng viên hướng dẫn: Vũ Văn Huân Hà Nội - 2023 lOMoAR cPSD| 60820047 MỤC LỤC
DANH MỤC HÌNH...................................................................................................4
DANH MỤC BẢNG..................................................................................................6
LỜI CẢM ƠN............................................................................................................7
CHƯƠNG 1: TỔNG QUAN BÁO CÁO...................................................................8
1.1 Giới thiệu dự án................................................................................................8
1.2. Mục đích và mục tiêu báo cáo.........................................................................8
1.2.1. Mục đích báo cáo.....................................................................................8
1.2.2. Mục tiêu báo cáo......................................................................................8
1.3. Lĩnh vực..........................................................................................................8
1.4. Yếu tố công nghệ.............................................................................................8
1.5. Xác định các yêu cầu chức năng của hệ thống................................................8
1.6. Cơ sở lý thuyết................................................................................................9
1.6.1. Ngôn ngữ lập trình PHP....................................................................9
1.6.2. HTML, CSS và JavaScript.....................................................................16
1.6.3 Môi trường phát triển ứng dụng......................................................17
1.6.4 Thanh toán điện tử VNPAY...................................................................18
1.7 Mô hình xây dựng dự án................................................................................19
1.7.1 Mô hình xoắn ốc là gì ?...........................................................................19
1.7.2 Khi nào nên sử dụng mô hình xoắn ốc....................................................21
1.7.3 Ưu điểm...................................................................................................21
1.7.4 Nhược điểm.............................................................................................21
1.7.5 Kết luận...................................................................................................22
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ...................................................................22
2.1. Xác định usecase của các tác nhân................................................................22
2.1.1. Đăng kí...................................................................................................22
2.1.2. Đăng nhập..............................................................................................22
2.1.3. Đơn hàng................................................................................................22
2.1.4. Quản lý giỏ hàng....................................................................................22
2.1.5. Tìm kiếm giày theo tên, giá...................................................................23 lOMoAR cPSD| 60820047
2.1.6. Quản lý danh mục..................................................................................23
2.1.7. Quản lý sản phẩm giày...........................................................................23
2.1.8. Quản lý tài khoản...................................................................................23
2.2. Xác định các tác nhân...................................................................................23
2.2.1 Khách hàng, người truy cập website.......................................................23
2.2.2 Người Quản trị........................................................................................23
2.3. Xác định các trường hợp sử dụng (use-case)................................................23
2.3.1 Khách hàng..............................................................................................23
2.3.2 Người quản trị.........................................................................................23
2.4. Biểu đồ Usecasse tổng quát..........................................................................24
2.4.1 Đăng kí...................................................................................................25
2.4.2 Đăng nhập..............................................................................................25
2.4.3 Tra cứu sản phẩm giày...........................................................................26
2.4.4 Đặt hàng (thanh toán)..............................................................................27
2.4.5 Quản lý danh mục...................................................................................27
2.4.6 Quản lý sản phẩm....................................................................................28
2.4.7 Quản lý đơn đặt hàng..............................................................................29
2.4.8 Quản lý thông tin tài khoản quản trị........................................................30
2.5. Biểu đồ hoạt động.........................................................................................31
2.5.1. Biểu đồ hoạt động chức năng đăng kí....................................................31
2.5.2. Biểu đồ hoạt động chức năng đăng nhập...............................................33
2.5.3. Biểu đồ hoạt động chức năng tìm kiếm sản phẩm.................................35
2.5.4 Biểu đồ hoạt động chức năng đặt hàng...................................................37
2.5.5. Biểu đồ hoạt động chức năng quản lý danh mục...................................39
2.5.6 Biểu đồ hoạt động chức năng đặt hàng (thanh toán)...............................41
2.5.8. Biểu đồ hoạt động chức năng quản lý tài khoản quản trị.......................43
2.6. Giao diện người dùng....................................................................................45
2.6.1. Giao diện đăng nhập...............................................................................45
2.6.2. Giao diện trang chủ................................................................................45
2.6.3. Giao diện sản phẩm................................................................................46 lOMoAR cPSD| 60820047
2.6.4. Giao diện sản phẩm chi tiết....................................................................46
2.6.5. Giao diện giỏ hàng và đặt hàng..............................................................47
2.7. Giao diện quản lý..........................................................................................47
2.7.1. Giao diện quản lí đơn hàng....................................................................48
2.7.2. Giao diện quản lí danh mục...................................................................48
2.7.3. Giao diện quản lí sản phẩm....................................................................49
2.7.2. Giao diện quản lí thành viên..................................................................49
CHƯƠNG 3: ĐÁNH GIÁ........................................................................................50
3.1. Những điểm đạt được....................................................................................50
3.1.1. Về website:.............................................................................................50
3.1.2. Về kinh nghiệm làm việc:......................................................................50
3.2. Hạn chế..........................................................................................................50
KẾT LUẬN..............................................................................................................50
TÀI LIỆU THAM KHẢO........................................................................................51 DANH MỤC HÌNH
Hình 2.1 Biểu đồ Usecase tổng quát
Hình 2.2. Sơ đồ phân rã chức năng đăng ký
Hình 2.3. Biểu đồ Usecase chức năng đăng nhập
Hình 2.4 Biểu đồ Usecase phân rã chức năng tra cứu giày
Hình 2.5 Biểu đồ Usecase phân rã chức năng đặt mua
Hình 2.6 Biểu đồ Usecase phân rã chức năng quản lý danh mục
Hình 2.7 Biểu đồ Usecase phân rã chức năng quản lý sản phẩm
Hình 2.8 Biểu đồ Usecase phân rã chức năng quản lý đơn hàng
Hình 2.9 Biểu đồ Usecase phân rã chức năng quản lý tài khoản quản trị viên
Hình 2.10 Biểu đồ hoạt dộng chức năng đăng kí
Hình 2.11 Biểu đồ tuần tự chức năng đăng kí lOMoAR cPSD| 60820047
Hình 2.12 Biểu đồ hoạt dộng chức năng đăng nhập
Hình 2.13 Biểu đồ tuần tự chức năng đăng nhập
Hình 2.14 Biểu đồ hoạt dộng chức năng tìm kiếm sản phẩm
Hình 2.15 Biểu đồ tuần tự chức năng tìm kiếm sản phẩm
Hình 2.16 Biểu đồ hoạt động chức năng quản lý đơn đặt hàng
Hình 2.17 Biểu đồ tuần tự chức năng quản lý đơn đặt hàng
Hình 2.18 Biểu đồ hoạt động chức năng quản lý danh mục
Hình 2.19 Biểu đồ tuần tự chức năng quản lý danh mục
Hình 2.20 Biểu đồ hoạt động chức năng đặt hàng
Hình 2.21 Biểu đồ tuần tự chức năng đặt hàng
Hình 2.22 Biểu đồ hoạt động chức năng quản lý tài khoản quản trị
Hình 2.23 Biểu đồ tuần tự chức năng quản lý tài khoản quản trị
Hình 2.24 Giao diện đăng nhập và đăng ký
Hình 2.25 Giao diện trang chủ
Hình 2.26 Giao diện trang sản phẩm
Hình 2.27 Giao diện trang sản phẩm chi tiết
Hình 2.28 Giao diện trang đặt hàng
Hình 2.29 Giao diện quản lí đơn hàng
Hình 2.30 Giao diện quản lí danh mục
Hình 2.31 Giao diện quản lí sản phẩm
Hình 2.32 Giao diện quản lí thành viên DANH MỤC BẢNG
Bảng 1: Mô tả usecase đăng kí
Bảng 2: Mô tả usecase đăng nhập
Bảng 3 : Mô tả usecase tra cứu đầu sách
Bảng 4: Mô tả usecase quản lý đặt mua
Bảng 5: Mô tả usecase quản lý danh mục
Bảng 6 : Mô tả usecase quản lý sản phẩm giày
Bảng 7 : Mô tả usecase quản lý đơn hàng lOMoAR cPSD| 60820047
Bảng 8 Mô tả usecase quản lý tài khoản quản trị viên lOMoAR cPSD| 60820047 LỜI CẢM ƠN
Để hoàn thành được báo cáo kết thúc môn học này, trước hết em xin gửi lời cảm ơn
chân thành nhất đến Cán bộ Giảng viên Khoa Công nghệ Thông tin, Đồng thời em xin gửi
lời cảm ơn đặc biệt về sự chỉ dạy, hướng dẫn tận tình của Giảng viên Dương Thị Thuý đã
luôn tận tình hướng dẫn, giúp đỡ trong suốt thời gian thực hiện báo cáo kết thúc môn.
Nhóm em cũng xin gửi lời cảm ơn tới Khoa Công nghệ Thông tin – Trường Đại Tài
Nguyên và Môi Trường đã luôn quan tâm và tạo điều kiện giúp em hoàn thành báo cáo kết
thúc môn này. Ngoài ra, nhóm em xin cảm ơn những người bạn đã giúp đỡ và trao đổi thêm
nhiều thông tin về đề tài trong quá trình thực hiện đề tài này.
Do kiến thức còn hạn chế, bài báo cáo của em không tránh khỏi những sai sót.Rất
mong nhận được những lời góp ý từ quý Thầy cô để báo cáo kết thúc môn học củaem được
hoàn thiện và giúp em có thêm những kinh nghiệm quý báu.
Cuối cùng, em xin kính chúc các thầy cô giảng viên trường Đại học Tài Nguyên và
Môi Trường nói chung, các thầy cô khoa công nghệ thông tin nói riêng dồi dào sức khỏe và
thành công trong sự nghiệp cao quý. lOMoAR cPSD| 60820047
CHƯƠNG 1: TỔNG QUAN BÁO CÁO
1.1 Giới thiệu dự án
Ứng dụng công nghệ thông tin trong việc quản lí bán hàng dường như không còn xa
lạ với các doanh nghiệp, công ty hiện nay. Lợi ích mà các chương trình phần mềm quản lí
bán hàng đem lại khiến ta không thể không thừa nhận tính hiệu quả của nó. Hiện nay, việc
bán hàng online đang rất phổ biến. Các doanh nghiệp và công ty lớn, nhỏ đều rót vốn đầu
tư vào thị trường online.
Do đó dự án xây dựng và phát triển một chương trình hoàn chỉnh ứng dụng những
kỹ thuật và công nghệ mới nhất để giúp cho việc quảng bá sản phẩm củadoanh nghiệp được
mọi người biết đến rộng rãi trên toàn quốc. Để quản lý việc bán hàng online một cách hiệu
quả và nâng cao. Chính vì thế chúng em đã chọn đề tài “Xây dựng hệ thống quản lý bán giày online”.
1.2. Mục đích và mục tiêu báo cáo
1.2.1. Mục đích báo cáo
Dùng công nghệ PHP, MYSQL để xây dựng lên hệ thống website bán giày online
thuận tiện cho việc mua bán online và tiết kiệm thời gian hơn.
1.2.2. Mục tiêu báo cáo
⁻ Đáp ứng được tiêu chuẩn của một website
⁻ Cấu trúc khoa học, chặt chẽ, rõ ràng, dễ dàng điều hướng, khai thác, chỉnh sửa.
⁻ Thân thiện với người sử dụng.
⁻ Tương thích với các trình duyệt web khác nhau, nội dung được tối ưu, tốc độtải/nạp trang web nhanh.
⁻ Hoạt động ổn định và bảo mật.
⁻ Đáp ứng các chức năng khách hàng yêu cầu (quảng bá sản phẩm và bánhàng trực tiếp qua mạng). 1.3. Lĩnh vực
Chuyên ngành: Công nghệ phần mềm.
Chuyên môn: lập trình web. Sử dụng ngôn ngữ HTML, CSS, PHP, MYSQL,
Javascript, để xây dựng trang web.
Lĩnh vực liên quan: thương mại điện tử.
1.4. Yếu tố công nghệ
⁻ Hệ điều hành window
⁻ Phần mềm Visual studio code
⁻ Website sẽ chạy được trên các trình duyệt web lOMoAR cPSD| 60820047
1.5. Xác định các yêu cầu chức năng của hệ thống
⁻ Chức năng đăng nhập,đăng xuất ⁻
Chức năng tìm kiếm giày
⁻ Chức năng quản lý danh mục
⁻ Chức năng quản lý đơn đặt hàng
⁻ Chức năng tài khoản quản trị viên
1.6. Cơ sở lý thuyết
1.6.1. Ngôn ngữ lập trình PHP
1.6.1.1. Giới thiệu
PHP là viết tắt của từ “PHP: Hypertext Preprocessor”, đây là một ngôn ngữ lập trình
kịch bản hay một loạ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ở, mục tiêu chính của ngôn ngữ là cho phép các nhà phát triển viết ra các
trang web động một cách nhanh chóng. Nó rất phù hợp để phát triển web và có thể dễ dàng
nhúng vào các 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ẩm tương đối ngắn hơn so
với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
1.6.1.2. Lịch sử hình thành và phát triển
PHP được phát triển từ một sản phẩm có tên là PHP/FI do Rasmus Lerdorf tạo ra
năm 1994, ban đầu được xem như là một tập con đơn giản củ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. Vào tháng 11 năm 1997,
PHP/FI 2.0 được chính thức công bố, sau một thời gian 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 – phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản
PHP mà chúng ta được biết ngày nay.
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 3.0 đã được Andi Gutmans và Zeev Suraski tạo ra 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 họ nhận thấy PHP/FI 2.0 hết sứ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ọ đang xúc tiến trong một dự án của trường đại học. 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ộng mạ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ính nă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ất các mô đun mở rộng mới.
Tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời, phiên bản PHP 4.0 chính
thức được công bố. 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ộ đệm thô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 lOMoAR cPSD| 60820047
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ạng Internet.
Sau sự thành công của PHP 4.0, ngày 13 tháng 7 năm 2004 PHP 5.0 chính thức ra
mắt sau một thời gian khá dài tung ra các bản kiểm tra thử bao gồm Beta, RC. Mặc dù coi
đây là phiên bản sản xuất đầu tiê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 trong việ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ực hiệ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ản PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams và SPL.
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, Phiên bản PHP 6 được
kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, như là: hỗ trợ
namespace, 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... Phiên bản 6 này chỉ dùng ở việc nghiên cứu
và thử nghiệm. PHP 7 với việc sử dụng bộ nhân Zend Engine mới PHPNG cho tốc độ nhanh
gấp 2 lần. Ngoài ra ở phiên bản này còn thêm vào rất nhiều cú pháp, tính năng mới giúp cho
PHP trở nên mạnh mẽ hơn. Những tính năng mới quan trọng có thể kể đến như: khai báo
kiểu dữ liệu cho biến, xác định kiểu dữ liệu sẽ trả về cho 1 hàm, thêm các toán tử mới...
1.6.1.3. Ưu điểm của PHP
PHP là ngôn ngữ mã nguồn mỡ, có thể chạy được trên cả Apache và IIS do đó so với
ASP.NET thì nó phổ biến nhiều hơn, điều đó được minh chứng bằng số lượng các website
được thiết kế bằng ngôn ngữ PHP hiện nay. Cấu trúc PHP cực kỳ đơn giản, vậy nên bạn sẽ
không mất nhiều thời gian để có thể học được. Một khi đã làm chủ được HTML và C, bạn
hoàn toàn có thể làm chủ được ngôn ngữ lập trình này.
Thư viện của PHP vô cùng phong phú, hệ thống CMS miễn phí dùng tương đối nhiều,
cũng như được cộng đồng hỗ trợ một cách vô cùng mạnh mẽ. Vậy nên bạn có thể dễ dàng
tìm nguồn tài liệu mình cần cũng như có thể nhận được sự hỗ trợ một cách nhanh nhất.
Do chạy được trên máy chủ Apache và thường đi cặp cùng với hệ quản
trị cơ sở dữ liệu MySQL nên việc cài đặt môi trường phát triển vô cùng đơn giản, thông
qua một bộ cài đặt duy nhất như là: XAMPP trên windows và linux, MAMP trên MacOS... lOMoAR cPSD| 60820047
Hình 1.2 Top các ngôn ngữ phổ biến 01/2018 – chỉ số PYPL 1.6.1.4. PHP Framework
Framework là một bộ mã nguồn được xây dựng, phát triển và đóng gói – phân phối
bởi các chuyên gia lập trình hoặc bởi các công ty lập trình. Nó sẽ cung cấp một cấu trúc
phát triển chuẩn để các developer dựa vào đó xây dựng và phát triển các dự án. Đi kèm
theo nó là một kho thư viện gồm nhiều lớp/hàm xử lý được đặt trong các packages hoặc
namespace riêng. Các chuyên gia lập trình sử dụng nhiều kỹ thuật lập trình và giải
thuật/thuật toán để xây dựng các lớp xử lý một cách tối ưu nhất, giải quyết các bài toán
lập trình nhanh chóng và chính xác. Các lớp trong một framework sẽ làm việc tốt nhất với
cấu trúc chuẩn mà framework đó cung cấp.
Nhắc đến sự hỗ trợ mạnh mẽ của cộng đồng cho ngôn ngữ lập trình
PHP thì chắc chắn phải kể tới sự đa dạng của các PHP Framework: Laravel, Symfony,
Codeigniter, CakePHP... Các PHP Framework đều được xây dựng theo chuẩn mô hình MVC
(Model – View – Controller) và cung cấp rất nhiều lớp hỗ trợ xử lý về bảo mật, phân quyền, lOMoAR cPSD| 60820047
captcha, view helper, module manager, database, service… khi đó các lập trình viên sẽ xây
dựng, phát triển website một cách dễ dàng và nhanh chóng.
PHP framework làm cho sự phát triển của những ứng dụng web viết bằng ngôn ngữ
PHP trở nên trôi chảy hơn, bằng cách cung cấp 1 cấu trúc cơ bản để xây dựng những ứng
dụng đó. Hay nói cách khác, PHP framework giúp đỡ các bạn thúc đẩy nhanh chóng quá
trình phát triển ứng dụng, giúp bạn tiết kiệm được thời gian, tăng sự ổn định cho ứng
dụng, và giảm thiểu số lần phải viết lại mã cho lập trình viên. Ngoài ra Framework còn giúp
những người mới bắt đầu có thể xây dựng các ứng dụng ổn định hơn nhờ việc tương tác
chính xác giữa các Database, mã (PHP) và giao diện (HTML) một cách riêng biệt. Điều này
cho phép bạn dành nhiều thời gian để tạo ra các ứng dụng web, hơn là phí thời gian để
viết các đoạn mã lặp lại trong một project.
Ý tưởng chung đằng sau cách thức làm việc của một PHP framework được kể đến là
Model View Controller (MVC). MVC là 1 mô hình (kiến trúc) trong lập trình, cho phép tách
biệt các mã nghiệp vụ (business logic) và giao diện (UI) thành các phần riêng biệt, điều này
đồng nghĩa với việc ta có thể chỉnh sửa chúng 1 cách riêng lẻ. Trong cụm từ MVC thì:
Model (M) có thể hiểu là phần xử lý các thao tác về nghiệp vụ (business logic), View (V)
được hiểu là phần xử lý lớp giao diện (presentation layer), và Controller (C) làm nhiệm vụ
lọc các request đc gọi từ user, có chức năng như 1 route: điều chỉnh, phân luồng các yêu
cầu để gọi đúng Model & View thích hợp. Về cơ bản, MVC chia nhỏ quá trình xử lý của 1
ứng dụng, vì thế nên bạn có thể làm việc trên từng thành phần riêng lẻ, trong khi những
thành phần khác sẽ không bị ảnh hưởng tới. Thực chất, điều này giúp đỡ bạn lập trình
PHP nhanh hơn và ít phức tạp hơn.
Trong vài năm qua, PHP đã tiến triển thành 1 ngôn ngữ script được lựa chọn bời hầu
hết các nhà phát triển website, đã có 1 sự bùng nổ về các PHP framework, lOMoAR cPSD| 60820047
Hình 1.3 Top các PHP framework phổ biến
Dẫn đến các cuộc tranh luận lớn về đề tài: PHP framework nào là tốt nhất, bởi vì
thực tế không phải tất cả các framework đều được xây dựng trên khuôn khổ dành cho
nhiều người sử dụng. Dưới đây là 3 framework được đánh giá là tốt và phổ biến nhất hiện nay: Laravel
Laravel ra mắt vào cuối tháng 04-2011 nhưng đã gây được sự chú ý lớn đối với cộng
đồng PHP framework. Laravel được tạo ra bởi Taylor Otwell. Nó là 1 framework khá mới
mẻ nhưng bù lại nó có “hướng dẫn sử dụng” ( Document ) khá đầy đủ, rõ ràng và dễ hiểu
và nhiều ưu điểm hấp dẫn. Chính vì nó ra đời sau, khắc phục được những thiếu xót của
các framework đàn anh, nên nó đang nắm giữ vị trí số một về độ phổ biến hiện nay với
nhiều tính năng mạnh mẽ: -
Route trong Laravel thật sự khác biệt, mới mẻ và đầy mạnh mẻ. Mọi url đều
có thể quản lý trong file route. -
Master layout được tích hợp sẵn cùng Blade template giúp code của chúng ta
trên nên gọn gàng và tiện dụng. Các file layout có thể dẽ dàng extend của nhau giúp code
ngắn gọn, dễ quản lý. -
Migration quản lý database thật dễ dàng khi làm việc đội nhóm. -
Eloquent class đầy mạnh mẽ nổi bật khi xử lý cơ sở dữ liệu quan hệ 1–N và
N–N, tối ưu tất cả các câu truy vấn. lOMoAR cPSD| 60820047 -
Composer quản lý và tích hợp các thư viện khác thật hay và không lo lắng khi
thư viện đó bị thay đổi, laravel có đầy đủ các thư viện cơ bản đủ để thực hiện mọi yêu cầu của chúng ta. -
Document dễ đọc, dễ hiểu và có đầy đủ các ví dụ. Tuy ra đời muộn hơn các
framework khác nhưng laravel lại có hướng dẫn chi tiết và đầy đủ ví dụ ngay tại trang chủ,
các ví vụ để đọc đễ hiểu, cộng đồng phát triển rộng lớn và luôn luôn được update kịp thời. -
Eloquent ORM: đây là một ORM tuyệt vời với khả năng migration data và
làm việc tốt với MySQL, Postgres, SQL Server và SQLite, MongoDB. Các câu truy vấn
database dễ hiểu, nhanh chóng. -
Package-libery phong phú, đa dạng, đáp ứng được hầu hết các nhu cầu cơ bản của chúng ta. -
User authentication được tích hợp sẵn, lập trình viên chỉ cần gọi class là có
thể sử dụng theo ý muốn. Symfony
Ra mắt và năm 2005, là một framework mạnh mẽ, Symfony là sự kết hợp giữa tính
vững bền của PHP, sự tự do của Open Soure với đặc tính dễ bảo trì của một mã lập trình
được thiết kế theo mô hình MVC (Model-ViewController). Symfony là một framework
Open Source viết bằng ngôn ngữ lập trình PHP5. Symfony giúp phát triển ứng dụng web
thiết kế theo yêu cầu. Một cộng đồng rộng lớn các lập trình viên đảm bảo về khả năng phát
triển, tính linh động, tự do và tiết kiệm chi phí cho các dự án được phát triển với Symfony,
đây cũng là những đặc tính mà Sutunam luôn chú trọng đưa vào các giải pháp Open
Source của mình. Trên hết, cùng với Drupal, phpBB và ezPublish, Symfony2 hiện đang là
một trong những phiên bản hệ thống quản trị nội dung (CMS) mới nhất được viết bằng
PHP. Symfony có những ưu điểm như: -
Dễ cài đặt và cấu hình trên hầu hết các hệ điều hành và được bảo đảm làm
việc tốt trên các hệ điều hành chuẩn *nix(Linux và Unix) và Windows -
Độc lập với hệ cơ sở dữ liệu -
Dễ dùng trong hầu hết các trường hợp nhưng vẫn đủ mềm dẻo để thích nghi
với những trường hợp phức tạp. -
Hoạt động theo cấu hình định trước – lập trình viên chỉ cần cấu hình trong
những trường hợp riêng biệt không theo quy ước. -
Tuân theo những hoạt động và mẫu thiết kế tốt nhất -
Sẵn sàng cho môi trường xí nghiệp – thích nghi với những chính sách và kiến
trúc công nghệ thông tin và đủ ổn định cho những dự án dài hạn. -
Mã rất dễ đọc, với những chú thích kiểu phpDocumentor, dễ dàng bảo trì -
Dễ dàng mở rộng, cho phép tích hợp với những thư viện khác lOMoAR cPSD| 60820047 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: 3.1.4 (phát hành ngày 2017.03.20). Ý 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. CodeIgniter có những điểm nổi bật như: -
Đượ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 đánh giá là PHP framework có tốc độ nhanh
nhất hiện nay. 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átt 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.
Trên đây liệt kê một số tính năng, đặc điểm nổi bật của 3 php framework phổ biến hiện
nay, mỗi Framework có một tính năng và đặc điểm riêng, tùy theo từng đặc điểm của dự
án, khách hàng mà ta có thể chọn một framework phù hợp. Trong khuôn khổ đồ án tốt
nghiệp này, nhóm chúng em đã lựa chọn Laravel để phát triển đồ án.
1.6.2. HTML, CSS và JavaScript 1.6.2.1. HTML lOMoAR cPSD| 60820047
HTML là chữ viết tắt cho “HyperText Markup Language”, hay là "Ngôn ngữ Đánh
dấu Siêu văn bản" là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web với
các mẩu thông tin được trình bày trên World Wide Web. Cùng với CSS và JavaScript, HTML
tạo ra bộ ba nền tảng kỹ thuật cho World Wide Web. HTML được định nghĩa như là một
ứng dụng đơn giản của SGML và được sử dụng trong các tổ chức cần đến các yêu cầu xuất
bản phức tạp. HTML đã trở thành một chuẩn Internet do tổ chức World Wide Web Consortium (W3C) duy trì.
HTML được sáng tạo bởi Tim Berners-Lee, nhà vật lý học của trung tâm nghiên cứu
CERN ở Thụy Sĩ. Anh ta đã nghĩ ra được ý tưởng cho hệ thống hypertext trên nền Internet.
Anh xuất bản phiên bản đầu tiên của HTML trong năm 1991 bao gồm 18 tag HTML. Từ đó,
mỗi phiên bản mới của HTML đều có thêm tag mới và attributes mới. Nâng cấp mới nhất
gần đây là vào năm 2014, khi ra mắt chuẩn HTML5. 1.6.2.1. CSS
CSS là chữ viết tắt cho “Cascading Style Sheets”, được sử dụng để mô tả giao diện
và định dạng của một tài liệu viết bằng ngôn ngữ đánh dấu (markup). Nó cung cấp một tính
năng bổ sung cho HTML. Nó thường được sử dụng với HTML để thay đổi style của trang
web và giao diện người dùng. Nó cũng có thể được sử dụng với bất kỳ loại tài liệu XML nào
bao gồm cả XML đơn giản, SVG và XUL.
CSS được phát triển bởi W3C (World Wide Web Consortium) vào năm 1996, nhằm
mục đích: Hạn chế tối thiểu việc làm rối mã HTML của trang Web bằng các thẻ quy định
kiểu dáng khiến mã nguồn của trang Web được gọn gàng hơn, tách nội dung của trang Web
và định dạng hiển thị, dễ dàng cho việc cập nhật nội dung; Tạo ra các kiểu dáng có thể áp
dụng cho nhiều trang Web, giúp tránh phải lặp lại việc định dạng cho các trang Web giống nhau.
Giống như HTML, CSS không thực sự là một ngôn ngữ lập trình mà là một ngôn
ngữ định kiểu – style. Điều này có nghĩa là nó cho phép bạn áp dụng kiểu có chọn lọc cho
các phần tử trong tài liệu HTML. 1.6.2.1. JavaScript
JavaScript là một ngôn ngữ lập trình kịch bản đa nền tảng (cross-platform), hướng đối
tượng. Nó chủ yếu được sử dụng để tăng cường cung cấp trải nghiệm thân thiện hơn với
người dùng website như là bao gồm các trang web cập nhật tự động, cải tiến giao diện
người dùng như menu và hộp thoại, hình động, đồ họa 2D và 3D, bản đồ tương tác, trình
phát video... JavaScript là một ngôn ngữ nhỏ và nhẹ, chạy trong môi trường máy chủ lưu
trữ (trình duyệt web). Nó có thể được kết nối với các đối tượng của môi trường để cung cấp
kiểm soát chương trình đối với chúng.
JavaScript được phát triển bởi Brendan Eich tại Hãng truyền thông Netscape với cái
tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript. lOMoAR cPSD| 60820047
Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java. Hiện nay
phiên bản mới nhất của JavaScript là ECMAScript 7 với nhiều cải tiến vượt bậc so với phiên bản tiền nhiệm.
JavaScript là ngôn ngữ kịch bản phía máy khách (client-side) duy nhất. Do đó, nó được
sử dụng trên hầu hết các trang web mà bạn nhìn thấy trên internet. Tuy nhiên cú pháp của
nó vô cùng lộn xộn và khó làm chủ, do đó Jquery – một thư viện của JavaScript ra đời nhằm
giúp lập trình viên xây dựng những chức năng có sử dụng Javascript trở nên dễ dàng hơn
như: đơn giản hóa việc duyệt tài liệu HTML, xử lý sự kiện, hoạt ảnh và tương tác Ajax để
phát triển web nhanh chóng... jQuery là một bộ công cụ JavaScript gọn nhẹ nhưng đầy
mạnh mẽ, được chứng minh qua hơn 90% các website trên thế giới sử dụng (trừ các website
chạy bằng JavaScript Framework).
1.6.3 Môi trường phát triển ứng dụng
1.6.3.1. Apache WebServer
Apache là một phần mềm mã nguồn mở miễn phí được cài đặt trên các máy chủ web
server (phần cứng) để xử lý các yêu cầu gửi tới máy chủ dưới giao thức HTTP. Tên chính thức
của Apache là Apache HTTP Server, được điều hành và phát triển bởi Apache Software
Foundation. Apache là một trong số những web server lâu đời và đáng tin cậy nhất, phiên
bản đầu tiên đã được ra mắt từ hơn 20 năm trước, tận những năm 1995.
Apache WebServer phân tích các yêu cầu từ trình duyệt, sau đó xử lý yêu cầu với các
file ngôn ngữ lập trình như là PHP, Python, Java,... thành file HTML và trả về cho người
dùng web trên trình duyệt để hiển thị. 1.6.3.1. 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, đặc biệt là các ứng
dụng website và nó thường đi kết hợp với ngôn ngữ lập trình PHP để xây dựng các ứng dụng
website. MySQL được các hệ thống web ưa chuộng là vì tốc độ xử lý cao, dễ sử dụng, ổn
định, và tương thích với các hệ điều hành thông dụng hiện nay như Linux, Window, Mac OS X, Unix, FreeBSD… 1.6.3.1. XAMPP
Apache và MySQL là hai yếu tố cần thiết cấu thành nên môi trường phát triển ứng
dụng web bằng ngôn ngữ PHP. Do đó XAMPP ra đời nhằm mục đích kết hợp tất cả các yếu
tố cấu thành WebServer trong một chương trình.
XAMPP là chương trình tạo máy chủ Web (Web Server) được tích hợp sẵn Apache,
PHP, MySQL, FTP Server, Mail Server và các công cụ như phpMyAdmin. XAMPP có chương
trình quản lý khá tiện lợi, cho phép chủ động bật tắt hoặc khởi động lại các dịch vụ máy chủ lOMoAR cPSD| 60820047
bất kỳ lúc nào. Nhìn chung XAMPP được xem là một bộ công cụ hoàn chỉnh dành cho lập
trình viên PHP trong việc thiết lập và phát triển các website.
1.6.4 Thanh toán điện tử VNPAY
VNPAY-QR là giải pháp thanh toán cho phép khách hàng sử dụng tính năng VNPAY-
QR được tích hợp sẵn trên ứng dụng ví điện tử VNPAY để quét mã QR thanh toán các hóa
đơn dịch vụ. Với tính năng VNPAY-QR, khách hàng có thể thanh toán dễ dàng, tiện lợi, mà
không cần phải mang theo tiền mặt.
Giải pháp tích hợp dùng cho các website bán hàng online, sàn thương mại điện tử
cần tích hợp chức năng thanh toán trực tuyến, cho phép người mua thanh toán trên các kênh
Online như ATM, Internet Banking, Thẻ Quốc tế (visa, maste), QRCode, Chuyển khoản ngân
hàng... Các phương thức thanh toán hỗ trợ bao gồm:
- Thẻ quốc tế( VISA, Master)
- Thẻ ATM nội địa - Internet Banking
- QR-Code Mobile Banking
- Ví điện tử trong và ngoài nước
- Chuyển khoản ngân hàng
- Tiền mặt tại quầy - Thẻ trả trước
1.7 Mô hình xây dựng dự án
1.7.1 Mô hình xoắn ốc là gì ? lOMoAR cPSD| 60820047
Mô hình xoắn ốc (Spiral-Model) là mô hình có sự kết hợp giữa mô hình thác nước
(Waterfall-Model) và mô hình tiếp cận lặp (Iterative-Model) và nó có nhiều điểm giống
nhau với mô hình gia tăng (Incremental-Model).
Chú trọng vào phân tích rủi ro dự án. Mỗi giai đoạn trong mô hình được bắt đầu với
yêu cầu/mục tiêu thiết kế và kết thúc với việc khách hàng kiểm tra tiến độ của từng giai
đoạn. Mô hình xoắn ốc lần đầu tiên được Barry Boehm đề cập trong bài báo của ông vào năm 1986.
Các giai đoạn của mô hình xoắn ốc:
• Lập kế hoạch - Planning phase.
• Phân tích rủi ro - Risk analysis phase. lOMoAR cPSD| 60820047
• Thực thi kỹ thuật - Engineering phase.
• Đánh giá - Evaluation phase.
Lập kế hoạch - Planning phase:
Thu thập, phân tích yêu cầu từ của dự án từ phía khách hàng. Bao gồm các công việc:
• Ước lượng chi phí (estimating cost)
• Lên lịch trình thực hiện dự án (shedule-master)
• Xác định số lượng nhân lực
• Môi trường làm việc (identifying necessary resources and work environment)
• Tìm hiểu yêu cầu hệ thống (requirements) từ đó đưa ra các tài liệu đặc tả
(Bussiness Requirement Specifications và System Requirement
specifications) để phục vụ cho việc trao đổi giữa khách hàng và phân tích hệ thống sau này.
Phân tích rủi ro – Risk analysis phase :
Một quá trình phân tích sẽ được thực hiện để xác định rủi ro và đưa ra các
giải pháp thay thế. Một prototype sẽ được tạo ra ở cuối giai đoạn phân tích rủi ro.
Nếu có bất kỳ rủi ro nào được tìm thấy trong quá trình này thì các giải pháp thay thế
sẽ được đề xuất và thực hiện.
Thực thi kỹ thuật – Engineering phase :
Đây là giai đoạn mà dự án được các dev tiến hành code, các tester tiến hành
test và deploying software trên các trang web của khách hàng.
Đánh giá – Evaluation phase :
Khách hàng sẽ tham gia vào giai đoạn này để đánh giá công việc, sản phẩm
và đảm bảo rằng sản phẩm đáp ứng tất cả các yêu cầu đã đặt ra trước đó. Nếu có bất
kỳ yêu cầu thay đổi nào từ khách hàng, các giai đoạn sẽ được lặp lại. Đây là giai
đoạn quan trọng vì cần có sự phản hồi của khách hàng về sản phẩm trước khi sản phẩm được release.
1.7.2 Khi nào nên sử dụng mô hình xoắn ốc
• Khi dự án có quy mô lớn.