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
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG
Lê Thanh Liêm
Vũ Đức DuyCao Lê Nhật Minh
Tên học phần: Phát triển ứng dụng trên nền WebGiảng viên hướng dẫn: Vũ Văn Huân
Hà Nội - 2023
Trang 2MỤ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
Trang 32.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
Trang 42.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í
Trang 5Hì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ẩmHình 2.15 Biểu đồ tuần tự chức năng tìm kiếm sản phẩmHình 2.16 Biểu đồ hoạt động chức năng quản lý đơn đặt hàngHình 2.17 Biểu đồ tuần tự chức năng quản lý đơn đặt hàngHình 2.18 Biểu đồ hoạt động chức năng quản lý danh mụcHình 2.19 Biểu đồ tuần tự chức năng quản lý danh mụcHì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
Trang 6DANH MỤC BẢNGBả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
Bảng 8 Mô tả usecase quản lý tài khoản quản trị viên
Trang 7LỜ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 xingử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 ĐạiTà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áocá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ấtmong 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ý
Trang 8CHƯƠ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ềmquả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ệnnay, 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ótvố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ộtcá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ốngquả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 onlinethuậ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
⁻ Phần mềm Visual studio code
⁻ Website sẽ chạy được trên các trình duyệt web
Trang 91.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
ứ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 trangHTML 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 đốingắ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ổ ến nh t thbi ấ ế ớ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 RasmusLerdorf tạo ra năm 1994, ban đầu được xem như là mộ ập con đơn giảt t 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 ôngtrên m ng ạ Vào tháng 11 năm 1997, PHP/FI 2.0 được chính thức công bố, saumột th i gian khá dài chờ ỉ được công bố dưới d ng các bạ ản beta Nhưng khônglâ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 9tháng được cộng đồng kiểm nghiệm PHP 3.0 đã được Andi Gutmans và ZeevSuraski 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úctiế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ở ộng m nh mr ạ ẽ ủa nó Ngoài khả năng cungccấ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ở ộng c a PHP 3.0 r ủ đã 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.0chí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ả ệ ấ ề
Trang 10đem đến các tính năng c ủ h 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ườ ử dụi s ng nh p vào b o mậ ả ật hơn và cung cấp m t vài các c uộ ấtrúc ngôn ngữ mới V i PHP 4, s nhà phát tri n dùng PHP ớ ố ể đã lên đến hàngtrăm nghìn và hàng ệu site đã công bố cài đặtri 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ẫncò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ữngtí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ở ữ ệu, các API cũ sẽ ị đưa ra thành thư việd li b nPECL Phiên b n 6 này ch dùng ả ỉ ở việc nghiên c u và thứ ử nghiệm PHP 7vớ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ớigiú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ữ ệu sẽ ả ề li tr v cho 1hà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ế ế ằng ngôn ng PHP hi n nay C u trúcb ữ ệ ấ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ùngtươ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ả
Trang 11trị cơ sở ữ ệu MySQL nên vid li ệ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
Hình 1.2 Top các ngôn ngữ phổ biến 01/2018 – chỉ số PYPL
c p.ấ
Trang 12Nhắ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ớ ự đa dại s ng c a các PHP Framework: Laravel,ủSymfony, Codeigniter, CakePHP Các PHP Framework đều được xây dựngtheo chu n mô hình MVC (Model View Controller) và cung c p r tẩ – – ấ ấnhiều l p hớ ỗ ợ xử tr lý v bảo m t, phân quyề ậ ền, captcha, view helper, modulemanager, 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 nphải vi t l i mã cho l p trình viên Ngoài ra Framework còn giúp nhế ạ ậ ữngngườ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áchriê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 để ết các đoạn mã lặp lại trong một project.vi
Ý 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ư 1route: điều chỉnh, phân luồng các yêu cầu để ọi đúng Model g & 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ể ệ ừ ầ ẻ ữngthà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ạnlập trình PHP nhanh hơn và ít phứ ạp hơn.c t
Trong vài năm qua, PHP đã tiến triển thành 1 ngôn ngữ script được lựachọn bời hầu hết các nhà phát triển website, đã có 1 sự bùng nổ về các PHPframework,
Trang 13Hì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ườ ử dụng Dưới đây là 3 framework được đánh i sgiá 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 đờisau, 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ọiurl đề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
Trang 14- 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ơncá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-View-ế ế Controller) 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áttriển, tính linh động, t do và tiết kiệm chi phí cho các dự ự án được phát triểnvới Symfony, đây cũng là những đặc tính mà Sutunam luôn chú trọng đưa vàocá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ị ội dung (CMS) m i nhn ớ ấ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 đảmlàm vi c t t trên các hệ ố ệ điều hành chu n *nix(Linux và Unix) vàẩWindows
Trang 15- 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
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ăngkhả 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ễ ảo trì.b
- 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 ZendFramework (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 độ nhanhnhấ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ử ữ ệu, tli ừ đó 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ậ ệ
Trang 16th 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ùytheo 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
Cùng v i CSS và JavaScript, HTML t o ra b ba n n t ng kớ ạ ộ ề ả ỹ thuật choWorld 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 WebConsortium (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 cho “Cascading Style Sheets”, đượt t 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 đơngiả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ànghơ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.ạ ố
Trang 17Giố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ụngkiể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ử ụng để tăng cườd ngcung 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áctrang web c p nh t tậ ậ ự động, c i ti n giao diả ế ện người dùng như menu và hộpthoại, hình động, đồ ọa 2D và 3D, bản đồ tương tác, trình phát video JavaScript làh
một ngôn ngữ nhỏ và nhẹ, chạy trong môi trường máy chủ lưu trữ (trình duyệtweb) 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ấ ểmsoá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ànhLiveScript, và cu i cùng thành JavaScript Giố ống Java, JavaScript có cú pháptươ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ủaJavaScript 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ênxây d ng nh ng chự ữ ức năng có sử dụng Javascript tr nên dở ễ dàng hơn như: đơngiả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 Ang 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êncá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
Trang 18Apache 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 fileHTML và ả ề cho ngườtr v 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à ứ ụ à ó thường đi kến 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ệ ốngthweb ư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áttriể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ẵnApache, 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ạ ị ụ ủ ất k lúc nào Nhìn chungb ỳ
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ăngVNPAY-QR được tích hợp sẵn trên ứng dụng ví điện tử VNPAY để quét mã QR thanhtoá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 weợ bsite 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 thanhtoá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ợ
Trang 19- Ví điện tử trong và ngoài nước
- Chuy n kho n ngân hàngể ả
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 đầuvớ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
Trang 20giai đ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 ôngvà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
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)
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ácgiả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 thaythế 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
Trang 21Đá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 khisả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
Khi việc đánh giá (phân tích) các chi phí và các rủi ro là quan trọng
Bất cứ lúc nào cũng có thể có yêu cầu thay đổi từ phía khách hàng
Khi dự án được yêu cầu release thường xuyên
Khi yêu cầu không rõ ràng và phức tạp
Đối với các dự án có độ rủi ro từ trung bình đến cao
Những người sử dụng không chắc chắn về các nhu cầu của họ
Các yêu cầu phần mềm phức tạp và lớn
Cần phát triển một dòng sản phẩm mới (New product line)
Khi có các thay đổi quan trọng (cần nghiên cứu và khảo sát cẩn thận)
1.7.3 Ưu điểm
Lượng phân tích rủi ro cao Do đó việc tránh rủi ro được tăng cường.Ước lượng chi phí dễ dàng như việc hoàn thành một prototype trong một fragment nhỏ
Ứng dụng tốt đối với các dự án lớn và quan trọng
Kiểm soát tài liệu và phê duyệt chặt chẽ
Chức năng bổ sung hoặc thay đổi có thể được thêm vào những giai đoạn sau.Phần mềm sẽ được sản xuất sớm trong vòng đời của phần mềm
Ứng dụng được phát triển nhanh và các tinh năng được thêm vào một cách có
hệ thống
Luôn có thời gian cho khách hàng để phản hồi về sản phẩm
Trang 221.7.4 Nhược điểm
Đối với rủi ro, ở giai đoạn phân tích cần một chuyên gia có chuyên môn cao để thực hiện việc phân tích
Không hữu ích với dự án có quy mô nhỏ
Thời gian và chi phí cho dự án có thể là vô hạn vì đặc tính xoắn ốc của mô hình
Tài liệu cho dự án có thể rất dài vì có các giai đoạn trung gian
Rủi ro có thể không đáp ứng được tiến độ hoặc ngân sách
Sự thành công của dự án phụ thuộc rất nhiều vào giai đoạn phân tích rủi ro.1.7.5 Kết luận
Mô hình xoắn ốc là một cách tiếp cận thực tế để phát triển các sản phẩm phầnmềm quy mô lớn bởi vì phần mềm phát triển khi quá trình tiến triển (thesoftware evolves as the process progresses) Ngoài ra, nhà phát triển và kháchhàng hiểu rõ hơn và phản ứng với các rủi ro ở mỗi cấp độ (level) phát triển
Mô hình sử dụng prototyping như một cơ chế giảm rủi ro và cho phép pháttriển các prototype ở bất kỳ giai đoạn nào của quá trình phát triển
Nó duy trì cách tiếp cận có tính hệ thống, giống như mô hình vòng đời (LifeCycle - Model) nhưng kết hợp nó thành một framework lặp lại và được phảnánh nhiều hơn từ thế giới thực
Nếu được sử dụng đúng cách, mô hình này sẽ giảm thiểu rủi ro trước khi chúngtrở thành vấn đề Vì các rủi ro kỹ thuật được xem xét ở tất cả các giai đoạn
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ
2.1 Xác định usecase của các tác nhân
2.1.1 Đăng kí
Khách hàng: Khách hàng có thể thực hiện đăng kí thông tin tài khoản khi kháchhàng muốn sử dụng các chức năng và dịch vụ của hệ thống nhưng chưa có tài khoản đăngnhập vào hệ thống
2.1.2 Đăng nhập
Khách hàng: Khách hàng có thể thực hiện đăng nhập thông tin tài khoản khikhách hàng muốn sử dụng các chức năng và dịch vụ của hệ thống
Trang 232.1.5 Tìm kiếm giày theo tên, giá
Khách hàng: Khách hàng có thể thực hiện tìm kiếm sản phẩm trên thanh tìm kiếmhoặc phân loại
2.1.6 Quản lý danh mục
Quản lý: Quản lí có thể thực hiện thao tác thêm, sửa hoặc xóa một số danh mục 2.1.7 Quản lý sản phẩm giày
Quản lý: Quản lý có thể thực hiện thao tác thêm,xóa hoặc sửa sản phẩm
2.1.8 Quản lý tài khoản
Quan lý: Quản lý có thể thức hiện các thao tác cài đặt lại mật khẩu, sửa thông tintài khoản, xóa tài khoản
2.2 Xác định các tác nhân
2.2.1 Khách hàng, người truy cập website
⁻ Xem website, thông tin sản phẩm
⁻ Tìm kiếm thông tin sản phẩm
⁻ Tìm kiếm trên website
⁻ Có thể thực hiện giao dịch
2.2.2 Người Quản trị
⁻ Quản lí các hoạt động của trang web
⁻ Cập nhập thông tin
⁻ Thêm sửa xóa danh mục
⁻ Thêm sửa xóa sản phẩm
⁻ Quản lí tài khoản khách hàng
Trang 24⁻ Kiểm tra hoá đơn đơn hàng
2.4 Biểu đồ Usecasse tổng quát
Hình 2.1 Biểu đồ Usecase tổng quát
website bán giày
Trang 252.4.1 Đăng kí
Hình 2.2 Sơ đồ phân rã chức năng đăng ký
Bảng 1: Mô tả usecase đăng kíHành động tác nhân Phản hồi của hệ thống
3 Nhập thông tin cần thiết, yêu cầu ghi nhận 4.Ghi nhận và thông báo kết quả
Ngoại lệ:
Kết quả kiểm tra thông tin là thiếu hoặc không chính xác Hệ thống thông báo lỗi
và yêu cầu nhập lại hoặc phải dừng ca sử dụng Nếu kiểm tra họ tên, ngày sinh, quê quánthấy trùng với một khách hàng đã có trong hệ thống thì thông báo nhập lại hoặc dừng2.4.2 Đăng nhập
Hình 2.3 Biểu đồ Usecase chức năng đăng nhập