�Khách hàng truy cập vào trang chủcủa website sau đó hệthống chuyển sang trang đăng nhập, hệthống sẽkiểm tra thông tin đăng nhập nếu thông tin đăng nhập sai thì hệthống sẽbáo lỗi, còn nế
Trang 1Đồán tốt nghiệp CNTT
N
ĐẠI HỌC ĐÀ NẴNGTRƯỜNG ĐẠI HỌC SƯPHẠM KỸTHUẬT
KH A ĐIỆN – BỘMÔN CNTT
���
Đềtài:
BÁO CÁO ĐỒÁ N CÔNG NGHỆTHÔNG TIN
Trang 2Em xin gởi lời cảm ơn sâu sắc đến PGS.TS Võ Trung Hùng là người đã tận tình hướng dẫn và giúp đỡem trong quá trình làmđồán tốt nghiệp.
Đồng thời, em cũng xin cảm ơn gia đình và bạn bè đã không ngừng cổvũ, động viên, góp ý em trong suốt quá trình học tập cũng như trong thời gian làm đồ án.
Trong quá trình làmđồán, không tránh khỏi những thiếu sót Mong Thầy Cô thông cảm và góp ý thêm.
Em xin chân thành cảm ơn!
Đà Nẵng, ngày 4 tháng 1 năm 2020
SVTH
HọtênTrần Minh Hùng
Trang 3LỜI CAM ĐOAN
Em xin cam đoan:
Những nội dung trong báo cáo này là do em thực hiện dưới sựhướng dẫn trực tiếp của Thầy Võ Trung Hùng
Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả, têncông trình, thời gian, địa điểm công bố
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu hoàn toàn trách nhiệm
Đà Nẵng, ngày 4 tháng 1 năm 2020
SVTH
HọtênTrần Minh Hùng
Trang 4NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 5
Đà Nẵng, ngày … tháng … năm 2013
Trang 6LỜI CẢM ƠN 2
LỜI CAM ĐOAN 3
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 4
MỞ ĐẦU 8
1 Lý do chọn đềtài 8
2 Mục đích đềtài 8
3 Phạm vi sửdụng 8
4 Phương pháp nghiên cứu và lựa chọn công nghệ 8
4.1 Phương pháp nghiên cứu: 8
4.2 Công nghệ 9
5 Các kết quảdựkiến đạt được 9
CHƯƠNG 1 : CƠ SỞLÝ THUYẾT 10
1 Tổng quan vềcông nghệ 10
1.1 Khái niệm vềJAVA 10
1.2 khái niệm vềSQL SERVER 10
1.3 khái niệm vềcông nghệMVC 12
1.4 Khái niệm vềframework Bootstrapứng dụng vào làm giao diện website 13
a Lịch sửphát triển 13
b Versions 14
CHƯƠNG 2 : PHÂN TÍCH THIẾT KẾHỆTHỐNG 15
2 Phân tích 15
3 Quản trịviên 15
4 Khách hàng 16
5 Sơ đồUSE-CASE 16
6.1 Đăng nhập 17
6.2 Đăng ký 17
6.2 Quản lí sản phẩm 18
6.3 Xem lịch sửbán hàng 20
6.4 Quản lí User 20
6.5 Quản lí đánh giá sản phẩm 20
6.6 Quản lí order 20
6.7 Quản lí giỏhang 20
6.8 Quản lí thông tin cá nhân 20
Trang 76.9 Xem lịch sửmua 22
6.10Đánh giá sản phẩm 22
7 Sơ đồERD tổng thể 23
8.Cấu trúc bảng và ràng buộc 24
9.Sơ đồRelationships 29
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH 31
1.Giao diện người dùng 31
CHƯƠNG 4: KẾT LUẬN 38
1 Kết quả đạt được 38
2 Ưu điểm và hạn chế 38
3.Hướng phát triển 38
Trang 8MỞ ĐẦU
1 Lý do chọn đềtài
Hiện nay thời đại công nghệthông tin đang và được phát triển rất mạnh, việckinh doanh online qua các trang web là một thếmạnh và thuận lợi cho việc pháttriển kinh doanh
Bán hàng qua websi te nó tiện lợi cho cảngười mua hàng dễdàng lựa chọn mặt hàng yêu thích hoặc kiểm tra nó còn hàng hay không , mà không tốn thời gian đến tận cửa hàng còn vềnhà kinh doanh thuận lợi cho việc mởrộng thịtrường và quảng bá thương hiệu của mình …
- Quản lí giỏhàng: Cho phép thêm, xóa, sửa sản phẩm trong giỏhàng
- Quản lí bán hàng: Cho phép truy xuất lịch sửmua bán của khách hàng
- Quản lí comment: Cho phép thêm, xóa, sửa comment
- Tìm kiếm sản phẩm: Tìm kiếm theo tên , tìm kiếm theo loại
3 Phạm vi sửdụng
Bao gồm tất cảmọi người có nhu cầu mua hoặc kinh danh online và tất cả người sửdụng internet
4 Phương pháp nghiên cứu và lựa chọn công nghệ
4.1 Phương pháp nghiên cứu:
- Tìm hiểu trên các hệthống bán hàng trực tuyến đã có
- Phân tích, thiết kếcơ sởdữliệu cho hệthống bán hàng trực tuyến
Trang 94.2 Công nghệ:
- Ngôn ngữlập trình JAVA
- Hệquản trịcơ sởdữliệu SQL SERVER
- Lý do chọn JAVA và SQL SERVERđểxây dựng hệthống là vì cả2 đều là
mã nguồn mởvàđặc biệt giá thành của nó là miễn phí
5 Các kết quảdựkiếnđạt được
- Sẽxây dựng một trang web bán hàng online trực tuyến đơn giản và đầy đẩy những tính năng cơ bản như : đặt hàng, thêm giỏhàng ,đánh giá sản phẩm và tìm kiếm theo giá đơn giá theo thểloại theo tên, theo dõiđơn hàng
- Admin sẽcó các chức năng của quản lí như thêm sửa xóa sản phẩm, duyệtđơn hàng, xem doanh sách sản phẩm còn, tổng doanh thu, xuất hóa đơn
Trang 10CHƯƠNG 1 : CƠ SỞLÝ THUYẾT
1.1 Khái niệm vềJAVA
� Java là một ngôn ngữlập trình và nền tảng tính toán được phân phối lần đầu tiên bởi Sun Microsystems vào năm 1995 Rất nhiềuứng dụng, trang web đều được viết bằng Java Java nhanh, bảo mật và đáng tin cậy
�Java là một ngôn ngữlập trình hướng đối tượng (OOP) và dựa trên các lớp (class)
�Trước đây, Java chạy chậm hơn những ngôn ngữdịch thẳng ra mãmáy như C và C++, nhưng sau này nhờcông nghệ“biên dịch tại chỗ”– Just in time compilation, khoảng cách này đãđược thu hẹp, và trongmột sốtrường hợp đặc biệt Java có thểchạy nhanh hơn Java chạy nhanh hơn những ngôn ngữthông dịch như Python, Perl, PHP gấp nhiều lần
�SQL SERVER 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ìnhphát triểnứng dụng Vì SQL 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, SQL rất thích hợp cho cácứng dụng có truy cập CSDL trên internet SQL miễn phí hoàn toàn cho nên bạn có thểtải vềSQL 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,…
�SQL SERVER 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)
�SQL SERVERđược sửdụng cho việc bổtrợJAVA, PHP, Perl, và
nhiều ngôn ngữkhác, nó làm nơi lưu trữnhững thông tin trên các trang web viết bằng JAVA, PHP hay Per…
Trang 11�Tốc độ: SQL SERVER rất nhanh Những nhà phát triển cho rằngSQL là cơ sởdữliệu nhanh nhất mà bạn có thểcó.
�Dễsửdụng: SQL SERVER tuy có tính năng cao nhưng thực sựlà mộthệthống cơ sởdữliệu rất đơn giản và ít phức tạp khi cài đặt và quảntrịhơn các hệthống lớn
�Giá thành: SQL SERVER là miễn phí cho hầu hết các việc sửdụngtrong một tổchức
�Hỗtrợngôn ngữtruy vấn: SQL SERVER hiểu SQL, là ngôn ngữcủasự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 SQL SERVER bằng cách sửdụng cácứng dụng mà hỗtrợODBC (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 SQL SERVER tương tá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: SQL SERVERđượ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: SQL SERVER chạy trên nhiều hệthống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS/2 SQL SERVER 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: SQL SERVER 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à SQL
SERVER hỗtrợ Cộng đồng SQL SERVER 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
Trang 12ngày, thậm chí có khi trong vài giờvà cách khắc phục đó sẽngay lậptức có sẵn trên Internet.
�Sửdụng mô hình MVC (Model – View – Controller) đểviết web với ngôn ngữjava
�Công việc mà 3 phần của mô hình MVCđảm nhận
�Model là lớp chứa thông tin đối tượng (dữliệu), tương tác với
Database
�View là giao diện củaứng dụng tương tác với người dùng
�Controller nhận yêu cầu từngười dùng, nếu dính đến dữliệu thì gọi Model xửlý, bảo Model làm xong việc phải báo cáo, trảkết quảvề cho anh Sau đó anh chỉviệc đưa kết quảcho chịView đểchịnàyhiển thịlên cho người dùng thấy (Có thểnói người dùng chỉbiết đếnchịView thôi, chịlà bộmặt của mộtứng dụng, Model hay Controllerkhông hềtồn tại trong mắt người dùng)
�Mô hình MVC
Trang 131.4 Khái niệm vềframework Bootstrapứng dụng vào làm giao diện website
�Bootstrap là một framework cho phép thiết kếwebsite reponsive nhanh hơn
và dễdàng hơn
�Bootstrap bao gồm các HTML templates, CSS templates và Javascript tao ra những cái cơ bản có sẵn như: typography, forms, buttons, tables, navigation,modals, image carousels và nhiều thứkhác Trong bootstrap có thêm các plugin Javascript trong nó Giúp cho việc thiết kếreponsive của bạn dễdàng hơn và nhanh chóng hơn
1.4.1 Lịch sửphát triển và versions của Bootstrap
a.Lịch sửphát triển
�Bootstrap ban đầu được đặt tên là Twitter Blueprint, được phát triển bởi
Mark Otto và Jacob Thornton tại Twitter nhằm tính nhất quán giữa các công
cụ nội bộ Trước đây Bootstrap, được phát triển giao diện bẳng cách sử dụngcác thư viện khác nhau, dẫn đến sự không nhất quán và gánh nặng bảo trì cao
Trang 14Jacob Thornton và một nhóm nhỏ các nhà phát triển cốt lõi, cũng như một cộng đồng lớn của những người đóng góp.
�Vào ngày 31 tháng 1 năm 2012, Bootstrap 2 đãđược phát hành, bổ sung hỗ trợtích hợp cho Glyphicons, một số thành phần mới, cũng như thay đổi đối vớinhiều thành phần hiện có Phiên bản này hỗ trợ đáp ứng thiết kế web
Điều này có nghĩa là bố cục của các trang web điều chỉnh linh hoạt, có tính đến các đặc điểm của thiết bị được sử dụng (máy tính để bàn, máy tính bảng, điện thoại diđộng)
�Phiên bản chính tiếp theo, Bootstrap 3, được phát hành vào ngày 19 tháng 8 năm 2013 Nó được thiết kế lại các thành phần để sử dụng thiết kế phẳng và cách tiếp cận di động đầu tiên.Vào ngày 29 tháng 10 năm 2014, Mark Otto
đã thông báo rằng Bootstrap 4 đang được phát triển Phiên bản beta đầu tiên được phát hành vào ngày 10 tháng 8 năm 2017 Phiên bản ổn định của
Bootstrap 4 được phát hành vào ngày 18 tháng 1 năm 2018 về cơ bản cải thiện các kiểu in và tiện ích viền và cũng cung cấp thêm quyền kiểm soát đốivới flexbox
b.Versions
Trang 15CHƯƠNG 2 : PHÂN TÍCH THIẾT KẾHỆTHỐNG
�Website quản lí bán hàng trực tuyến được xây dựng chủyếu phục vụcho đối tượng sau : Chủshop, người dùng khách, người dùng
�Giao diện đơn giản, dễsửdụng
� Ngôn ngữtiếng Việt
oQuản lí thành viên : Quản trịviên chọn menu “Quản lý thành viên” hệ thống sẽhiễn thịdanh sách thành viên, khi quản trịviên chọn menu
“Thêm mới thành viên” sẽhiển thịcác các TextBox nhập mới thông tin thành viên nhưMaND, HoTen, TenTk, MatKhau, SDT, Email, DiaChi, Quyen,sau khi nhập xong nhấn nút “Cập nhật” đểthêm thànhviên vào hệthống Quản trịviên có thể“xóa , cập nhật thông tin, tìm kiếm’’ thành viên trong hệthống
oQuản lí sản phẩm : Quản trịviên chọn menu “Quản lý sản phẩm” hệ thống sẽhiễn thịdanh sách sản phẩm, khi quản trịviên chọn menu
“Thêm mới sản phẩm” sẽhiển thịcác TextBox nhập mới thông tin sản phẩm như TenSP, Anh, TenTacGia, NamXB, LoaiSP,
Gia,SoLuongCon, SoLuong, sau khi nhập xong nhấn nút “Cập nhật” đểthêm sản phẩm vào hệthống Quản trịviên có thể“xóa , cập nhật thông tin, tìm kiếm’’ sản phẩm trong hệthống
Trang 16oQuản lí đặt hàng : Quản trịviên có thểduyệt đơn hàng , quản lí lịch sử mua của khách hàng.
oQuản lí đánh giá, bình luận: Quản trịviên có thểduyệt bình luận
……
�Khách hàng truy cập vào trang chủcủa website sau đó hệthống chuyển sang trang đăng nhập, hệthống sẽkiểm tra thông tin đăng nhập nếu thông tin đăng nhập sai thì hệthống sẽbáo lỗi, còn nếu chưa có tài khoản thì hệthống báo đăng ký tào khoản còn nếu hệthống kiểm tra thông tin chính xác sẽbáo đăng nhập thành công, sau khi đăng nhập thành công khách hàng có thểthựchiện các chức năng :
oQuản lí tài khoản: Khách hàng chọn menu “cập nhật thông tin cá nhân
‘’ hệthống sẽhiễn thịcác TextBox cập nhập thông tin khách hàng nhưHoTen TenTk, MatKhau, Email, SDT, DiaChi sau khi nhập xongnhấn nút “Cập nhật” đểthêm thành viên vào hệthống
oQuản lí giỏhàng: Thêm sửa xóa sản phẩm trong giỏhàng của mình.oQuản lí bình luận , đánh giá: Thêm, sửa, xóa bình luận, đánh giá của mình
oTìm kiếm sản phẩm : Tìm kiếm theo tên sản phẩm, tìm kiếm theo loại sản phẩm
Trang 17Hình 2.1 Sơ đồuse-case
�Đặc tảtừng use-case trong sơ đồ, gồm các bước mô tả, input, process ( xửlý của hệthống) và output Hình phát thảo giao diện
6.1Đăng nhập
�Use-Case: Tác vụnày dành cho Admin, User, khi muốn bắt đầu làm việc với hệthống
�Input: Thông tin đăng nhập gồm tên đăng nhập và mật khẩu
�Process: Hệthống sẽkiểm tra tên đăng nhập, mật khẩu và roles của người dùng
�Output: Trang thông báo lỗi nếu người dùng nhập thiếu hoặc nhập sai Nếuđăng nhập đúng thì chuyển đến trang phù hợp với quyền đãđăng nhập
Hình 2.2 Giao diện đăng nhập6.2Đăng ký
�Use-Case: Tác vụnày dành cho User, khi muốn bắt đầu làm việc với hệ
thống
�Input: Thông tin đăng ký gồm id_user, username, password, full_name,
telephone, id_card, address, email
�Process: Hệthống sẽkiểm tra thông tin của người dùng đã nhập đủvà
đúng,telẹpone chỉ được nhập sốvà phair nhập đúng 10 số, email phải đúng theo chuẩn,id_card phải nhập đúng 9 sốhoặc chữ, yêu cầu chưa nếu chưa thì yêu cầu nhập lại
�Output: Trang thông báo lỗi nếu người dùng nhập thiếu hoặc nhập sai Nếuđăng kýđúng thì chuyển đến trang phù hợp với quyền đãđăng ký
Trang 18Hình 2.3 Giao diện đăng ký
6.2Quản lí sản phẩm
�Use-Case: Tác vụnày dành cho Admin
�Input: Tác vụnày gồm thêm, sửa, xóa và tìm kiếm sản phẩm
�Process: Hệthống sẽkiểm trađãđăng nhập và có được quyền sửdụng hay không
�Output: Trang thông báo lỗi nếu người dùng chưa đăng nhập hoặc không đúng vài trò Nếuđãđăng nhập đúng thì chuyển đến trang phù hợp với quyền đãđăng nhập
Trang 19Hình 2.4 Giao diện thêm sản phẩm
Hình 2.5 Giao diện sửa sản phẩm
Trang 206.3Xem lịch sửbán hàng
�Use-Case: Tác vụnày dành cho Admin
�Input: Thông tin yêu cầu xem lịch sửbán hàng
�Process: Hệthống sẽkiểm tra ăng nhập , quyền của người dùng
�Output: Trang thông báo lỗi nếu người dùng chưa đăng nhập hoặc khôngđươch quyên Nếu đãđăng nhập đúng thì chuyển đến trang phù hợp.6.4Quản lí User
�Use-Case: Tác vụnày dành cho Admin
�Input: Tác vụnày gồm thêm, sửa, xóa và tìm kiếm user
�Process: Hệthống sẽkiểm tra đăng nhập, quyền của người dùng
�Output: Trang thông báo lỗi nếu người dùng chưa đăng nhập hoặc khôngđủquyền Nếu đăng nhập đúng thì chuyển đến trang phù hợp
6.5Quản lí đánh giá sản phẩm
�Use-Case: Tác vụnày dành cho Admin
�Input: Quản lí thêm sửa xóa đánh giá sản phẩm
�Process: Hệthống sẽkiểm tra đăng nhập, quyền của người dùng
�Output: Trang thông báo lỗi nếu người dùng chưa đăng nhập hoặc khôngđủquyền Nếuđăng nhậpđúng thì chuyển đến trang phù hợp
6.6Quản lí order
�Use-Case: Tác vụnày dung cho Admin
�Input: Quản lí và duyệt Order
�Process: Hệthống sẽkiểm tra đăng nhập và quyền của người dùng
�Output: Trang thông báo lỗi nếu người dùng chưa đăng nhập hoặc khôngđủquyền Nếu đăng nhập đúng thì chuyển đến trang phù hợp
6.7Quản lí giỏhang
�Use-Case: Tác vụnày dành cho User
�Input: Tác vụnày gồm thêm, xóa và tìm kiếm sản phẩm trong giot hàng
�Process: Hệthống sẽkiểm tra đăng nhập của người dùng
�Output: Trang thông báo lỗi nếu người dùng chưa đăng nhập Nếu đăng nhập đúng thì chuyển đến trang phù hợp
6.8Quản lí thông tin cá nhân
�Use-Case: Tác vụnày dành cho User