Trang 1 ĐẠI HỌC ĐÀ NẴNGTRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT---ĐỒ ÁN CHUYÊN NGÀNHXÂY DỰNG WEBSITE BÁN CÁC LOẠI GIỐNG CÂYTRỒNG TẠI CỬA HÀNG VƢỜN CÂY VIỆT Trang 2 1Sinh viên: Lưu Văn ThanhMSV:
CƠ SỞ LÝ THUYẾT
Ngôn ngữ lập trình PHP
PHP (viết tắt là: "P Hypertext Preprocessor", "Personal Home Page") 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ở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào 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.
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp.
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 PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay.
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người.
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997 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.
Lịch sử của các bản PHP:
- PHP/FI: ra đời năm 1994
- PHP/FI 2.0: ra đời năm 1997
- PHP 3.0: được tạo ra năm 1997 và đã chính thức được công bố vào tháng 6 năm 1998, sau 9 tháng được cộng đồng kiểm nghiệm.
- PHP 4: được công bố vào tháng 5 năm 2000
- PHP 5: sau hàng loạt bản thử nghiệm được nhà xản xuất công bố thì bản PHP 5.1 được họ công bố vào tháng 7 năm 2005.
- PHP 6 Phiên bản 6 này chỉ dùng ở việc nghiên cứu và thử nghiệm Sau đó PHP bỏ hẳn phiên bản 6 và lên 7.
- PHP 7 ở phiên bản này thêm vào rất nhiều cú pháp, tính năng mới giúp choPHP 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 trả về cho 1 hàm,thêm các toán tử mới.
Mô hình MVC
Spring MVC là một module con trong Spring framework, cung cấp kiến trúc Model-View-Controller và các components sẵn có để sử dụng và phát triển ứng dụng web một cách linh hoạt.
Mô hình MVC là kết quả của việc tách các khía cạnh khác nhau của ứng dụng logic đầu vào, các xử lý logic, UI) trong khi đó cung cấp một sự kết hợp giữa các thành phần đó một cách “lỏng lẻo”.
Luồng xử lý các yêu cầu của DispatcherServlet được minh họa theo hình:
Hình 2:Luồng xử lý yêu cầu của DispastcherServlet Đây là chuỗi sự kiện tương ứng khi nhận một yêu cầu HTTP gửi đến DispatcherServlet:
Sau khi nhận một HTTP request, DispatcherServlet gửi yêu cầu đến HandlerMapping (một bản đồ cấu hình URL) để xác định controller nào sẽ xử lý yêu cầu này.
Controller sẽ nhận các request và gọi các phương thức dịch vụ (service methods) phù hợp dựa trên việc sử dụng các method GET/POST… Nếu yêu cầu đó cần truy xuất cơ sở dữ liệu thì Controller sẽ ủy nhiệm cho một business logic hay nhiều hơn một model để lấy thông tin và gửi dữ liệu về cho Controller Lúc này Controller đóng gói mô hình dữ liệu và tên của một view sẽ được tải lên thành đối tượng ModelAndView và gửi trả về cho DispathcherServlet
DispatcherServlet gửi gói Model ndView cho ViewResolver để tìm xem view (thông thường là một trang JSP, HTML) nào sẽ được load lên Sau khi hoàn tất, DispatcherServlet sẽ chuyển dữ liệu từ model đến view và cuối cùng hiển thị trên trình duyệt.
2.2 Các thành phần trong mô hình MVC
2.2.1 Model Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý…
2.2.2 View Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như textbox, images… Hiểu một cách đơn giản, nó là tập hợp các form hoặc các file HTML.
Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng… Chẳng hạn thành phần này sẽ nhận request từ url và form để thao tác trực tiếp với Model.
Hệ quản trị cơ sở dữ liệu 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 Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,…
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
Laravel
Laravel là một PHP framework mã nguồn mở, được phát triển bởi Taylor Otwell và nhắm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo kiến trúc MVC (Model – View – Controller).
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.
Laravel có một hệ sinh thái rất lớn với một nền tảng giúp triển khai ứng dụng của bạn một cách nhanh chóng, và trang web chính thức của nó cung cấp nhiều hướng dẫn bằng video gọi là Laracasts.
Vào năm 2015, Laravel đã có được nhiều sự bình chọn nhất từ các lập trình viên trong một cuộc bình chọn về PHP framework phổ biến nhất Trước đó, framework này đã trở thành project PHP phổ biến nhất và được theo dõi nhiều nhất trên Github.
4.2 Lịch sử phát triển của Laravel.
Laravel được Taylor Otwell tạo ra như một giải pháp thay thế cho CodeIgniter, cung cấp nhiều tính năng quan trọng hơn như xác thực và phân quyền.
Bản Laravel beta đầu tiên được phát hành vào ngày 9/6/2011 và Laravel
1 cũng được phát hành trong cùng tháng.
Laravel 2 được phát hành vào tháng 9 năm 2011 Tính năng đáng kể bao gồm hỗ trợ controller, điều này thực sự biến Laravel 2 thành một MVC framework hoàn chỉnh, hỗ trợ Inversion of Control (IoC), hệ thống template Blade.
Laravel 3 được phát hành vào tháng 2 năm 2012, với một tấn tính năng mới bao gồm giao diện dòng lệnh (CLI) tên “ rtisan”,
Laravel 4, tên mã “Illuminate”, được phát hành vào tháng 5 năm 2013 Laravel 5 được phát hành trong tháng 2 năm 2015.
Laravel 5.1 phát hành vào tháng 6 năm 2015.
Bootstrap, Jquery và javascript
Bootstrap là 1 framework HTML, CSS, và JavaScript cho phép người dùng dễ dàng thiết kế website theo 1 chuẩn nhất định, tạo các website thân thiện với các thiết bị cầm tay
Bootstrap là một trong những framework được sử dụng nhiều nhất trên thế giới để xây dựng nên một website Bootstrap đã xây dựng nên 1 chuẩn riêng và rất được người dùng ưa chuộng Chính vì thế, chúng ta hay nghe tới một cụm từ rất thông dụng "Thiết kế theo chuẩn Bootstrap".
Bootstrap bao gồm những cái cơ bản có sẵn như: typography, forms, buttons, tables, navigation, models, image carousels và nhiều thứ khác Trong bootstrap có thêm nhiều Component, Javascript hỗ trợ cho việc thiết kế reponsive của bạn dễ dàng, thuận tiện và nhanh chóng hơn.
Lịch sử bootstrap là được phát triển bởi Mark Otto và jacob Thornton tại Twitter Nó được xuất bản như là một mã nguồn mở vào tháng 8 năm 2011 trên GitHub Bản bootstrap mới nhất bây giờ là bootstrap 5.
5.2 jQuery jQuery là một thư viện JavaScript đa tính năng, nhỏ gọn, nhanh, được tạo bởi John Resig vào năm 2006 với một phương châm hết sức ý nghĩa: Write less, do more - Viết ít hơn, làm nhiều hơn. jQuery đơ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 jax để phát triển web nhanh chóng Các phân tích web đã chỉ ra rằng, jQuery là thư viện JavaScript được triển khai rộng rãi nhất. jQuery là một bộ công cụ JavaScript được thiết kế để đơn giản hóa các tác vụ khác nhau bằng cách viết ít code hơn.
JavaScript là một ngôn ngữ lập trình của HTML và WEB Nó là nhẹ và được sử dụng phổ biến nhất như là một phần của các trang web, mà sự thi hành của chúng cho phép Client-Side script tương tác với người sử dụng và tạo các trang web động Nó là một ngôn ngữ chương trình thông dịch với các khả năng hướng đối tượng.
JavaScript được biết đến đầu tiên với tên Mocha, và sau đó là LiveScript,nhưng công ty Netscape đã đổi tên của nó thành JavaScript, bởi vì sự phổ biến như là một hiện tượng của Java lúc bấy giờ JavaScript xuất hiện lần đầu trongNetscape 2.0 năm 1995 với tên LiveScript Core đa năng của ngôn ngữ này đã được nhúng vào Netscape, IE, và các trình duyệt khác.
CHƯƠNG II PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1 Đối tƣợng sử dụng hệ thống
- Xem thông tin sản phẩm.
- Xem chương trình khuyến mãi.
- Cập nhật thông tin cá nhân.
- Tạo và cập nhật giỏ hàng.
- Tìm kiếm sản phẩm, loại sản phẩm, danh mục.
- Cập nhật trạng thái đơn hàng.
Hình 3: Sơ đồ use case
Hình 4: Use case bán hàng
2.1.2 Chức năng nhân viên bán hàng
Hình 5:Use case nhân viên bán hàng
2.1.3 Chức năng nhân viên kho
2.1.4 Chức năng chủ cửa hàng
Hình 6: Use case chủ cửa hàng
- Mục đích: Đăng kí thành viên.
- Tác nhân: Khách vãng lai.
- Điều kiện: Kiểm tra thông tin nhập, nếu thông tin chính xác sẽ lưu vào cơ sở dữ liệu và thêm thông tin thành viên đó vào CSDL.
- Đầu vào: Tên đăng nhập, mật khẩu, họ tên, ngày sinh, địa chỉ, số điện thoại, email.
- Đầu ra: Đưa ra thông báo đã đăng kí thành công hoặc yêu cầu nhập lại nếu không hợp lệ
- Mục đích: Đăng nhập tài khoản.
- Điều kiện: Người dùng đã đăng ký tài khoản.
- Đầu vào: Email, mật khẩu.
- Đầu ra: Hiển thị các chức năng của thành viên, nhân viên bán hàng, nhân viên kho, quản trị viên.
2.2.3 Thay đổi thông tin thành viên
- Mục đích: Thay đổi thông tin.
- Điều kiện: Nếu đúng thông tin, thay đổi thành công.
- Đầu vào: Thành viên điền thông tin mới.
- Đầu ra: Thông tin mới của thành viên.
- Mục đích: Tìm kiếm sản phẩm.
- Tác nhân: Khách hàng, nhân viên bán hàng, nhân viên kho.
- Điều kiện: Lấy thông tin CSDL theo trường đã tìm kiếm.
- Đầu vào: Nhập tên sản phẩm cần tìm.
- Đầu ra: Thông tin sản phẩm cần tìm.
- Mục đích: Chọn những sản phẩm cần tìm kiếm.
- Điều kiện: Lấy thông tin từ CSDL mà khách hàng đã chọn vào giỏ.
- Đầu vào: Hiển thị thông tin về tên sản phẩm, ảnh, đơn giá, số lượng, thành tiền, tổng tiền của sản phẩm.
- Đầu ra: Thông tin tất cả sản phẩm khách hàng đã thêm vào giỏ hàng và tổng tiền.
- Mục đích: Các sản phẩm cần mua.
- Điều kiện: Lưu thông tin đơn hàng trong cơ sở dữ liệu.
- Đầu vào: Sau khi xem đơn hàng, khách hàng có nhu cầu đặt hàng thì nhấn nút đặt hàng để đặt hàng.
- Đầu ra: Đưa ra thông báo đặt hàng thành công cho khách hàng.
- Mục đích: Đăng nhập tài khoản người quản trị vào hệ thống.
- Tác nhân: Quản trị viên, nhân viên bán hàng, nhân viên kho.
- Điều kiện: Nhận thông tin đăng nhập từ Admin và nhân viên bán hàng, hệ thống sẽ kiểm tra thông tin, nếu đúng thì đăng nhập, sai thì nhập lại.
- Đầu vào: Email, mật khẩu.
- Đầu ra: Giao diện các chức năng đã được phân quyền.
2.2.8 Cập nhật thông tin thành viên
- Mục đích: Cập nhật thông tin.
- Tác nhân: quản trị viên.
- Điều kiện: Nếu đăng nhập thành công, có thể thêm thành viên mới hoặc sửa xóa thành viên cũ, phân quyền.
- Đầu vào: Thông tin thành viên.
- Đầu ra: Thông tin thành viên đã được thêm.
2.2.9 Cập nhật thông tin nhân viên
- Mục đích: Cập nhật thông tin.
- Tác nhân: quản trị viên.
- Điều kiện: Nếu đăng nhập thành công, có thể thêm thành viên mới hoặc sửa xóa nhân viên cũ, phân quyền.
- Đầu vào: Thông tin nhân viên.
- Đầu ra: thông tin nhân viên đã được cập nhật.
2.2.10 Cập nhật thông tin sản phẩm
- Mục đích: Cập nhật thông tin sản phẩm.
- Tác nhân: Nhân viên bán hàng.
- Điều kiện: Nếu đăng nhập thành công, có thể thêm sản phẩm mới hoặc sửa xóa sản phẩm cũ.
- Đầu vào: Thông tin sản phẩm.
- Đầu ra: Thông tin sản phẩm.
2.2.11 Cập nhật danh mục sản phẩm
- Tác nhân: Nhân viên bán hàng.
- Điều kiện: Nếu đăng nhập thành công, có thể thêm danh mục mới hoặc sửa xóa danh mục cũ.
- Đầu vào: Thông tin danh mục sản phẩm.
- Đầu ra: Thông tin danh mục sản phẩm.
2.2.12 Xem danh sách đơn hàng
- Mục đích: Xem danh sách hóa đơn bán hàng, chi tiết hóa đơn bán hàng.
- Tác nhân: Nhân viên kho.
- Điều kiện: Nhân viên bán hàng đăng nhập thành công, nhấn vào xem chi tiết rồi giải quyết đơn đặt hàng.
- Đầu vào: Danh sách hóa đơn bán hàng, chi tiết hóa đơn bán hàng.
- Đầu ra: thông tin hóa đơn bán hàng.
2.3.1 Sơ đồ hoạt động trang chủ
Hình 7: Sơ đồ hoạt động trang chủ
2.3.2 Sơ đồ hoạt động tìm kiếm
Hình 8: Sơ đồ hoạt động tìm kiếm
2.3.3 Sơ đồ hoạt động thêm vào giỏ hàng
Hình 9: Sơ đồ hoạt thêm vào giỏ hàng
2.3.4 Sơ đồ hoạt động đăng nhập
Hình 10: Sơ đồ hoạt động đăng nhập
2.3.5 Sơ đồ hoạt động đăng ký thành viên
Hình 71: Sơ đồ hoạt động đăng ký
Sinh viên: Lưu Văn Thanh 28
2.4.1 Sơ đồ tuần tự trang đăng nhập
Hình 82: Sơ đồ tuần tự đăng nhập
2.4.2 Sơ đồ tuần tự quá trình tìm kiếm
Hình 93: Sơ đồ tuần tự quá trình tìm kiếm
2.4.3 Sơ đồ tuần tự quá trình đặt hàng
Hình 14: Sơ đồ tuần tự quá trình đặt hàng
2.4.4 Sơ đồ tuần tự quá trình thêm hàng
Hình 105: Sơ đồ tuần tự quá trình thêm hàng
Sinh viên: Lưu Văn Thanh 32
3.1 Thiết kế cơ sở dữ liệu
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
5 social_id varchar(255) id đăng nhập fb
Bảng 3.1: Bảng dữ liệu user
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
6 active int(11) trạng thái hoạt động
Bảng 3.2: Bảng dữ liệu customer 3.1.3 Bảng danh mục sản phẩm
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
3 slug varchar(255) tên không dấu
4 status int(11) trạng thái danh mục
Bảng 3.3: Bảng dữ liệu danh mục sản phẩm
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
3 slug varchar(255) tên không dấu
4 status int(11) trạng thái loại sản phẩm
Bảng 3.4: Bảng dữ liệu loại sản phẩm 3.1.5 Bảng sản phẩm
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
2 name varchar(255) tên sản phẩm
3 slug varchar(255) tên không dấu
4 description text mô tả sản phẩm
7 promotional float giá khuyến mại
10 image varchar(255) ảnh minh họa
11 status int(11) trạng thái sản phẩm
Bảng 3.5: Bảng dữ liệu sản phẩm 3.1.6 Bảng đặt hàng
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
2 code_order varchar(1000) mã đơn hàng
4 name varchar(255) tên khách hàng
5 address varchar(255) địa chỉ khách hàng
6 email varchar(255) email khách hàng
7 phone varchar(255) số điện thoại
8 monney varchar(255) tổng tiền thanh toán
9 message text lời nhắn cho đơn hàng
10 status int(10) trạng thái duyệt hàng
3.1.7 Bảng chi tiết đặt hàng
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
4 name varchar(255) tên sản phẩm
Bảng 3.7: Bảng dữ liệu đặt hàng
CHƯƠNG III KẾT QUẢ TRIỂN KHAI HỆ THỐNG
Hình 17:Hình ảnh trang giao diên
1.2 Trang danh mục sản phẩm
Hình 1811: Hình ảnh trang danh mục sản phẩm
Hình 1912:Hình ảnh trang giỏ hàng
1.4 Trang chi tiết sản phẩm
Hình 20: Hình ảnh trang chi tiết sản phẩm
Hình 21:Hình ảnh trang thanh toán
1.6 Giao diện trang quản trị
Hình 22:Hình ảnh giao diện trang quản trị
1.7 Giao diện admin trang đơn hàng
Hình 23:Hình ảnh giao diện trang đơn hàng
1.8 Giao diện admin trang danh sách sản phẩm
Hình 24: Hình ảnh giao diện trang sản phẩm
1.9 Giao diện trang admin khách hàng
Hình 25: Hình ảnh giao diện trang khách hàng
1.10 Giao diện trang Admin nhân viên
Hình 26: Hình ảnh giao diện trang nhân viên
- Đã hoàn thành được các chức năng cơ bản nhất như xem và kiểm tra tình trạng đơn hàng mua bán qua trang web.
- Đăng nhập vào tài khoản mới được đặt hàng cũng như đăng nhập vào tài khoản Admin mới được truy cập vào trang Admin.
- Đăng kí thêm người dùng, khách hàng và thêm nhân viên.
- Áp dụng được framework Laravel giúp trang web ổn định và mượt mà hơn.
- Trang web viết có nhúng Bootstrap vào để tạo thêm cho trang web sinh động và có tính linh hoạt hơn.
- Hệ thống chưa được tối ưu về cấu trúc của database và giao diện chưa được hoàn chỉnh như dự kiến Một số chức năng còn thiếu trong trang web như thanh toán online, liên hệ,…
- Việc kết nối giữa server và cơ sở dữ liệu còn chậm.
- Điều này cũng dễ hiểu vì việc thiết lập cầu nối phải qua nhiều cấp Chỉ có các giải quyết là cho server chạy trên máy có cấu hình mạnh, tốc độ truy xuất nhanh.
- Hướng phát triển của Website là tiến đến một trang thương mại điện tử với đầy đủ các chức năng thanh toán qua mạng Nước ta hiện nay còn gặp nhiều vấn đề trong việc thanh toán qua mạng nên chức năng của Website dung để hỗ trợ cho nhà quản trị còn hạn chế Vấn đề chích của website là quảng cáo Từ đó, bên cạnh việc thương mại thì vấn đề cần phải tập trung thu hút khách hàng liên hệ và thỏa thuận thiết kế, lắp đặt một công trình nào đó thuộc lĩnh vực chuyên môn của công ty, của hàng.
- Do vậy trong thời gian sau này bổ sung các chức năng về kiểm kê: Thống kê số lần truy cập database, thống kê giá xuất nhập, tồn, thống kê doanh thu, xử lý hóa đơn điện tử.
- Quản lý kho (kiểm trả lượng sản phẩm tồn kho tự động), thanh toán điện tử có sử dụng Edit Card.
- Bổ sung thêm một số chức năng kiểm trả dữ liệu nhập, thay đổi mật mã truy cập của khách hàng cũng như quản trị.
- Tìm hiểu sâu thêm về ngôn ngữ PHP & MySQL để có thể đáp ứng nhiều hơn nữa nhu cầu của người sử dụng, phát triển và tối ưu hóa hệ thống.
- Tìm hiểu thêm về một số ngôn ngữ khác, các phần mềm ứng dụng để nâng cao giao diện đồ họa đẹp mắt, thân thiện hơn.
Truy cập link: https://www.google.com/search?q=sublime+text+3&oq=sub&aqs=chrome.1.69i57 j35i39j0l6.2958j0j7&sourceid=chrome&ie=UTF-8 để dowload.
- Truy cập vào https://www.apachefriends.org/index.html
- Chọn phần mềm phù hợp và tải về.
- Giải nén và mở xampp
Sau khi giải nén xong mở xampp như hình:
Sau đó thực hiện thao tác đổi cổng trong 2 file httpd.conf như sau:
Mở file httpd.conf lên và tìm tới chữ #Listen 12.34.56.78:80
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích
Hình 3: Sơ đồ use case
Hình 4: Use case bán hàng
2.1.2 Chức năng nhân viên bán hàng
Hình 5:Use case nhân viên bán hàng
2.1.3 Chức năng nhân viên kho
2.1.4 Chức năng chủ cửa hàng
Hình 6: Use case chủ cửa hàng
- Mục đích: Đăng kí thành viên.
- Tác nhân: Khách vãng lai.
- Điều kiện: Kiểm tra thông tin nhập, nếu thông tin chính xác sẽ lưu vào cơ sở dữ liệu và thêm thông tin thành viên đó vào CSDL.
- Đầu vào: Tên đăng nhập, mật khẩu, họ tên, ngày sinh, địa chỉ, số điện thoại, email.
- Đầu ra: Đưa ra thông báo đã đăng kí thành công hoặc yêu cầu nhập lại nếu không hợp lệ
- Mục đích: Đăng nhập tài khoản.
- Điều kiện: Người dùng đã đăng ký tài khoản.
- Đầu vào: Email, mật khẩu.
- Đầu ra: Hiển thị các chức năng của thành viên, nhân viên bán hàng, nhân viên kho, quản trị viên.
2.2.3 Thay đổi thông tin thành viên
- Mục đích: Thay đổi thông tin.
- Điều kiện: Nếu đúng thông tin, thay đổi thành công.
- Đầu vào: Thành viên điền thông tin mới.
- Đầu ra: Thông tin mới của thành viên.
- Mục đích: Tìm kiếm sản phẩm.
- Tác nhân: Khách hàng, nhân viên bán hàng, nhân viên kho.
- Điều kiện: Lấy thông tin CSDL theo trường đã tìm kiếm.
- Đầu vào: Nhập tên sản phẩm cần tìm.
- Đầu ra: Thông tin sản phẩm cần tìm.
- Mục đích: Chọn những sản phẩm cần tìm kiếm.
- Điều kiện: Lấy thông tin từ CSDL mà khách hàng đã chọn vào giỏ.
- Đầu vào: Hiển thị thông tin về tên sản phẩm, ảnh, đơn giá, số lượng, thành tiền, tổng tiền của sản phẩm.
- Đầu ra: Thông tin tất cả sản phẩm khách hàng đã thêm vào giỏ hàng và tổng tiền.
- Mục đích: Các sản phẩm cần mua.
- Điều kiện: Lưu thông tin đơn hàng trong cơ sở dữ liệu.
- Đầu vào: Sau khi xem đơn hàng, khách hàng có nhu cầu đặt hàng thì nhấn nút đặt hàng để đặt hàng.
- Đầu ra: Đưa ra thông báo đặt hàng thành công cho khách hàng.
- Mục đích: Đăng nhập tài khoản người quản trị vào hệ thống.
- Tác nhân: Quản trị viên, nhân viên bán hàng, nhân viên kho.
- Điều kiện: Nhận thông tin đăng nhập từ Admin và nhân viên bán hàng, hệ thống sẽ kiểm tra thông tin, nếu đúng thì đăng nhập, sai thì nhập lại.
- Đầu vào: Email, mật khẩu.
- Đầu ra: Giao diện các chức năng đã được phân quyền.
2.2.8 Cập nhật thông tin thành viên
- Mục đích: Cập nhật thông tin.
- Tác nhân: quản trị viên.
- Điều kiện: Nếu đăng nhập thành công, có thể thêm thành viên mới hoặc sửa xóa thành viên cũ, phân quyền.
- Đầu vào: Thông tin thành viên.
- Đầu ra: Thông tin thành viên đã được thêm.
2.2.9 Cập nhật thông tin nhân viên
- Mục đích: Cập nhật thông tin.
- Tác nhân: quản trị viên.
- Điều kiện: Nếu đăng nhập thành công, có thể thêm thành viên mới hoặc sửa xóa nhân viên cũ, phân quyền.
- Đầu vào: Thông tin nhân viên.
- Đầu ra: thông tin nhân viên đã được cập nhật.
2.2.10 Cập nhật thông tin sản phẩm
- Mục đích: Cập nhật thông tin sản phẩm.
- Tác nhân: Nhân viên bán hàng.
- Điều kiện: Nếu đăng nhập thành công, có thể thêm sản phẩm mới hoặc sửa xóa sản phẩm cũ.
- Đầu vào: Thông tin sản phẩm.
- Đầu ra: Thông tin sản phẩm.
2.2.11 Cập nhật danh mục sản phẩm
- Tác nhân: Nhân viên bán hàng.
- Điều kiện: Nếu đăng nhập thành công, có thể thêm danh mục mới hoặc sửa xóa danh mục cũ.
- Đầu vào: Thông tin danh mục sản phẩm.
- Đầu ra: Thông tin danh mục sản phẩm.
2.2.12 Xem danh sách đơn hàng
- Mục đích: Xem danh sách hóa đơn bán hàng, chi tiết hóa đơn bán hàng.
- Tác nhân: Nhân viên kho.
- Điều kiện: Nhân viên bán hàng đăng nhập thành công, nhấn vào xem chi tiết rồi giải quyết đơn đặt hàng.
- Đầu vào: Danh sách hóa đơn bán hàng, chi tiết hóa đơn bán hàng.
- Đầu ra: thông tin hóa đơn bán hàng.
2.3.1 Sơ đồ hoạt động trang chủ
Hình 7: Sơ đồ hoạt động trang chủ
2.3.2 Sơ đồ hoạt động tìm kiếm
Hình 8: Sơ đồ hoạt động tìm kiếm
2.3.3 Sơ đồ hoạt động thêm vào giỏ hàng
Hình 9: Sơ đồ hoạt thêm vào giỏ hàng
2.3.4 Sơ đồ hoạt động đăng nhập
Hình 10: Sơ đồ hoạt động đăng nhập
2.3.5 Sơ đồ hoạt động đăng ký thành viên
Hình 71: Sơ đồ hoạt động đăng ký
Sinh viên: Lưu Văn Thanh 28
2.4.1 Sơ đồ tuần tự trang đăng nhập
Hình 82: Sơ đồ tuần tự đăng nhập
2.4.2 Sơ đồ tuần tự quá trình tìm kiếm
Hình 93: Sơ đồ tuần tự quá trình tìm kiếm
2.4.3 Sơ đồ tuần tự quá trình đặt hàng
Hình 14: Sơ đồ tuần tự quá trình đặt hàng
2.4.4 Sơ đồ tuần tự quá trình thêm hàng
Hình 105: Sơ đồ tuần tự quá trình thêm hàng
Sinh viên: Lưu Văn Thanh 32
Thiết kế hệ thống
3.1 Thiết kế cơ sở dữ liệu
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
5 social_id varchar(255) id đăng nhập fb
Bảng 3.1: Bảng dữ liệu user
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
6 active int(11) trạng thái hoạt động
Bảng 3.2: Bảng dữ liệu customer 3.1.3 Bảng danh mục sản phẩm
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
3 slug varchar(255) tên không dấu
4 status int(11) trạng thái danh mục
Bảng 3.3: Bảng dữ liệu danh mục sản phẩm
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
3 slug varchar(255) tên không dấu
4 status int(11) trạng thái loại sản phẩm
Bảng 3.4: Bảng dữ liệu loại sản phẩm 3.1.5 Bảng sản phẩm
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
2 name varchar(255) tên sản phẩm
3 slug varchar(255) tên không dấu
4 description text mô tả sản phẩm
7 promotional float giá khuyến mại
10 image varchar(255) ảnh minh họa
11 status int(11) trạng thái sản phẩm
Bảng 3.5: Bảng dữ liệu sản phẩm 3.1.6 Bảng đặt hàng
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
2 code_order varchar(1000) mã đơn hàng
4 name varchar(255) tên khách hàng
5 address varchar(255) địa chỉ khách hàng
6 email varchar(255) email khách hàng
7 phone varchar(255) số điện thoại
8 monney varchar(255) tổng tiền thanh toán
9 message text lời nhắn cho đơn hàng
10 status int(10) trạng thái duyệt hàng
3.1.7 Bảng chi tiết đặt hàng
STT Tên Trường Kiểu Dữ Liệu Khóa Mô Tả
4 name varchar(255) tên sản phẩm
Bảng 3.7: Bảng dữ liệu đặt hàng
KẾT QUẢ TRIỂN KHAI HỆ THỐNG WEBSITE
Trang chủ
Hình 17:Hình ảnh trang giao diên
Trang danh mục sản phẩm
Hình 1811: Hình ảnh trang danh mục sản phẩm
Trang giỏ hàng
Hình 1912:Hình ảnh trang giỏ hàng
Trang chi tiết sản phẩm
Hình 20: Hình ảnh trang chi tiết sản phẩm
Trang thanh toán
Hình 21:Hình ảnh trang thanh toán
Giao diện trang quản trị
Hình 22:Hình ảnh giao diện trang quản trị
Giao diện trang admin trang danh sách sản phẩm
- Đăng ký thành viên để có thể mua sản phẩm và thực hiện được nhiều chức năng khác trên website.
Khách hàng đã đăng ký thành viên:
- Tạo và cập nhập giỏ hàng.
- Theo dõi tình trạng đơn hàng.
- Cập nhập thông tin cá nhân như họ tên địa chỉ, số điện thoại, password…).
- Thanh toán khi nhận hàng.
- Nhân viên kho có thể cập nhật danh mục, loại sản phẩm.
- Nhân viên bán hàng có thể đưa sản phẩm lên trang web thông qua trang thêm sản phẩm do quản trị viên phân quyền.
- Cập nhật danh mục sản phẩm mới.
- Phân quyền cho các thành viên tùy theo công việc mà thực hiện các chức năng tương ứng của website.
- Xem được tất cả những gì mà nhân viện kho và nhân viên bán hàng xem được.
Nội dung đồ án bao gồm:
Chương I: Tổng quan đề tài
Chương II: Cơ sở lý thuyết
Chương III: Phân tích thiết kế hệ thống
Chương IV: Kết quả triển khai hệ thống website
CHƯƠNG II: CƠ SỞ LÝ THUYẾT
1 Ngôn ngữ lập trình PHP
PHP (viết tắt là: "P Hypertext Preprocessor", "Personal Home Page") 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ở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào 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.
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp.
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 PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay.
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người.
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997 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.
Lịch sử của các bản PHP:
- PHP/FI: ra đời năm 1994
- PHP/FI 2.0: ra đời năm 1997
- PHP 3.0: được tạo ra năm 1997 và đã chính thức được công bố vào tháng 6 năm 1998, sau 9 tháng được cộng đồng kiểm nghiệm.
- PHP 4: được công bố vào tháng 5 năm 2000
- PHP 5: sau hàng loạt bản thử nghiệm được nhà xản xuất công bố thì bản PHP 5.1 được họ công bố vào tháng 7 năm 2005.
- PHP 6 Phiên bản 6 này chỉ dùng ở việc nghiên cứu và thử nghiệm Sau đó PHP bỏ hẳn phiên bản 6 và lên 7.
- PHP 7 ở phiên bản này 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 trả về cho 1 hàm, thêm các toán tử mới.
Spring MVC là một module con trong Spring framework, cung cấp kiến trúc Model-View-Controller và các components sẵn có để sử dụng và phát triển ứng dụng web một cách linh hoạt.
Mô hình MVC là kết quả của việc tách các khía cạnh khác nhau của ứng dụng logic đầu vào, các xử lý logic, UI) trong khi đó cung cấp một sự kết hợp giữa các thành phần đó một cách “lỏng lẻo”.
Luồng xử lý các yêu cầu của DispatcherServlet được minh họa theo hình:
Hình 2:Luồng xử lý yêu cầu của DispastcherServlet Đây là chuỗi sự kiện tương ứng khi nhận một yêu cầu HTTP gửi đến DispatcherServlet:
Sau khi nhận một HTTP request, DispatcherServlet gửi yêu cầu đến HandlerMapping (một bản đồ cấu hình URL) để xác định controller nào sẽ xử lý yêu cầu này.
Controller sẽ nhận các request và gọi các phương thức dịch vụ (service methods) phù hợp dựa trên việc sử dụng các method GET/POST… Nếu yêu cầu đó cần truy xuất cơ sở dữ liệu thì Controller sẽ ủy nhiệm cho một business logic hay nhiều hơn một model để lấy thông tin và gửi dữ liệu về cho Controller Lúc này Controller đóng gói mô hình dữ liệu và tên của một view sẽ được tải lên thành đối tượng ModelAndView và gửi trả về cho DispathcherServlet
DispatcherServlet gửi gói Model ndView cho ViewResolver để tìm xem view (thông thường là một trang JSP, HTML) nào sẽ được load lên Sau khi hoàn tất, DispatcherServlet sẽ chuyển dữ liệu từ model đến view và cuối cùng hiển thị trên trình duyệt.
2.2 Các thành phần trong mô hình MVC
2.2.1 Model Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý…
2.2.2 View Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như textbox, images… Hiểu một cách đơn giản, nó là tập hợp các form hoặc các file HTML.
Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng… Chẳng hạn thành phần này sẽ nhận request từ url và form để thao tác trực tiếp với Model.
3 Hệ quản trị cơ sở dữ liệu 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 Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,…
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
Giao diện trang Admin khách hàng
Hình 25: Hình ảnh giao diện trang khách hàng