Các yêu cầu chức năng • Chức năng Đăng nhập cho Quản trị viên, khách hàng • Chức năng Đăng ký cho khách hàng chưa có tài khoản • Chức năng đổi mật khẩu cho tài khoản admin và khách hà
Khảo sát sơ bộ
Mục tiêu
Tìm hiểu những vấn đề, khó khăn khi quản lý hàng hóa, khách hàng, khâu vận chuyển, thanh toán, … trong sàn thương mại điện tử Shopee.
Đối tượng khảo sát
• Các nhân viên của gian hàng
• Khách hàng đã từng mua sắm tại gian hàng
Kết quả sơ bộ
Tổ chức hoạt động kinh doanh tại gian hàng bán đồ gia dụng trên sàn thương mại điện tử Shopee là một chuỗi hoạt động tập thể, đảm bảo sự liên kết chặt chẽ giữa các bộ phận để tối ưu hóa hiệu quả kinh doanh.
Các tài liệu thu thập được
Hình 1 Tổng quan và chi tiết
Hình 3 Phân tích bán hàng
Hình 4 Quản lý đơn hàng
Khảo sát chi tiết
Các chức năng chính của hệ ống thông tin quản lý th
+ Người mua chọn số lượng sản phẩm
+ Người mua chọn chức năng thêm vào giỏ hàng
+ Người mua truy cập vào màn hình giỏ hàng
+ Người mua chọn chức năng chuyển sang trang thanh toán
+ Người mua nhập thông tin cá nhân
+ Người mua chọn hình thức thanh toán
+ Hệ thống xử lý thanh toán
+ Hệ thống gửi thông báo thanh toán thành công đến người mua.
Xác định tác nhân và vai trò của tác nhân
• Tác nhân 1: Quản trị viên: là người có quyền quản lý toàn bộ hệ thống, bao gồm:
+ Thêm, chỉnh sửa, xóa sản phẩm
+ Xử lý các vấn đề phát sinh
• Tác nhân 2: Khách hàng: là người sử dụng hệ thống để mua sắm sản phẩm Khách hàng có thể thực hiện các hành động sau:
+ Thêm sản phẩm vào giỏ hàng
Vai trò của tác nhân là mô tả chức năng và trách nhiệm của tác nhân trong hệ thống.
Vai trò của Quản trị viên (Quản trị viên) bao gồm:
• Quản lý sản phẩm: thêm, chỉnh sửa, xóa sản phẩm
Vai trò của Khách hàng bao gồm:
• Mua sắm sản phẩm: tìm kiếm sản phẩm, thêm sản phẩm vào giỏ hàng, thanh toán mua hàng, đánh giá sản phẩm, yêu cầu hỗ trợ
Yêu cầu hệ thống
Các yêu cầu chức năng
• Chức năng Đăng nhập cho Quản trị viên, khách hàng
• Chức năng Đăng ký cho khách hàng chưa có tài khoản
• Chức năng đổi mật khẩu cho tài khoản admin và khách hàng
• Chức năng quản lý giỏ hàng và thanh toán mua hàng cho khách hàng
• Chức năng mua hàng cho khách hàng
Phân tích hệ thống sàn thương mại điện tử Shopee 16 2.1 Xác định các Actor và Usecase tổng quát của hệ thống
Xác định các Actor
1 Quản trị viên 1 Chức năng đăng nhập
Bảng 1 Danh sách các tác nhân và các chức năng
STT Tác nhân Mô tả tác nhân Chức năng
Quản trị viên (người chủ shop, ) • Đăng nhập
Khách hàng Khách hàng tìm kiếm mua sản phẩm
• Mua hàng Đặt hàngBảng 2 Danh sách các chức năng chi tiết
Usecase tổng quát của hệ thống
Các Usecase chức năng của hệ thống
Hình 14 Biểu đồ Usecase của chức năng đăng nhập
• Đặc tả Usecase đăng nhập
Tác nhân Quản trị viên, Khách hàng
Mục đích Cho phép người dùng truy cập vào hệ thống. Điều kiện tiên quyết
Người dùng đã có tài khoản.
Mô tả chung Tất cả các trường hợp trong giao diện đăng nhập bao gồm: Email,
Password đều là trường hợp bắt buộc Nếu bỏ trống, hệ thống sẽ hiện thông báo lỗi không được để chống.
2 Tích chọn vào Đăng nhập đối với Khách hàng và chọn Kênh người bán đối với Quản trị viên.
3 Hiển thị form đăng nhập.
4 Nhập thông tin đăng nhập (Email, Password).
5 Gửi thông tin đăng nhập tới hệ thống.
6 Kiểm tra thông tin đăng nhập, nếu đúng thì cho phép truy cập hệ thống, nếu sai thì thông báo lỗi và yêu cầu nhập lại.
Ngoại lệ 1 Hệ thống thông báo thông tin đăng nhập chưa đầy đủ.
2 Hệ thống thông báo thông tin đăng nhập bị sai.
3 Hệ thống thông báo đăng nhập thất bại.
Các yêu cầu đặc biệt
Bảng 3 Đặc tả Usecase Đăng nhập
- Đặc tả Usecase Đổi mật khẩu
Tác nhân Quản trị viên, Khách hàng
Mục đích Thay đổi lại mật khẩu cho tài khoản. Điều kiện tiên quyết
Người dùng đã có tài khoản và đăng nhập vào hệ thống.
Mô tả chung Chức năng này dành cho cả quản trị viên và khách hàng.
Luồng sự kiện 1 Tại trang chủ chọn Đăng nhập đối với Khách hàng và Kên người bán đối với Quản trị viên.
2 Hiển thị form đăng nhập.
3 Nhập thông tin đăng nhập (Email, Password).
4 Gửi thông tin đăng nhập tới hệ thống.
5 Kiểm tra thông tin đăng nhập nếu đúng thì cho phép truy cập, nếu sai thì báo lỗi và yêu cầu nhập lại.
6 Kích vào mục Người dùng, sau đó chọn Cài đặt > Chọn - Tài khoản & Bảo mật > Đổi mật khẩu.-
7 Màn hình đổi mật khẩu hiển thị.
8 Nhập thông tin và gửi yêu cầu đến hệ thống.
9 Kiểm tra thông tin nếu hợp lệ thì thông báo sửa thành công và lưu vào cơ sở dữ liệu.
Ngoại lệ 1 Hệ thống thông báo sửa thất bại.
2 Hệ thống thông báo không được để trống.
Bảng 4 Đặc tả Usecase Đổi mật khẩu2.2.2 Chức năng mua hàng
Hình 15 Biểu đồ Usecase của chức năng quản lý giỏ hàng và mua hàng
• Đặc tả Usecase quản lý giỏ hàng và mua hàng
• Đặc tả Usecase Mua hàng
Mục đích Khách hàng đặt mua sản phẩm Điều kiện tiên quyết Đăng nhập thành công vào website.
Mô tả chung Chức năng này dùng cho khách hàng để tạo mới đơn hàng khi đặt hàng.
Luồng sự kiện 1 Truy cập vào website.
6 Xác nhận địa điểm, phương thức thanh toán.
Ngoại lệ Hệ thống thông báo là chưa chọn sản phẩm nào.
Đặc tả các lớp
Tên thuộc tính Mô tả Kiểu Phạm vi idKhachHang Mã khách hàng Int
Bài viết này đề cập đến các thông tin quan trọng của khách hàng, bao gồm địa chỉ (String), số điện thoại (Int), họ tên (String), ngày sinh (Date), giới tính (String), tên đăng nhập (String), email (String) và mật khẩu (String) Những thông tin này là cần thiết để quản lý và xác thực tài khoản khách hàng một cách hiệu quả.
Tên phương thức Mô tả Giá trị trả về Phạm vi dangnhap() Đăng nhập tài khoản khách hàng
Tài khoản khách hàng được đăng nhập thành công. getKHÁCHHANG() Lấy thông tin thành viên khách hàng
Thông tin thành viên khách hàng đã được lấy thành công Chức năng đổi mật khẩu tài khoản khách hàng hoạt động hiệu quả, và việc đổi mật khẩu đã hoàn tất thành công.
Bảng Đặc tả lớp KHACHHANG6 2.4.2 Lớp SANPHAM (Sản phẩm)
Tên thuộc tính Mô tả Kiểu Phạm vi idSanPham Mã sản phẩm Int tenSanPham Tên sản phẩm String moTa Mô tả String
23 donGia Đơn giá Int anhSanPham Ảnh sản phẩm String tinhTrang Tình trạng String soLuong Số lượng String
Tên phương thức Mô tả Giá trị trả về Phạm vi getSANPHAM() Lấy thông tin sản phẩm
Thông tin sản phẩm được lấy thành công capnhatsanpham() Cập nhật thông tin sản phẩm
Thông tin sản phẩm được cập nhật thành công
Kiemtrasoluongcon()Kiểm tra số lượng còn lại của sản phẩm
Hiển thị số lượng còn lại của sản phẩm Đoạn khung mã cho lớp
Bảng Đặc tả lớp SANPHAM7 4.2.3 Lớp Quản trị viên
Tên lớp QUẢN TRỊ VIÊN
Trong cơ sở dữ liệu quản lý, các thuộc tính quan trọng bao gồm: IdQuanTriVien là mã định danh của quản trị viên (kiểu Int), tenDangNhap là tên đăng nhập (kiểu String), matKhau là mật khẩu (kiểu String), hoTen là họ tên của quản trị viên (kiểu String), và diaChi là địa chỉ liên lạc (kiểu String).
Tên phương thức Mô tả Giá trị trả về Phạm vi dangnhap() Đăng nhập Tài khoản quản trị viên đăng nhập thành công
24 getQUANTRIVIEN Lấy thông tin quản trị viên
Thông tin quản trị viên được lấy thành công Đoạn khung mã cho lớp
Bảng Đặc tả lớp QUANTRIVIEN8 2.4.4 Lớp GIOHANG (Giỏ hàng)
Thuộc tính "idGioHang" đại diện cho mã giỏ hàng với kiểu dữ liệu số nguyên (Int) "idSanPham" là mã sản phẩm, cũng được định nghĩa dưới dạng số nguyên "idKhachHang" là mã khách hàng, thuộc kiểu số nguyên "donGia" thể hiện đơn giá của sản phẩm dưới dạng số thực (Float) "soLuong" chỉ số lượng sản phẩm trong giỏ hàng, được định nghĩa là số nguyên "ngayThem" ghi lại ngày thêm sản phẩm vào giỏ hàng với kiểu dữ liệu ngày (Date) Cuối cùng, "tinhTrang" mô tả tình trạng của giỏ hàng và được lưu trữ dưới dạng chuỗi (String).
Tên phương thức Mô tả Giá trị trả về Phạm vi themSanPham()Thêm sản phẩm vào giỏ hàng
Sản phẩm được thêm vào giỏ hàng thành công. xoaSanPham() Xóa sản phẩm khỏi giỏ hàng
Sản phẩm được xóa khỏi giỏ hàng thành công tinhTien() Tính tiền Số tiền các sản phẩm trong giỏ hàng được trả về Đoạn khung mã cho lớp
Biểu đồ tuần tự
2.5.1 Biểu đồ tuần tự Đăng nhập
Hình 17 Biểu đồ tuần tự Đăng nhập Đặc tả:
1.Khách hàng (hoặc Admin) đăng nhập vào hệ thống.
2 Khách hàng (hoặc Admin) nhập tài khoản và mật khẩu.
3.Khách hàng (hoặc Admin) click chọn “Đăng nhập”.
4.Hệ thống xử lý thông tin về tài khoản và mật khẩu.
5.Nếu hợp lệ sẽ thông báo đăng nhập thành công đưa người dùng tới trang chủ.
6 Nếu sai hệ thống thông báo lỗi, yêu cầu người dùng đăng nhập lại.
Thông tin tài khoản hoặc mật khẩu sai, hệ thống hiển thị thông báo lỗi.
2.5.2 Biểu đồ tuần tự Đổi mật khẩu
Hình 18 Biểu đồ tuần tự Đổi mật khẩu Đặc tả:
1 Khách hàng (hoặc Admin) đăng nhập vào hệ thống.
2 Khách hàng (hoặc Admin) nhập thông tin Email và mật khẩu.
3 Hệ thống kiểm tra thông tin Email và mật khẩu mà người dùng vừa nhập.(Nếu sai hiển thị thông báo lỗi yêu cầu người dùng nhập lại.)
4 Khách hàng (hoặc Admin) click mục “Người dùng”.
5 Khách hàng (hoặc Admin) chọn “Cài đặt”.
6 Khách hàng (hoặc Admin) chọn “Tài khoản và bảo mật”.
7 Khách hàng (hoặc Admin) chọn “Đổi mật khẩu”.
8 Khách hàng (hoặc Admin) nhập thông tin hệ thống yêu cầu
9 Hệ thống kiểm tra thông tin.
10 Thông tin hợp lệ: xác nhận thay đổi mật khẩu thành công.
11 Thông tin không hợp lệ: hệ thống báo lỗi, người dùng nhập lại thông tin. +Ngoại lệ:
Để đảm bảo hệ thống hoạt động hiệu quả, thông tin về mật khẩu, email và mật khẩu mới cần phải chính xác và đáp ứng các yêu cầu của hệ thống Nếu không, người dùng sẽ nhận được thông báo lỗi và phải nhập lại thông tin.
Hình 19 Biểu đồ tuần tự Mua sản phẩm Đặc tả:
1.Khách hàng đăng nhập tài khoản.
2.Khách hàng click chọn biểu tượng giỏ hàng.
3.Khách hàng tích chọn các sản phẩm cần mua.
4.Khách hàng nhấn chọn “Mua hàng”.
5 Nhập thông tin mua hàng mà hệ thống yêu cầu.
6 Khách hàng xác nhận “Đặt hàng”.
7.Hệ thống kiểm tra lại thông tin đặt hàng.
7.Thông tin chính xác, hệ thống thông báo đơn hàng đã đặt thành công.
8.Thông tin sai, hệ thống báo lỗi yêu cầu khách hàng nhập lại thông tin sai.
Khách hàng nhập sai thông tin mua hàng, hệ thống báo lỗi yêu cầu nhập lại thông tin.
2.6 Biểu đồ hoạt động của các chức năng
2.6.1 Biểu đồ hoạt động Đăng nhập
Hình 20 Biểu đồ hoạt động Đăng nhập 2.6.2 Biểu đồ hoạt động Mua sản phẩm
Hình 21 Biểu đồ hoạt động Mua hàng
2.7.1 Biểu đồ trạng thái lớp KHACHHANG – Đăng nhập
Hình 22 Biểu đồ trạng thái lớp KHACHHANG/QUANTRIVIEN – chức năng Đăng nhập 2.7.2 Biểu đồ trạng thái lớp GIOHANG – Thêm sản phẩm vào giỏ hàng
Hình 23 Biểu đồ trạng thái lớp GIOHANG – chức năng Thêm sản phẩm vào giỏ hàng Chương III hiết kếT hệ thống sàn thương mại ện tửđi Shopee
Thiết kế hệ thống sàn thương mại điện tử Shopee 29 3.1 Thiết kế lớp
Thiết kế giao diện và kịch bản
Trang này cung cấp tất cả thông tin quan trọng của website, cho phép bạn thực hiện mọi công việc mong muốn bằng cách nhấp vào các mục tương ứng, từ đó chương trình sẽ dẫn bạn đến các trang phù hợp với yêu cầu của bạn.
Thanh menu ngang hiển thị tất cả các nội dung chính của website, bao gồm mục "Kênh người bán", nơi quản lý các sản phẩm của người bán như thêm, xóa và sửa giá sản phẩm.
+ Trở thành người bán Shopee: Đây là mục giúp cho những người mới muốn đăng ký trở thành người bán hàng trên website
+ Tải ứng dụng: Giúp tải ứng dụng về máy người dùng
+ Kết nối: Giúp liên kết với các tài khoản mạng xã hội khác như FB, Instagram + Chọn ngôn ngữ
+ Đăng ký, Đăng nhập: Khách hàng có thể dễ dàng đăng ký và đăng nhập vào hệ thống
+ Thanh tìm kiếm: Giúp khách hanghf có thể tìm được những mặt hàng ưng ý như về giá, mẫu mã, nơi gửi,
+ Giỏ hàng: Hiển thị những sản phẩm khách hàng đã cho vào giỏ hàng và chờ được thanh toán
• Ở giữa Trang thì sẽ hiển thị:
+ Các sự kiện SALE của sản đối với khách hàng
+ Có các mục sản phẩm như: quần áo, giày dép, đồ công nghệ giúp khách hàng chọn sản phẩm theo nhu cầu
+ Hiển thị các sản phẩm mà khách hàng đã tìm kiếm trước đó để đỡ mất thời gian tìm kiếm của khách hàng
3.2.2 Trang đăng ký khách hàng
• Để trở thành thành viên website cũng như bạn hàng của công ty thì khách hang phải đăng kí tài khoản Bao gồm :
+ Đăng ký bằng số điện thoại, facebook và google
+ Nhập mã OTP để xác nhận đăng ký
+ Sau khi nhập mã OTP thành công thì nhập thông tin cá nhân rồi đăng ký
3.2.3 Trang đăng nhập a Đối với khách hàng
- Đây là trang đăng nhập khách hàng vào trang web rồi có thể chọn và thanh toán các đơn hàng
Trang đăng nhập bao gồm:
Hoặc là các trang mạng xã hội khác như là FB và google
Sau đó sẽ được đưa đến trang chủ của hệ thống b Đối với quản trị viên
Để đăng nhập vào tài khoản người bán, bạn chỉ cần chọn kênh người bán ở góc trên bên trái và thực hiện các bước tương tự như khi đăng nhập với tài khoản khách hàng.
3.2.4 Trang đổi mật khẩu a Đối với khách hàng
• Để đổi mật khẩu thì chúng ta vào phần trang cá nhân của khách hàng
• Sau đó chọn vào phần đổi mật khẩu ở thanh menu bên trái
• Sau đó sẽ được yêu cầu xác nhận lại tài khoản trước khi đổi mật khẩu
• Rồi tiếp tục nhập mật khẩu mới
35 b Đối với quản trị viên
Để đổi mật khẩu cho tài khoản quản trị viên, bạn cần chọn “Thiết lập shop” từ thanh menu bên trái, tương tự như cách thực hiện đối với khách hàng.
• Sau đó chọn Tài khoản rồi đổi mật khẩu
• Trang này giúp shop có thể quản lý được các mặt hàng của shop theo ý muốn ví dụ như xoá, thêm, sửa, cập nhật giá,
• Xem các chỉ số của shop trong các giai đoạn thông qua thanh menu ở bên trái
• Khách hàng truy cập trang web sau đó đăng nhập Sau khi đăng nhập thành công thì sẽ đi tìm những món đồ mà khách hàng có nhu cầu
• Chọn được món đồ sau đó chọn các size, màu Rồi nhấn vào đặt hàng
• Tiếp đó sẽ chuyển đến trang giỏ hàng để tiếp tục các bước thanh toán như: chọn phương thức thanh toán, địa chỉ nhận hàng,
• Sau khi nhập đầy đủ thông tin thì sẽ thanh toán được đơn hàng
Thiết kế CSDL
3.3.1 Xác định tập thực thể và thuộc tính của tập thực thể
3.3.1.1 Tập thực thể QUẢN TRỊ VIÊN (QTV)
STT THUỘC TÍNH KIỂU DỮ LIỆU KHÓA MÔ TẢ
1 ID_QTV Int PK ID QTV
2 tenDangNhap Nvarchar (150) Tên đăng nhập
5 soDienThoai Int Số điện thoại
Bảng 1 Tập thực thể QTV03.3.1.2 Tập thực thể KHACHHANG (Khách hàng)
STT THUỘC TÍNH KIỂU DỮ LIỆU KHÓA MÔ TẢ
1 idKhachHang Int PK Mã Khách hàng
9 soDienThoai Int Số điện thoại
Bảng 1 Tập thực thể KHACHHANG1 3.3.1.3 Tập thực thể GIOHANG (Giỏ hàng)
STT THUỘC TÍNH KIỂU DỮ LIỆU KHÓA MÔ TẢ
1 idGioHang Int PK Mã Giỏ hàng
2 idKhachHang Int FK Mã Khách hàng
3 idSanPham Int FK Mã Sản phẩm
8 ngayTaoDon Date Ngày tạo đơn
Bảng 1 Tập thực thể GIOHANG2 3.3.1.4 Tập thực thể SANPHAM (Sản phẩm)
STT THUỘC TÍNH KIỂU DỮ LIỆU KHÓA MÔ TẢ
1 idSanPham Int PK Mã Sản phẩm
2 tenSanPham Nvarchar (150) Tên sản phẩm
Bảng 1 Tập thực thể SANPHAM33.3.2 Lược đồ quan hệ
3.3.3 Thiết kế truy nhập cho các bảng
Các câu lệnh truy nhập CSDL phục vụ hoạt động các chức năng
SELECT KH.Email, KH.Password FROM KHACHHANG as KH
WHERE KH.Email = 'abc@gmail.com' and KH.Password = '123456'
UPDATE SANPHAM SET Dongia = '350.000' WHERE MaSP = 03;
DELETE FROM SANPHAM WHERE maSP = 02;
Biểu đồ tuần tự
3.4.1 Biểu đồ tuần tự Đăng nhập
Hình 32 Biểu đồ tuần tự Đăng nhập
3.4.2 Biểu đồ tuần tự Mua hàng
Biểu đồ triển khai
3.6.1 Biểu đồ triển khai phần cứng
Hình 35 Biểu đồ triển khai phần cứng 3.6.2 Biểu đồ triển khai phần mềm
Hình 36 Biểu đồ triển khai phần mềm Chương IV Cài đặt ứng dụng Shopee
4.1 Cài đặt cơ sở dữ liệu
4.1.1 Hệ quản trị cơ sở dữ liệu: Access
Cài đặt ứng dụng Shopee 43 4.1 Cài đặt cơ sở dữ liệu
Cài đặt giao diện ở Access
Cài đặt các lớp thực thể
4.3.1 Thực thể GIOHANG class GioHang(Base):
MaGH = Column(Integer, primary_key=True)
# Thuộc tính tính toán (computed property)
@property def thanh_tien(self): return self.Soluong * self.Dongia
# Tạo một đối tượng GioHang và chèn vào cơ sở dữ liệu gio_hang = GioHang(
# Truy cập thuộc tính tính toán print(f"Thành tiền: {gio_hang.thanh_tien}")
4.3.2 Thực thể KHACHHANG class KhachHang(Base):
MaKH = Column(Integer, primary_key=True)
# Thuộc tính tính toán (computed property) def thong_tin_day_du(self): return f"{self.Hoten} - {self.Gioitinh} - {self.Email}"
# Tạo một đối tượng KhachHang và chèn vào cơ sở dữ liệu khach_hang = KhachHang(
# Truy cập thuộc tính tính toán print(f"Thông tin đầy đủ: {khach_hang.thong_tin_day_du}")
4.3.3 Thực thể QUANTRIVIEN class QuanTriVien(Base):
tablename = 'QUANTRIVIEN' class QuanTriVien(Base):
ID_QTV = Column(Integer, primary_key=True)
# Thuộc tính tính toán (computed property) def thong_tin_day_du(self): return f"{self.Hoten} - {self.Username}"
#Tạo một đối tượng QuanTriVien và chèn vào cơ sở dữ liệu quan_tri_vien = QuanTriVien(
# Truy cập thuộc tính tính toán print(quan_tri_vien.thong_tin_day_du)
4.3.4 Thực thể SANPHAM class SanPham(Base):
MaSP = Column(Integer, primary_key=True)
# Thuộc tính tính toán (computed property)
@property def thong_tin_san_pham(self):