Phát biểu bài toán Quản trị viên: Quản trị viên truy cập vào trang quản trị 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 t
Trang 10 ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐHSP KỸ THUẬT KHOA ĐIỆN – BỘ MÔN CNTT
Đà Nẵng, tháng 9/2021
Trang 2SVTH: Trần Đăng Vũ 1
LỜI CẢM ƠN
Em xin chân thành cảm ơn các Thầy Cô trong Tổ bộ môn Công nghệ Thông tin của Trường Đại Học Sư Phạm Kỹ Thuật là những người đã hết lòng dạy dỗ và truyền đạt những kiến thức quý báu cho em trong suốt thời gian học tập
Em xin gởi lời cảm ơn sâu sắc đến TS.Hoàng Thị Mỹ Lệ 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 27 tháng 09 năm 2021
Trang 3SVTH: Trần Đăng Vũ 2
LỜ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 cô Hoàng Thị Mỹ Lệ
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ên cô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 tháng 09 năm 2021
Trang 6SVTH: Trần Đăng Vũ 5
MỤC LỤC
Lời cảm ơn 1
Lời cam đoan 2
Nhận xét giáo viên hướng dẫn 3
Chương 1 – Tổng Quan Đề Tài 7
1 Giới thiệu chung 7
1.8 Nội dung nghiên cứu 8
1.9 Kế hoạch thực hiện đề tài 8
Chương 2 – Cơ Sở Lý Thuyết 1 Tổng quan về công nghệ 10
Trang 72 Hướng phát triển đề tài 47
3 Bài học rút ra từ quá trình thực hiện đồ án 48
Tài Liệu Tham Khảo
Trang 8SVTH: Trần Đăng Vũ 7
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
I Giới thiệu chung 1.2 Tên đề tài: Xây dựng website bán sách trực tuyến 1.3 Lý do chọn đề tài
Hiện nay, các công nghệ tiên tiến phát triển ngày càng mạnh mẽ và được ứng dụng ngày càng nhiều vào các lĩnh vực kinh tế, sản xuất cũng như đời sống thường nhật của con người Một điểm tiêu biểu trong việc phát triển các công nghệ đó phải kể đến việc ứng dụng công nghệ thông tin vào hầu khắp các hoạt động Nhờ đó, các công việc được thực hiện nhanh, chính xác và đạt kết quả cao hơn rất nhiều
Cùng với các lý do nêu trên, qua tìm hiểu nhóm đồ án được biết việc ứng dụng bán sách trực tuyến sẽ giúp cho khách hàng giảm bớt được thời gian và công sức phải đến tận cửa hàng để mua Muốn lựa chọn cho mình một cuốn sách ưng ý phù hợp với túi tiền thì khách hàng chỉ cần ngồi bên chiếc máy tính có nối mạng internet là có thể mua được mặt hàng điện thoại mình cần
Do đó em chọn thực hiện đề tài “Wesbite bán sách” Xây dựng với định hướng giúp việc mua sắm Sách của khách hàng dễ dàng và nhanh gọn hơn, không mất thời gian và công sức
Qua quá trình khảo sát thực tế, tìm hiểu và phân tích thiết kế em đưa ra bản báo cáo gồm các phần sau để giúp người đọc hiểu rõ về chức năng của Website
Trang 9SVTH: Trần Đăng Vũ 8
1.5 Phạm vi sử dụng
Tất cả người sử dụng internet đều có thể sử dụng được Dành cho tất cả các shop bán sách nhỏ và vừa
1.6 Phương pháp nghiên cứu
Tìm hiểu trên các website trực tuyến đã có Phân tích, thiết kế cơ sở dữ liệu cho webiste trực tuyến Nghiên cứu giải pháp bán hàng hợp lý thuận tiện cho mọi người sử dụng
1.7 Công nghệ
- Ngôn ngữ lập trình: PHP - Framework: Laravel - Hệ quản trị cơ sở dữ liệu: MySQL
Lý do chọn Laravel và MySQL để 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í
1.8 Nội Dung Nghiên Cứu:
- Nghiên cứu lý thuyết về PHP,Framework Laravel, hệ quản trị cơ sở dữ liệu Mysql, HTML, CSS, JavaScript,Ajax,Bootstrap
- Xây dựng giao diện đơn giản, dễ nhìn, dễ sử dụng - Xây dựng các chức năng thông dụng, dễ sử dụng và hiệu quả - Xây dựng trang quản trị (Admin) và trang người dùng - Xậy dựng chức năng thanh toán online: Qua VNPay
1.9 Kế hoạch thực hiện đề tài
1 Tìm hiểu,khảo sát đề tài và mục
2 Phân tích và thiết kế CSDL 3 tuần 3 Thiết kế giao diện website 2 tuần 4 Xây dựng website bằng laravel 4 tuần
Trang 10SVTH: Trần Đăng Vũ 9
5 Kiểm thử và nhập dữ liệu 1 tuần 6 Hoàn chỉnh báo cáo tốt nghiệp 2 tuần
Trang 11SVTH: Trần Đăng Vũ 10
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
1 Tổng quan về công nghệ Laravel
Laravel được viết trên môn hình MVC (Model, View, Controller), khái quát về mô hình MVC minh sẽ có một bài viết để nói rõ hơn về mô hình này Laravel có rất nhiều tính năng nhưng trong giới hạn bài viết này mình sẽ nêu ra một số tính năng chính
• Modularity: Như mình đã giới thiệu, laravel được xây dựng từ hơn 20 thư
viện nổi tiếp của PHP hiện nay, và trong bản thân nó cũng được chia modul một cách rất rõ ràng và khoa học, với những dự án lớn Laravel hỗ trợ chúng ta chia dự án ra làm những modul nhỏ giúp dự án được quản lí dễ dàng hơn
• Testability: Đôi với một lập trình viên hiện nay, code sản phẩm chạy được
vẫn là chưa đủ, chúng ta phải thực hiện test trên từng dòng code của mình và đảm bảo nó chạy đúng như logic và code của mình code sẽ không ảnh hưởng đến những phần khác Đừng lo nhé, Laravel hỗ trợ các bạn rất tốt trong việc này, khi đến bài về test mình sẽ nói kĩ hơn
• Routing: Laravel cung cấp cho chúng ta cách khai báo một route trong dự án
cực kì đơn giản và mềm dẻo, với các phương thức như GET, POST, PUT, DELETE
• Configuration Management: Một dự án khi chúng ta phát triển thường nó sẽ
được chạy ở nhiều môi trường khác nhau như Local ( máy tính làm việc), server test, server staging, server production … với những môi trường khác nhau thì các thông số config sẽ khác nhau, một ví dụ điển hình nhất là thông số về database Laravel cho phép chúng ta làm việc này rất dễ dàng bằng việc tạo ra 1 file env (Environment) để chúng ta cấu hình các thông số lên trên đó
• QueryBuilder and ORM: Đây là 2 tính năng cực kì quan trọng trong laravel,
nó cho phép chúng ta làm việc với CSDL một cách dễ dàng, cung cấp các câu truy vấn ngắn gọn để lấy dự liệu Nó làm việc được với nhiều cơ sở dự liệu khác nhau như PostgreSQL, SQLite, Mysql and SQL Server
• Schema builder, migration and seeding: Đây là các tính năng cho phép các
bạn định nghĩa cấu trúc database trong code khi làm việc với Laravel, các bạn có thể tạo table, xoá table, tạo cột, xoá cột mọi thao tác đều được thực hiện trên code và được quản lý rất khoa học Tính năng Seeding cung cấp cho chúng ta tạo ra các dữ liệu mẫu trong database
• Template Engine: Laravel sử dụng Blade cho phần view của mình, với Blade
chúng ta có thể show dữ liệu và khai báo các câu điều khiển ở trên view một cách dễ dàng
• E-Mailing: Laravel cung cấp cho chúng ta thư viện để có thể gủi email trong
dự án, hầu như tính năng này đểu có ở tất cả các dự án, Ngoài ra nó cũng hỗ trợ chúng ta làm việc với các mail service như SendGrid, Mailgun and Mandrill
Trang 12SVTH: Trần Đăng Vũ 11
• Authentication: Đây là một tính năng hầu như bắt buộc phải có ở tất cả các
dự án, Laravel đã cung cấp sẵn cho chúng ta toàn bộ các tính năng liên quan đến authentication như login, logout, register, forgot password chúng ta chỉ việc sử dụng mà không cần phải làm lại các tính năng này
• Redis: Đây là phương thức cache dữ liệu giúp cho website chúng ta chạy
nhanh hơn và ít truy vấn vào Database hơn, mình sẽ có một bài viết nói sâu hơn về tính năng này
• Event and command bus: Tính năng cho phép chúng ta bắt các sự kiện xảy
ra trong ứng dụng của mình
• Queues: Laravel tương thích với nhiều dịch vụ queues như Amazon SQS,
Beanstalkd and IronMQ
2 Các thành phần trong Laravel
Client User, Route, View, Controller, Model
3 Cách xây dựng ứng dụng Laravel…
Trang 13SVTH: Trần Đăng Vũ 12
CHƯƠNG 3:PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1 Phát biểu bài toán Quản trị viên:
Quản trị viên truy cập vào trang quản trị 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 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 quản trị viên có thể thực hiện các chức năng:
• Quả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ư họ tên, ngày sinh, mật khẩu, giới tính, địa chỉ, số điện thoại liên lạc sau khi nhập xong nhấn nút “Cập nhật” để thêm thành viên vào hệ thống và phân quyền cho thành viên
• Quản lý Sách: Quản trị viên chọn menu “Quản lý sách” hệ thống sẽ hiễn
thị danh sách Nhà xuất bản, Tác Giả, Thể loại sách,Sách Khi quản trị viên chọn menu “thêm nhà xuất bản, tác giả, thể loại sách, sách” sẽ hiển thị các các TextBox để nhập mới, nội dung sản phẩm, loại sản phẩm, sau khi nhập xong nhấn nút “Cập nhật” để thêm danh mục sản phẩm vào hệ thống
• Quản lý đơn hàng: Quản trị viên chọn menu “Quản lý đơn hàng” hệ
thống sẽ hiễn thị danh sách đơn hàng, khi quản trị viên chọn menu “quản lý đơn hàng” sẽ hiển thị các TextBox để quản lý đơn hàng, nội dung mã
đơn hàng, tên khách hàng, địa chỉ,số điện thoại,email,ghi chú • Quản lý thống kê: Quản trị viên chọn “Thống kê” hệ thống sẽ hiển thị
danh sách Hàng tôn kho, Tiền Lãi,khi quản trị viên chọn Hàng Tồn Kho sẽ hiển thị các textbox, tên sách, số lượng đặt hàng, tổng, số lượng còn lại khi quản trị viên chọn Tiền lãi sẽ hiển thị các textbox thống kê tiền lãi của sản phẩm
• Quản Lý Blog: Quản trị viên chọn “Blog” hệ thống sẽ hiển thị các blog đã được viết và quản trị viên thể thêm blog cho website của mình
Trang 14• Tạo tài khoản: Khách hàng chọn “đăng ký tài khoản” hệ thống sẽ hiển
thị cho khách hàng những thông tin để khách hàng có thể đăng ký tài khoản cho mình
• Xem blog sản phẩm: Khách hàng chọn “blog sản phẩm” hệ thống sẽ
hiển thị các blog viết về cuốn sách đó
• Xem chi tiết sản phẩm: Khách hàng chọn “xem chi tiết sản phẩm” hệ
thống sẽ hiển thị chi tiết sản phẩm đó từ giá khuyến mãi tới nội dung cuốn sách
• Đặt hàng: Khách hàng chọn “đặt hàng” hệ thống sẽ hiển thị tiền sản
phẩm đó và tổng tiền giỏ hàng
• Giỏ hàng: Khách hàng chọn “giỏ hàng” hệ thống sẽ hiển thị các sản
phẩm bạn muốn mua và tổng tiền giỏ hàng đó khách hàng có thể thêm, sửa, xóa sản phẩm trong giỏ hàng
• Thanh toán: Khách hàng chọn “thanh toán” hệ thống sẽ hiển thị các
bước nhập thông tin đặt hàng và khách hàng có thể chọn phương thức thanh toán COD Hoặc VNPay
2 Sơ đồ Use-Case
Trang 15SVTH: Trần Đăng Vũ 14
Hình 2.1 Sơ đồ use-case
3 Đặc tả Use-Case và sơ đồ ERD cục bộ
1 Use case đăng nhập
- Đối tượng sử dụng (actor) bao gồm: khách hàng - Use case này mô tả các bước đăng nhập của các actor vào hệ thống - Các bước thực hiện:
• Hệ thống yêu cầu actor cung cấp thông tin đăng nhập gồm tên đăng nhập và mật khẩu
• Actor nhập xong thông tin đăng nhập và click nút đăng nhập • Hệ thống check lại thông tin đăng nhập và thông báo thành
công/thất bại cho actor Nếu đăng nhập thành công hệ thống dựa trên thông tin đăng nhập sẽ đồng thời phân quyền tùy theo loại nhân viên Nếu đăng nhập thất bại, hệ thống sẽ hiện thông báo cho người dùng và yêu cầu đăng nhập lại
2 Use case Đăng xuất
- Đối tượng sử dụng (Actor) bao gồm các thành viên trong use case đăng nhập
- Use case này mô tả việc đăng xuất khỏi hệ thống - Các bước thực hiện:
• Actor thực hiện chức năng đăng xuất khỏi hệ thống • Hệ thống hiển thị yêu cầu xác nhận từ actor
• Actor dùng xác nhận đăng xuất
Trang 16SVTH: Trần Đăng Vũ 15
• Hệ thống đăng xuất tài khoản actor khỏi hệ thống Nếu Actor không xác nhận đăng xuất thì hệ thống sẽ giữ nguyên hiện trạng
3 Usecase hủy đơn hàng
- Đối tượng sử dụng (Actor) bao gồm các thành viên trong use case đăng nhập
- Use case này mô tả việc hủy đơn hàng trong hệ thống - Các bước thực hiện
• Actor cần đăng nhập vào hệ thống • Actor chọn món hàng, hoặc đơn hàng mình muốn hủy • Actor xác nhận hủy
6 Usecase quản lý blog Website
- Đối tượng sử dụng (Actor) Admin trong use case đăng nhập
- Usecase này mô tả việc đăng tải các tin tức về website - Các bước thực hiện
• Actor đăng nhập vào hệ thống • Actor vào trang tin tức của website • Chỉnh sửa, thêm các blog
• Xác nhận chỉnh sửa, thêm
7 Usecase quản lý khuyến mãi
- Đối tượng sử dụng (Actor) Admin trong use case đăng nhập - Usecase này mô tả việc đăng tải cập nhật các khuyến mãi của các
sản phẩm - Các bước thực hiện
Trang 17SVTH: Trần Đăng Vũ 16
• Actor đăng nhập vào hệ thống • Actor vào trang khuyến mãi của website • Chỉnh sửa, thêm các sự kiện khuyến mãi
• Xác nhận chỉnh sửa, thêm
9 Usecase quản lý sách - Đối tượng sử dụng (Actor) Admin trong use case đăng nhập - Usecase này thêm sản phẩm sách vào trong website
- Các bước thực hiện
• Actor đăng nhập vào hệ thống • Actor vào trang sách của website • Thêm tên sách, ngày sản xuất, hình ảnh, tác giả, nhà sản xuất, thể
loại, số lượng , giá nhập vào, giá nhập bán ra, giá khuyến mãi, mô tả sản phẩm
• Xác nhận thêm sản phẩm
10 Usecase quản lý nhà xuất bản
- Đối tượng sử dụng (Actor) Admin trong usecase đăng nhập - Usecase này thêm nhà xuất bản vào trang admin
- Các bước thực hiện • Actor đăng nhập vào hệ thống • Actor vào trang nhà sản xuất của website • Thêm tên nhà xuất bản, hình ảnh, địa chỉ, mô tả
11 Usecase quản lý tác giả - Đối tượng sử dụng (Actor) Admin trong usecase đăng nhập
- Usecase này thêm tác giả vào trang admin - Các bước thực hiện
• Actor đăng nhập vào hệ thống
Trang 18SVTH: Trần Đăng Vũ 17
• Actor vào trang tác giả của website • Thêm tên tác giả, hình ảnh, địa chỉ, mô tả
4 Sơ Đồ Hoạt Động
4.1 Sơ đồ hoạt động đăng ký
4.2 Sơ đồ hoạt động đăng nhập
Trang 19SVTH: Trần Đăng Vũ 18 4.3 Sơ đồ hoạt động thêm giỏ hàng
Trang 20SVTH: Trần Đăng Vũ 19
Trang 21SVTH: Trần Đăng Vũ 20
Trang 22SVTH: Trần Đăng Vũ 21 4.6 Sơ đồ hoạt động quản lý đơn hàng
Trang 23SVTH: Trần Đăng Vũ 22
4.6 Sơ đồ hoạt động thanh toán
5 Sơ đồ tuần tự
Trang 24SVTH: Trần Đăng Vũ 23
5.1.Sơ đồ tuận tự đăng nhập
Trang 264 email_verified_at Varchar(255) Not null Xác minh email
Trang 27SVTH: Trần Đăng Vũ 26 Table: khach_hang
Table: don_hang
Trang 28SVTH: Trần Đăng Vũ 27
Table: chi_tiet_don_hang
Table: sach
8 Tac_gia Varchar(255) Foreign, not null Tác giả 9 Nha_xuat_ban Varchar(255) Foreign,not null Nhà XB
Trang 29SVTH: Trần Đăng Vũ 28
Table: nha_xuat_ban
2 Ten_nha_xuat_ban Nvarchar(255) Not null Tên NXB
Table: tac_gia
2 Ten_tac_gia Nvarchar(255) Not null Tên tác giả
Trang 30SVTH: Trần Đăng Vũ 29
Table: danh_muc_sach
Table: the_loai_sach
Table: gio_hang
Trang 31SVTH: Trần Đăng Vũ 30 Table: blog
Trang 32SVTH: Trần Đăng Vũ 31
CHƯƠNG 4: XÂY DỰNG WEBSITE
1 Giao diện trang chủ người dùng
Hình 3.1 Giao diện trang chủ người dùng
Trang 33SVTH: Trần Đăng Vũ 32
Hình 3.2 Giao diện trang sản phẩm
Trang 34SVTH: Trần Đăng Vũ 33
Hình 3.3 Trang Chi tiết sản phẩm
Trang 35SVTH: Trần Đăng Vũ 34
Hình 3.3 Giỏ Hàng
Trang 36SVTH: Trần Đăng Vũ 35
Hình 3.4 Thanh Toán Bằng COD
Trang 37SVTH: Trần Đăng Vũ 36
Hình 3.5 Thanh Toán Online VNPay
Hình 3.6 Xác Thực OTP
Trang 38SVTH: Trần Đăng Vũ 37
3.7 Lịch sử đặt hàng
Trang 39SVTH: Trần Đăng Vũ 38
Hình 3.3 Giao diện trang đăng ký thành viên
Trang 40SVTH: Trần Đăng Vũ 39
Hình 3.3 Giao diện trang đăng nhập thành viên