DANH MỤC HÌNH VẼHình 1 : Hệ quản trị cơ sở dữ liệu MySql Hình 2 : Use case tổng quát Hình 3 : Use case khách hàng Hình 4 : Use case khách hàng quản lý giỏ hàng Hình 5 : Use case khách hà
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG WEBSITE BÁN
ÁO NAM ONLINE
Sinh viên thực hiện: Hoàng Kim Bình
Giảng viên hướng dẫn: Ths.Dương Thị Mai Nga
Đà Nẵng, tháng 05 năm 2021
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG WEBSITE BÁN
ÁO NAM ONLINE
Giảng viên hướng dẫn: Ths Dương Thị Mai Nga
Đà Nẵng, tháng 05 năm 2021
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 4
Em cũng xin chân thành cảm ơn các thầy, cô giáo trong trường đại học công nghệ thông tin
và truyền thông Việt Hàn nói chung, các thầy, cô trong Khoa Khoa học máy tính nói riêng đã dạy dỗ cho em kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp em có được cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt quá trình học tập Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn thành khoá luận tốt nghiệp
Sinh viên, Kim Bình
Trang 5MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT
DANH MỤC HÌNH VẼ
MỞ ĐẦU 9
1 Giới thiệu 1
2 Mục tiêu của đề tài 1
3 Nội dung và kế hoạch thực hiện 2
4 Bố cục báo cáo 2
Chương 1.CƠ SỞ LÝ THUYẾT VỀ NỀN TẢNG XÂY DỰNG HỆ THỐNG 3
1 CƠ KHÁI QUÁT VỀ THƯƠNG MẠI ĐIỆN TỬ 3
1.1Khái niệm về thương mại điện tử? 3
1.2.Lợi ích của việc sử dụng thương mại điện tử 3
1.3 Cơ hội đạt lợi nhuận 3
1.4.Giảm thiểu các hoạt động kinh doanh 4
1.5.Chiến lược kinh doanh 4
1.6.Cơ sở hạ tầng 4
1.7.Nhân lực 4
1.8.Bảo mật và an toàn 4
2 TỔNG QUÁT VỀ LARAVEL VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL 5
2.1 Giới thiệu về Laravel 5
2.2 Tại sao sử dụng Laravel 5
2.3 Những điểm mạnh của Laravel 6
2.4 Theo mô hình MVC 6
2.5 Giới thiệu về ngôn ngữ Laravel 6
2.6 Cài đặt Laravel 14
2.7 Giới thiệu về hệ quản trị cơ sở dữ liệu MySQL 15
2.8 Ưu điểm của MySQL 15
2.9 Tại sao ta sử dụng hệ cơ sở dữ liệu MySQL? 16
2.10 Sự kết hợp giữa Laravel và MySQL 16
3 Kết chương 1 18
Trang 6Chương 2 PHÂN TÍCH VÀ THIẾT KẾ … 19
1 PHÂN TÍCH 19
1.1 Đặt vấn đề 19
1.2 Bài toán 19
1.3 Hướng giải quyết bài toán 20
1.4 Mô hình trên mạng 20
2 THIẾT KẾ 21
2.1 Mô hình use case tổng quát 51
2.2 Mô hình 51
2.3 Hoạt dộng 55
2.4 Sự kết nối 35
3 Kết chương 2 48
Chương 3.KẾT QUẢ ĐẠT ĐƯỢC … 29
1.VỀ PHÍA KHÁCH HÀNG 29
2 VỀ PHÍA NGƯỜI QUẢN LÝ 52
3 Kết chương 3 55
Chương 4 :KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56
1.KẾT QUẢ ĐẶT ĐƯỢC 56
2 HƯỚNG PHÁT TRIỂN 56
3 Kết chương 3 57
KẾT LUẬN 59
TÀI LIỆU THAM KHẢO 60
Trang 7
DANH MỤC CÁC TỪ VIẾT TẮT
Trang 8DANH MỤC HÌNH VẼ
Hình 1 : Hệ quản trị cơ sở dữ liệu MySql
Hình 2 : Use case tổng quát
Hình 3 : Use case khách hàng
Hình 4 : Use case khách hàng quản lý giỏ hàng
Hình 5 : Use case khách hàng tìm kiếm
Hình 6 : Use case Administrator quản lý danh mục sản phẩm
Hình 6 : Use case Administrator quản lý thương hiệu
Hình 7 : Use case Administrator quản lý sản phẩm
Hình 8 : Use Case cho Tác nhân Adminitrator quản lý khách hàng
Hình 9 : Use case Administrator quản lý hóa đơn
Hình 10 : Use case Administrator quản lý bình luận và ý kiến
Hình 11 : Activity khách hàng quản lý giỏ hàng
Hình 12 : Activity khách hàng tìm kiếm sản phẩm
Hình 13 : Activity Administrator quản lý danh mục sản phẩm
Hình 14 : Activity Administrator quản lý sản phẩm
Hình 14 : Activity Administrator quản lý đơn hàng
Hình 15 : Activity Administrator quản lý chi tiết hóa đơn
Hình 16 : Activity Administrator xem báo cáo, thống kê
Hình 17 : Sự kết nối khách hàng đăng kí
Hình 18 : Sự kết nối khách hàng đăng nhập
Hình 19 : Sự kết nối khách hàng tìm kiếm sản phẩm
Hình 20 : Sự kết nối khách hàng xem chi tiết sản phẩm
Hình 21 : Sự kết nối khách hàng thêm sản phẩm vào giỏ hàng
Hình 22 : Sự kết nối khách hàng xóa sản phẩm ở giỏ hàng
Hình 23 : Sự kết nối khách hàng cập nhật thông tin sản phẩm ở giỏ hàng Hình 24 : Sự kết nối Administrator đăng nhập
Hình 25 : Sự kết nối Administrator cập nhật thông tin khách hàng
Hình 26 : Sự kết nối Administrator thêm khách hàng
Hình 27 : Sự kết nối Administrator xóa khách hàng
Hình 28 : Sự kết nối Administrator thêm sản phẩm
Hình 29 : Sự kết nốiAdministrator cập nhật thông tin sản phẩm
Hình 30 : Sự kết nối Administrator xóa sản phẩm
Hình 31 : Sự kết nối Administrator cập nhật thông tin danh mục
Hình 32 : Sự kết nối Administrator thêm danh mục
Hình 33 : Sự kết nối Administrator xóa danh mục
Hình 34 : Sự kết nối Administrator cập nhật ý kiến khách hàng
Hình 35 : Sự kết nối Administrator xóa ý kiến khách hang
Hình 36 : Sự kết nối Administrator cập nhật thông tin hóa đơn
Hình 37 : Sự kết nối Administrator thêm hóa đơn
Hình 38 : Sự kết nối Administrator xóa hóa đơn
Hình 39 : Sự kết nối Administrator cập nhật chi tiết hóa đơn
Hình 40 : Sự kết nối Administrator xem báo cáo, thống kê
Hình 41 : Class diagram
Trang 9Hình 43 : Giao diện người dung
Hình 49 : Giao diện chi tiết sản phẩm
Hình 50 : Giao diện giỏ hàng
Hình 51 : Giao diện thanh toán
Trang 10MỞ ĐẦU
1 Giới thiệu
Ngày nay Internet đã trở thành dịch vụ phổ biến và thiết yếu và có ảnh hưởng sâu rộng tới thói quen, sinh hoạt, giải trí, mua sắm của nhiều người ngày càng tăng cao Cùng với sự phát triển nhanh chóng của Internet thì các hình thức mua và bán hàng hóa cho mọi người ngày càng đa dạng và phát triển hơn Các ứng dụng Web ngày càng trở nên phổ biến Trước
nhu cầu đó, cùng với yêu cầu môn học, em quyết định chọn đề tài Xây dựng Website bán áo
nam online
2 Mục tiêu của đề tài
- Khảo sát hệ thống thông tin “Thương Mại Điện Tử” theo yêu cầu của các cá nhân,
cơ quan, công ty…Việc bán hàng đòi hỏi cần phải có tư duy, đầu óc kinh doanh và khả năng nhạy bén nắm bắt thị trường Một cửa hàng bán các mặt hàng không cần nhiều nhân viên, khách hàng không cần trực tiếp đến mua hàng mà có thể tại nhà dùng vài cái click chuột thì
có thể có được sản phẩm mình cần
- Việc tạo ra một website thương mại điện tử bán hàng trực tuyến sẽ gặp nhiều khó
khăn trong việc bảo mật thông tin, cũng như qui tín đến khách hàng Laravel Frameword
là một hệ thống đống gói module, quản lý package (Composer), hổ trợ nhiều hệ quản trị CSDL giúp bạn thực hiện các website động một cách nhanh chóng và dễ dàng Là hệ thống quản trị nội dung mã nguồn mở uy tính hiện nay Linh hoạt, đơn giản, thanh nhã, tính tuỳ biến rất cao và cực kỳ mạnh mẽ, đó là những gì có thể nói về Laravel PHP Frameword! Được sử dụng ở trên toàn thế giới từ những trang web đơn giản cho đến những ứng dụng phức tạp Việc cài đặt Lararel PHP Frameword khá dễ dàng, đơn giản trong việc quản lý và đáng tin cậy
- Xây dựng được một website hoàn chỉnh, đầy đủ các chức năng cơ bản của một website bán hàng trực tuyến
- Website có nội dung hấp dẫn, đầy đủ, phù hợp với mọi đối tượng sử dụng
- Website được sắp xếp, bố cục một cách hợp lý, tạo điều kiện cho người dùng dễ định hướng trong website
- Website có hình thức đẹp, phù hợp với chủ đề, nội dung, thân thiện với người dùng
Trang 113 Nội dung và kế hoạch thực hiện
Thời gian Nội dung thực hiện
Từ 03/09 đến 10/09 Xát định vấn đề cần giải quyết
Từ 11/09 dến 24/09 Phân tích hiện trạng
Từ 25/09 đến 03/10 Tìm kiếm giải pháp
Từ 04/10 đến 20/11 Thiết kế và thực hiện nội dung giải pháp
21/11 đến 29/11 Vận hành thử nghiệm và đánh giá kết quả
4 Bố cục báo cáo
Sau phần Mở đầu, báo cáo được trình bày trong ba chương, cụ thể như sau:
Chương 1 CƠ SỞ LÝ THUYẾT VỀ NỀN TẢNG XÂY DỰNG HỆ THỐNG
Bước đầu tiên đề làm một website thì chúng ta phải hiểu được bản chất ngôn ngữ mình dùng để lập trình Ở chương này đồ án tập trung giới thiệu về ngôn ngữ LARAVEL và hệ cơ sở dữ liệu MYSQL Cung cấp kiến thức cơ bản về lập trình bằng ngôn ngữ LARAVEL
Chương 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Để có một hệ thống bán hàng tiến tiến, hợp lý nhất thì nhà thiết kế luôn phải lên kế hoạch, phân tích hệ thống từ nhiều phía để mang lại sự hợp lý và thống nhất cho hệ thống Chương này sẽ phân tích yêu cầu đề bài, thiết kế hệ thống trên cơ sở lý thuyết từ
đó giúp ta có cái nhìn tổng quát hơn về hệ thống Giúp cho việc thiết kế thực tế dễ dàng hơn
Chương 3 KẾT QUẢ ĐẠT ĐƯỢC
Áp kiến thức cơ bản và bước phân tích về lý thuyết, chương 3 là công đoạn vận hành chạy website trên thực tế
Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Qua các quá trình ở các chương thì ta kết luận lại dự án của ta được gì và thiếu những
gì Có những điểm mạnh gì và có những điểm yếu gì Từ đó ta tìm ra hướng phát triển và hoàn thiện một website tối ưu nhất
Trang 12Chương 1 CƠ SỞ LÝ THUYẾT VỀ NỀN TẢNG XÂY DỰNG
HỆ THỐNG
1.TỔNG QUÁT VỀ THƯƠNG MẠI ĐIỆN TỬ
1.1.Khái niệm thương mại điện tử?
Cùng với sự bùng nổ về internet thì thuật ngữ thương mại điện tử (TMĐT) đã ra đời
Có rất nhiều định nghĩa về thương mại điện tử như là:
Theo Tổ chức Thương mại thế giới (WTO): "Thương mại điện tử bao gồm
việc sản xuất, quảng cáo, bán hàng và phân phối sản phẩm được mua bán và thanh toán trên mạng Internet, nhưng được giao nhận một cách hữu hình, cả các sản phẩm giao nhận cũng như những thông tin số hoá thông qua mạng Internet"
Nhưng hiểu một cách tổng quát, TMĐT là việc tiến hành một phần hay toàn bộ hoạt động thương mại bằng những phương tiện điện tử TMĐT vẫn mang bản chất như các hoạt động thương mại truyền thống Tuy nhiên, thông qua các phương tiện điện tử mới, các hoạt động thương mại được thực hiện nhanh hơn, hiệu quả hơn, giúp tiết kiệm chi phí và mở rộng không gian kinh doanh
TMĐT càng được biết tới như một phương thức kinh doanh hiệu quả từ khi Internet hình thành và phát triển Chính vì vậy, nhiều người hiểu TMĐT theo nghĩa cụ thể hơn là giao dịch thương mại, mua sắm qua Internet và mạng (ví dụ mạng Intranet của doanh nghiệp)
1.2 Lợi ích của việc sử dụng thương mại điện tử
Có thể hiểu được rằng bằng cách sử dụng phương tiện này sẽ giúp ích cho người sử dụng môi trường mạng trong việc tìm kiếm đối tác, nắm bắt được thông tin trên thị trường, giảm chi phí tiếp thị và giao dịch nhằm mở rộng qui mô sản xuất hoạt động kinh doanh trong thương trường
1.3 Cơ hội đạt lợi nhuận
Nắm bắt được nhiều thông tin phong phú, giúp cho các doanh nghiệp nhờ đó mà có thể đề ra các chiến lược sản suất và kinh doanh thích hợp với xu thế phát triển trong và ngoài nước.Đối với những doanh nghiệp vừa và nhỏ có cơ hội mởrộng đối tác trên thị trường, nắm tình hình thị trường mà nhờ đó sẽ được biết đến tên tuổi công
Trang 13Hiện nay thương mại điện tử đang được nhiều người quan tâm và thu hút rất hiều thương gia doanh nghiệp trên thế giới, vì đó là một trong những động lực phát triển doanh nghiêp và cho cả nước
1.4 Giảm thiểu các hoạt động kinh doanh
Giảm chi phí sản xuất , chi phí văn phòng, chi phí thuê mặt bằng….Bên cạnh đó không cần tốn nhiều nhân viên để quản lý và mua bán giao dịch.Thương mại điện tử giúp giảm chi phí bán hàng và tiếp thị mà chỉ thông qua môi trường Web một nhân viên vẫn
có thể giao dịch với nhiều đối tác, khách hàng đồng thời còn trưng bày, giới thiệu catalog đủ loại hàng hóa, xuất xứ của từng loại sản phẩm Do đó giảm được chi phí in
ấn cho các catalog và giao dịch mua bán
Điều quan trọng nhất là giảm được thời gian trao đổi đáng kể cho khách hàng và doanh nghiệp Chỉ trong thời gian ngắn mà doanh nghiệp có thể nắm bắt được thị hiếu khách hàng và thị trường thay đổi mà nhanh chóng kịp thời củng cố và đáp ứng cho nhu cầu đó
1.5 Chiến lược kinh doanh
Qua thương mại điện tử giúp các doanh nghiệp có thể củng cố quan hệ hợp tác, thiết lập các quan hệ tốt hơn với bạn hàng, người dùng Đồng thời ngày càng có điều kiện nâng cao uy tín trên thị trường
1.7 Nhân lực
Để có thể theo kịp và nắm bắt thông tin kịp thời trong thời đại thông tin thì phải xây dựng một đội ngũ cán bộ, nhân viên có trình độ tin học, kỹ thuật điện tử, khả năng tiếp cận nhanh chóng các phần mềm mới.Bên cạnh đó ngoài khả năng giao tiếp ngôn ngữ trong nước, nhân viên còn phải trang bị vốn tiếng Anh (ngôn ngữ giao tiếp toàn cầu) để có thể tiến xa hơn.Đây là cách cũng sẽ dẫn đến sự thay đổi trong hệ thống và giáo dục ngày nay
1.8 Bảo mật và an toàn
Trong thương trường giao dịch bằng Internet là yếu tố không mấy đảm bảo rằng vấn
đề bảo mật và an toàn là cao.Với sự mạnh mẽ của Internet thì việc xâm nhập tài liệu cá nhân, các hợp đồng, tín dụng, dữ liệu sẽ bị lộ và tin chắc rằng sẽ không có người nào sẽ tham gia vào công việc mua bán qua mạng nữa
Một vấn đề đáng lo ngại nữa là mất dữ liệu, một hệ thống được xem là an toàn nhất vấn đề hàng đầu là trọng tâm để có thể cho mọi người, nhất là các doanh nghiệp có khả năng mua bán mà không thể đổ lỗi lẫn nhau
Trang 142 TỔNG QUÁT VỀ LARAVEL VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
2.1 Giới thiệu về Laravel ?
Laravel là một PHP Framework mã nguồn mở và miễn phí, được phát triển bởi Taylor Otwell và nhắm mục tiêu hỗ trợ phát triển các ứng dụng web theo cấu trúc model- view- controller (MVC) Những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu- rõ ràng, một
hệ thống đóng gói Modular và quản lý gói phụ thuộc, nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng
Vào khoảng Tháng 3 năm 2015, các lập trình viên đã có một cuộc bình chọn PHP framework phổ biến nhất, Laravel đã giành vị trí quán quân cho PHP framework phổ biến nhất năm 2015, theo sau lần lượt là Symfony2, Nette, CodeIgniter, Yii2 vào một số khác Trước đó, Tháng 8 năm 2014, Laravel đã trở thành project PHP phổ biến nhất và được theo dõi nhiều nhất trên Github
Laravel được phát hành theo giấy phép MIT, với source code được lưu trữ tại Gitthub
Được phát triển dựa trên mô hình MVC, Laravel là một PHP Framework mã nguồn mở miễn phí với cú pháp rõ ràng, mạch lạc
Như đã chia sẻ ở bài viết trước, Framework hoặc “Software Framework” (tạm dịch: khung phần mềm) là “bộ khung” cung cấp đa số các kiểu mẫu thiết kế phù hợp với ứng dụng bạn sắp thực hiện, các thư viện, API, trình biên dịch Framework được cấu thành từ các đoạn code MVC (Model-View-Controller) là mô hình phân bố source code thành 3 phần Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác Cụ thể là:
Model : Đây là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở dữ liệu (mysql, mssql…) Thành phần Model bao gồm các class/function xử lý nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu, …
View : Đây là nơi chứa những giao diện như nút bấm, khung nhập, menu, hình ảnh, … Thành phần View sẽ đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với
hệ thống
Controller : Đây là nơi tiếp nhận những yêu cầu xử lý được gửi từ người dùng Thành phần Controller sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần thiết và hiển thị dữ liệu đó ra cho người dùng qua lớp View
Alison.com, Barchart.com, … và nhiều trang web lớn trên thế giới đã được phát triển trên nền tảng Laravel Tại Việt Nam, Laravel được sử dụng phổ biến với cộng đồng rộng lớn chiếm
tỷ lệ hơn 70% người dùng
2.2 Tại sao ta sử dụng Laravel?
Để thiết kế Web động có rất nhiều ngôn ngữ lập trình khác nhau để lựa chọn, mặc
dù cấu hình và tính năng khác nhau nhưng chúng vẵn đưa ra những kết quả giống nhau Chúng ta có thể lựa chọn cho mình một ngôn ngữ : ASP, LARAVEL, Java, Perl và một số loại khác nữa Vậy tại sao chúng ta lại nên chọn LARAVEL Rất
Trang 15đơn giản, có những lí do sau mà khi lập trình Web chúng ta không nên bỏ qua sự lựa chọn tuyệt vời này
LARAVEL được sử dụng làm Web động vì nó nhanh, dễ dàng, tốt hơn so với các giải pháp khác
LARAVEL có khả năng thực hiện và tích hợp chặt chẽ với hầu hết các cơ sở dữ liệu
có sẵn, tính linh động, bền vững và khả năng phát triển không giới hạn
Đặc biệt LARAVEL là mã nguồn mở do đó tất cả các đặc tính trên đều miễn phí,
và chính vì mã nguồn mở sẵn có nên cộng đồng các nhà phát triển Web luôn có ý thức cải tiến nó, nâng cao để khắc phục các lỗi trong các chương trình này
LARAVEL vừa dễ với người mới sử dụng vừa có thể đáp ứng mọi yêu cầu của các lập trình viên chuyên nghiệp, mọi ý tuởng của các bạn LARAVEL có thể đáp ứng một cách xuất sắc
Cách đây không lâu ASP vốn được xem là ngôn ngữ kịch bản phổ biến nhất, vậy mà bây giờ LARAVEL đã bắt kịp ASP, bằng chứng là nó đã có mặt trên 12 triệu Website
2.3 Những điểm mạnh của Laravel
- Sử dụng các tính năng mới nhất của PHP
- Tài liệu tuyệt vời
- Tích hợp với dịch vụ mail
- Hỗ trợ cache backend phổ biến
- Công cụ tích hợp cho dòng lệnh - Artisan
2.5 Giới thiệu về ngôn ngữ Laravel
Vì LARAVEL là ngôn ngữ của máy chủ nên mã lệnh của LARAVEL sẽ tập trung trên máy chủ để phục vụ các trang Web theo yêu cầu của người dùng thông qua trình duyệt
Sơ đồ hoạt động:
Trang 16Khi người dùng truy cập Website viết bằng LARAVEL, máy chủ đọc mã lệnh LARAVEL và xử lí chúng theo các hướng dẫn được mã hóa Mã lệnh LARAVEL yêu cầu máy chủ gửi một dữ liệu thích hợp (mã lệnh HTML) đến trình duyệt Web Trình duyệt xem nó như là một trang HTML têu chuẩn Như ta đã nói, LARAVEL cũng chính
là một trang HTML nhưng có nhúng mã LARAVEL và có phần mở rộng là HTML Phần mở của LARAVEL được đặt trong thẻ mở <?Laravel và thẻ đóng ?> Khi trình duyệt truy cập vào một trang LARAVEL, Server sẽ đọc nội dung file LARAVEL lên và lọc ra các đoạn mã LARAVEL và thực thi các đoạn mã đó, lấy kết quả nhận được của đoạn mã LARAVEL thay thế vào chỗ ban đầu của chúng trong file LARAVEL, cuối cùng Server trả về kết quả cuối cùng là một trang nội dung HTML về cho trình duyệt
1.1 Các loại thẻ LARAVEL
Có 4 loại thẻ khác nhau mà bạn có thể sử dụng khi thiết kế trang LARAVEL:
● Kiểu Short:Thẻ mặc định mà các nhà lập trình LARAVEL thường sử
● Kiểu Script: Trong trường hợp bạn sử dụng LARAVEL như một script tương
tự khai báo JavaScipt hay VBScript:
Trang 17Ví dụ:
<script language= “Laravel”>
echo “Laravel Script”;
</script>
● Kiểu ASP: Trong trường hợp bạn khai báo thẻ LARAVEL như một phần
trong trang ASP
Ví dụ:
<% echo “LARAVEL – ASP”; %>
LARAVEL và HTML là các ngôn ngữ không “nhạy cảm“ với khoảng trắng, khoảng trắng có thể được đặt xung quanh để các mã lệnh để rõ ràng hơn Chỉ có khoảng trắng đơn có ảnh hưởng đến sự thể hiện của trang Web (nhiều khoảng trắng liên tiếp sẽ chỉ thể hiện dưới dạng một khoảng trắng đơn)
1.2 Các kiểu dữ liệu
Dữ liệu đến từ Script đều là biến LARAVEL, bạn có thể nhận biết chúng bằng cách
sử dụng dấu $ trước tên biến
● Số nguyên: Được khai báo và sử dụng giá trị giống với C
● Xâu: Có hai cách để xác định 1 xâu: Đặt giữa 2 dấu ngoặc kép (“ ”) hoặc
giữa 2 dấu ngoặc (‘ ’)
● Mảng:
Mảng thực chất gồm 2 bảng: Bảng chỉ số và bảng liên kết
+ Mảng một chiều: Có thể dùng hàm List() hoặc Array() Có thể dùng các hàm
aort(), ksort(), sort(), uaort(), để sắp xếp mảng, tùy thuộc vào việc bạn định sắp xếp theo kiểu gì
Trang 181.3 Biến - giá trị
LARAVEL quy định một biến được biểu diễn bắt đầu bằng dấu $, sau đó là một chữ cái hoặc dấu gạch dưới
● Một số biến đã được khai báo sẵn:
HTTP_GET_VARS: Mảng các giá trị nguyên truyền tới script thông qua phương
thức HTTP GET Chỉ có tác dụng nếu “track_vars” Trong cấu hình được đặt hoặc
chỉ dẫn <? Laravel_track_vars?>
HTTP_POST_VARS: Mảng các giá trị nguyên truyền tới script thông qua phương thức HTTP POST
HTTP_COOKIE_VARS: Một mảng các giá trị được truyền tới script hiện tại bằng
HTTP cookie Chỉ có tác dụng nếu “track_vars” trong cấu hình được đặt hoặc chỉ dẫn
<?Laravel_track_vars?>
● Phạm vi giá trị:
LARAVEL coi một biến có một giới hạn Để xác định một biến toàn cục (global) có tác dụng trong một hàm ta cần khai báo lại Nếu không có giá trị của biến sẽ được coi như là cục bộ trong hàm
Khi có khai báo global, $a và $b được biết đó là những biến toàn cục Nếu không
có khai báo global, $a và $b chỉ được coi là các biến bên trong hàm Sum().Tên biến Một biến có thể gắn với một cái tên Ví
1.4 Các giá trị bên ngoài phạm vi LARAVEL:
HTML Form: Khi 1 giá trị gắn với 1 file Laravel qua phương thức
POST Ví dụ:
<form action = “top Laravel” method= “post”>
Name: < input type = “text” name = “name” ><BR>
<input type = “Submit”>
</form>
Trang 19LARAVEL sẽ tạo 1 biến $ name bao gồm mọi giá trị trong trường Name của
Form LARAVEL có thể hiểu được một mảng một chiều gồm các giá trị trong
một Form
Vì vậy, bạn có thể nhóm những giá trị liên quan lại với nhau hoặc sử dụng đặc
tính này để nhận các giá trị từ 1 đầu vào tuỳ chọn
Khi tính chất track_vars được đặt trong cấu hình hoặc có chỉ dẫn:
<?Laravel track_vars ?>
Các giá trị được submit sẽ lấy ra qua phương thức GET và POST có thể lấy ra từ 2
mảng toàn cục $HTTP_POST_ VARS và $HTTP_GET_ VARS
1.5 Hằng
LARAVEL định nghĩa sẳn các hằng số:
_FILE_: Tên của script file đang thực hiện
_LINE_: Số dòng của mã script đang được thực hiện trong script file hiện tại
_LARAVEL_VERSION_: version của
LARAVEL đang chạy TRUE
FALSE
E_ERROR: Báo hiệu có lỗi
E_PARSE: Báo lỗi sai khi biên dịch
E_NOTICE: Một vài sự kiện có thể là lỗi hoặc khôngCó thể định nghĩa một hằng số bằng hàm define()
1.6 Biểu thức
Biểu thức là một thành phần quan trọng trong LARAVEL Một dạng cơ bản nhất của biểu thức bao gồm các biến và hằng số LARAVEL hỗ trợ 3 kiểu giá trị cơ bản nhất:
Số nguyên, số thực và xâu Ngoài ra còn có mảng và đối tượng Mỗi kiểu giá trị này
có thể gán cho các biến hay làm giá trị ra của các hàm
//thực hiện một điều khác}
If(điều kiện 1){
//thực hiện một điều gì đó
Trang 20} elseif(điều kiện 2) {
//thực hiện một điều khác }else {
//thực hiện một điều khác nữa LARAVEL còn có một dạng câu lệnh điều kiện nữa là Swich Câu lệnh này rất phù hợp cho việc thay thế nếu câu lệnh if- elseif- else quá dài Cú pháp của câu lệnh switch như sau:
Switch($variable){
Case ‘giá trị 1’:
//thực hiện lệnh Break;
Case ‘giá trị 2’:
//thực hiện lệnh Break;
Default:
//thực hiện lệnh
● Phát biểu vòng lặp While
Phát biểu đơn giản nhất trong LARAVEL là vòng lặp While, cho phép thực
thi khối lệnh trong While cho đến điều kiện của While là True như cú pháp:
While (condition)
{
Expression;
}
o Condition:Biểu thức điều kiện, biến,
o Expression:Khối lệnh trong vòng lặp while Vòng lặp For:
For(expression1;condition;expression2) {
expression3;
} Trong đó:
o Condition: điều kiện giới hạn của vòng lặp for
o Expression1: Giá trị khởi đầu của vòng lặp for
o Expression2: Giá trị lặp của vòng lặp for
o Expression3: Khối lệnh bên trong của vòng lặp for
Trang 21● Vòng lặp do while
Do { expression } while(condition)
} Trong đó: Biểu thức điều kiện, biến Expression:
Khối lệnh bên trong vòng lặp while Exit:Thoát khỏi các vòng lặp hay phát biểu điều khiển nào đó
● Tham biến:
Function add_some_extra (&$string)
{$string =’and somthing extra’; }
● Tham số có giá trị mặc định
Function makecoffee($type = “cappucino”)
{ Return “Making a cup of $type \n”; } Chú ý: Khi sử dụng hàm có đối số có giá trị mặc định, các biến này sẽ phải nằm về phía phải nhất trong danh sách đối số
● Giá trị trả lại của hàm:
Có thể là bất kỳ giá trị nào Tuy vậy, không thể trả lại nhiều giá trị riêng lẻ nhưng có thể trả lại một mảng các giá trị
Trang 22● Hàm biến
LARAVEL cho phép sử dụng hàm giá trị nghĩa là khi một biến được gọi
có kèm theo dấu ngoặc đơn, LARAVEL sẽ tìm hàm có cùng tên với giá trị biến đó thực hiện
1.10 Các toán tử:
Các phép số học: +, -, *, /%
Các toán tử logic: And, or, xor: &&, ||, ! Toán tử thao tác với bít: &, |, ^, ~, <<, >>Toán tử
so sánh: ==, !=, <, >, <=, >=, ===
Toán tử điều khiển lỗi: @ - khi đứng trước 1 biểu thức thì các lỗi của biểu thức
sẽ bị bỏ qua và lưu trong $LARAVEL_errormsg
Toán tử thực thi: “LARAVEL sẽ thực hiện nội dung nằm giữa 2 dấu “ như 1 lệnh shell Trả ra giá trị là kết quả thực hiện lệnh
Tham chiếu LARAVEL cho phép bạn tạo 2 biến có cùng nội dung
Tham chiếu truyền giá trị bằng tham chiếu Thực hiện việc này bằng cách tạo một hàm cục bộ và truyền giá trị được tham chiếu
Giá trị trả lại của một hàm bằng tham chiếu rất tiện lợi khi bạn muốn sử dụng hàm để tìm 1 giá trị trong một phạm vi nào đó
Trang 232.6 Hướng dẫn cài đặt Laravel
• Yêu cầu hệ thống để cài đặt Laravel
Để có thể cài đặt được Laravel bạn cần đáp ứng đủ các yêu cầu bắt buộc sau:
PHP >= 5.8 OpenSSL PHP Extension PDO PHP Extension Mbstring PHP Extension Tokenizer PHP Extension
Đối với Windows: sử dụng phần mềm tạo Webserver trên Windows như Openserver, Wamp, Xampp, Ampps…
• Cài đặt Laravel
➢ Thông qua Laravel Installer
Bạn mở Terminal (CMD hoặc Git Bash), gõ dòng lệnh sau: “composer global require
“laravel/installer””
Đối với Windows, đường dẫn là “%appdata%\Composer\vendor\bin”
Đối với macOS và Linux, đường dẫn là “~/.composer/vendor/bin”
Sau khi cài đặt xong, bạn di chuyển vào thư mục htdocs của XAMPP Sau đó mở cửa
sổ lệnh (đối với windows thì nhấp Shift + chuột phải và chọn Command Window Here hoặc Git Bash Here) và gõ: “laravel new blog”
Trong đó blog chính là tên thư mục laravel project của bạn Vậy là chúng ta đã cài đặt xong Laravel rồi đấy
➢ Thông qua composer
Di chuyển thẳng vào thư mục htdocs của XAMPP, tại đây mở cửa sổ lệnh và gõ
“composer create-project –prefer-dist laravel/laravel blog”
Trong đó blog chính là tên thư mục laravel project của bạn
➢ Sử dụng framework Laravel
Trang 24Sau khi cài đặt hoàn tất, mở WebServer của bạn lên, đến thư mục public trong thư mục Laravel project hoặc từ thư mụ Laravel project, gõ lệnh: “php artisan serve” Khi đó trên màng hình console xuất hiện thông báo:”Laravel development server started on http://localhost:8000/” Vào trình duyệt gõ: http://localhost:8000 Như vậy bạn có thể bắt đầu
2.7 Giới thiệu về hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở miễn phí, được tích hợp sử dụng chung với apache, PHP
MySQL quản lý dữ liệu thông qua các cơ sở dữ liệu, mỗi cơ sở dữ liệu có thể có nhiều bảng quan hệ chứa dữ liệu
MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều cơ sở dữ liệu khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến cơ sở dữ liệu
Khi ta truy vấn tới cơ sở dữ liệu MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng cơ sở dữ liệu đó Nếu không, chúng ta sẽ không làm được gì cả
2.8 Ưu điểm của MySQL
Tốc độ: MySQL rất nhanh Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có
Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức
Hỗ trợ ngôn ngữ truy vấn: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại Bạn cũng có thể truy cập MySQL bằng
cách sử dụng các ứng dụng mà hỗ trợ ODC (Open Database Connectivity một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft)
Năng lực: Nhiều client có thể truy cập đến server trong cùng một thời gian Các client
có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời Bạn có thể truy cập MySQL tương
Trang 25tác với sử dụng một vài giao diện để bạn có thể đưa vào các truy vấn và xem các kết quả: các dòng yêu cầu của khách hàng, các trình duyệt Web…
Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẻ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào Nhưng MySQL kiểm soát quyền truy cập cho nên người mà không nên nhìn thấy dữ liệu của bạn thì không thể nhìn được
Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows MySQL chạy được các với mọi phần cứng từ các máy PC ở nhà cho đến các máy server
Sự phân phối rộng: MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web của bạn Nếu bạn không hiểu làm thế nào mà nó làm việc hay tò mò về thuật toán, bạn có thể lấy mã nguồn và tìm tòi nó Nếu bạn không thích một vài cái, bạn có thể thay đổi nó
Sự hỗ trợ: Bạn có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ Cộng đồng MySQL rất có trách nhiệm Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi
trong vài giờ và cách khắc phục đó sẽ ngay lập tức có sẵn trên Internet
2.9Tại sao ta sử dụng hệ cơ sở dữ liệu MySQL?
Nhanh và mạnh: MySQL không có đầy đủ những cơ sở vật chất cho một hệ quản trị CSDL chính tông, nhưng đối với công việc thường nhật của phần đông mọi người thì nó cung cấp cũng khá nhiều thứ Nếu công việc của bạn là lưu trữ dữ liệu trên web hoặc làm một trang Thương mại điện tử thì MySQL có đủ những thứ bạn cần Đối với những CSDL cỡ trung bình thì MySQL hỗ trợ tuyệt vời về tốc độ
Cải tiến liên tục: MySQL được cải thiện liên tục với một tần số không ngờ Các nhà phát triển nó cập nhật thường xuyên, ngoài ra còn bổ sung các tính năng hữu ích cho nó
2.10 Sự kết hợp giữa Laravel và MySQL
Sự kết hợp giữa PHP và MySQL tạo nên một nền tảng tốt cho trang web Số lượng người sử dụng ngôn ngữ này ngày càng cao trong cộng động lập trình web, PHP và MySQL trở nên rất thông dụng Dường như đó là 1 cặp bài trùng
PHP kết hợp với MySQL sẽ tạo ra các ứng dụng chéo nền (crossplatform), nghĩa là, bạn có thể phát triển ứng dụng trên Windows, và máy chủ là Unix
- Backup cơ sở dữ liệu:
File cơ sở dữ liệu backup được đặt trong file shopbanhanglaravel.sql.Chúng ta có thể
vào phpMyAdmin để tiến hành khôi phục lại cơ sở dữ liệu cho website
Hình ảnh cơ sở dữ liệu sau khi được backup
Trang 26Hình 1 : Hệ quản trị cơ sở dử liệu MySqp
- Cấu hình để kết nối với cơ sở dữ liệu
File dbcon.php nằm trong thư mục chính của web chứa cấu hình để liên kết với cơ sở
dữ liệu, có nội dung như sau :
Trang 273 Kết chương 1
Thông qua sự tìm hiểu về lý thuyết nền tảng hệ thống, ta áp dụng và chương 2 để hoàn thành tốt phần phân tích và thiết kế trang website một cách tối ưu nhất
Trang 28Chương 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1 PHÂN TÍCH
1.1 Đặt vấn đề.
Trong thời đại ngày nay, thời đại mà hầu như tất cả các hoạt động kinh tế, chính trị,
xã hội đều đuợc đăng tải trên mạng Internet thì không chỉ dân IT chúng ta sử dụng internet
mà hầu hết tất cả mọi người đều đã một lần lướt net, lướt web
Một công ty hay một thương hiệu muốn phát triển cần phải khẳng định được thương hiệu của mình Cách đơn giản và đỡ tốn kém và thật sự hiệu quả đó là tạo cho công ty hay thương hiệu mình một Website để tất cả mọi người có thể biết đến quý công ty Và trong thời buổi kinh tế thị trường với yêu cầu của những người sử dụng khá cao, có thể một số nơi tại chỗ ở của bạn không thể đáp ứng được hết yêu cầu của khách hàng Bạn
là một người bận rộn, không có nhiều thời gian để lựa chọn sản phẩm cho phù hợp với
sở thích và túi tiền của mình Việc đi đến một cửa hàng chiếm mất nhiều thời gian của bạn và bạn mong muốn có một dịch vụ đáp ứng được điều đó
Vậy tại sao chúng ta không thực hiện bán hàng ngay trên mạng Thật hiệu quả vì tất
cả mọi người đều biết đến công ty, vừa có thể giới thiệu về công ty vừa thực hiện việc trao đổi hàng hóa ngay trên mạng Quả là một ý tưởng tuyệt vời
Giả sử bạn cần mua một chiếc laptop hay điện thoại bạn đến cửa hàng để mua máy, khi vào cửa hàng bạn sẽ chọn những sản phẩm mà mình thích để vào giỏ hàng Trong quá trình lựa chọn bạn có thể tìm hiểu chi tiết thông tin sản phẩm mà bạn thích Sau khi lựa chọn xong, bạn có thể đặt mua sản phẩm mà mình muốn
1.2 Bài toán
Banhangtructuyen.vn là một trang web nhỏ em đã thiết kế với mục đích là mua bán máy tính và một số các linh kiện khác qua mạng để có thể giới thiệu đến mọi người các loại máy tính, điện thoại cũng như một số các linh kiện, phụ kiện mà không cần phải đến tận nơi để xem
➢ Lợi ích của người truy cập trang Website:
Mua hàng trên mạng nhanh chóng, tiện lợi
Tham khảo và so sánh giá của các mặt hang
Xem các thông tin về các loại sản phẩm
➢ Website gồm có những nội dung cơ bản sau:
Giới thiệu về các chủng loại sản phẩm (Áo nam và một số sản phẩm thêm… )
Trang 29Giới thiệu về các loại sản phẩm mới (được cập nhật một cách thường xuyên) của các hãng sản xuất, các sản phẩm tương ứng của hãng đó và các phụ kiện liên quan
Khách hàng có thể đọc một số tin tức mới cập nhật
Khách hàng có thể tìm kiếm sản phẩm theo giá cả hay theo tên của sản phẩm và có thể đặt mua hàng qua mạng
1.3 Hướng giải quyết bài toán
Dùng các trang HTML và CSS thông qua ngôn ngữ giao Script để thiết kế giao diện Website Sử dụng Laravel kết hợp với PHP và xử lí các kết nối cơ sở dữ liệu được tổ chức chủ yếu trên mô hình Client/Server Các hình thức gửi và nhận dữ liệu giữa website và khách hàng thông qua Modem, đường dây điện thoại công cộng trên nền Internet và Intranet
Tìm sản phẩm laptop,điện thoại,linh kiện Xem thông tin sản phẩm
Thêm, xoá, cập nhật ở giỏ hàng Gửi đơn hàng
Gửi ý kiến, câu hỏi
Đăng nhập
Quản lý sản phẩmQuản lý khách hàngQuản lý đơn hàngQuản lý bình luận khách hàng Quản website
Trang 30Xem báo cáo, thống kê
2 PHÂN TÍCH VÀ THIẾT KẾ
2.1 Mô hình use case tổng quát
Hình 2: Mô hình tổng quát
Website
2.2 Mô hình của khách hàng
2.2.1Tác nhân khác hàng
Trang 31
Hình 3 : Use case khách hàng.
Hình 3 : Use case khách hàng quản lý giỏ hàng
Hình 4 : Khách hàng tìm kiếm
2.2.2 Tác nhân Administrator
Trang 32Hình 5 : Use case Administrator quản lý danh mục sản phẩm
Hình 6 : Use case Administrator quản lý thương hiệu
Hình 7 : Use case Administrator quản lý sản phẩm
Trang 33Hình 8: Biểu đồ Use Case cho Tác nhân Adminitrator quản lý khách hàng
Hình 8 : Use case Administrator quản lý hóa đơn