You are on page 1of 95

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN 2


----------

BÁO CÁO CUỐI KÌ


Đề tài: Website bán trà sữa Phúc Long
- Môn học: Phân tích và thiết kế hệ thống thông tin (INT1342)
- Giảng viên hướng dẫn : ThS. Dương Thanh Thảo
- Nhóm: 09
- Thành viên: N20DCCN034 - Vũ Văn Lâm
N20DCCN035 - Trần Gia Long
N20DCCN036 - Nguyễn Phúc Luân
N20DCCN062 - Đặng Thành Tân
N20DCCN073 - Phạm Đức Thắng

Thành phố Hồ Chí Minh, ngày 21 tháng 01 năm 2024.


Mục lục
Chương I: Xác định yêu cầu hệ thống................................................................................................1
1. Mô hình hoạt động, work flow của hệ thống............................................................................1
2. Mô tả yêu cầu hệ thống...............................................................................................................2
2.1. Xác định tác nhân và hoạt động của tác nhân..................................................................2
2.2. Quan hệ giữa các tác nhân.................................................................................................3
2.3. Bảng thuật ngữ ...................................................................................................................4
2.4. Yêu cầu chức năng..............................................................................................................4
2.5. Yêu cầu phi chức năng.......................................................................................................6
2.6. Xác định và xây dựng usecase............................................................................................7
2.7. Xây dựng biểu đồ hoạt động............................................................................................26
2.8. Xây dựng biểu đồ tuần tự.................................................................................................34
Chương II: Phân tích hệ thống.........................................................................................................38
1. Mô tả phân tích hệ thống..........................................................................................................38
1.1. Các đối tượng tham gia vào hệ thống..............................................................................38
1.2. Xác định quan hệ giữa các đối tượng..............................................................................38
1.3. Thông tin cơ bản của các đối tượng................................................................................40
2. Xác định và xây dựng biểu đồ lớp...........................................................................................41
3. Xác định và xây dựng biểu đồ trạng thái................................................................................60
Chương III: Thiết kế hệ thống..........................................................................................................63
1. Thiết kế kiến trúc hệ thống......................................................................................................63
2. Các công nghệ ứng dụng trong hệ thống................................................................................65
2.1. Ngôn ngữ lập trình C#......................................................................................................65
2.2. Ngôn ngữ lập trình Java...................................................................................................66
2.3. Microsoft SQL Server.......................................................................................................67
2.4. Bootstrap............................................................................................................................68
2.5. JavaScript..........................................................................................................................68
2.6. Docker................................................................................................................................69
3. Thiết kế cơ sở dữ liệu................................................................................................................70
3.1. Xác định thực thể..............................................................................................................70
3.2. ERD....................................................................................................................................71
3.3. Lược đồ quan hệ dữ liệu...................................................................................................71
3.4. Từ điển dữ liệu..................................................................................................................73
3.5. Diagram.............................................................................................................................86
3.6. Lược đồ phân rã hệ thống con.........................................................................................86
3.7. Thiết kế một số giao diện người dùng chính...................................................................87
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Chương I: Xác định yêu cầu hệ thống.

1. Mô hình hoạt động, work flow của hệ thống.


Biểu đồ: Workflow của hệ thống

Biểu đồ: Workflow của hoạt động bán hàng

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2. Mô tả yêu cầu hệ thống.


2.1. Xác định tác nhân và hoạt động của tác nhân.

STT Các tác nhân Các hoạt động của tác nhân
tham gia

1 Khách hàng Đăng ký tài khoản.

Tìm kiếm, chọn món, đặt hàng online qua web, thanh toán
bằng ví/ tiền mặt/ chuyển khoản, theo dõi trạng thái đơn,
nhận sản phẩm từ đối tác vận chuyển.

2 Nhân viên Xác nhận đơn hàng, xuất hoá đơn giấy, chuyển yêu cầu
duyệt đơn cho bộ phận pha chế.

3 Nhân viên pha Lấy yêu cầu pha chế, pha chế đồ uống, đóng gói, cập nhật
chế trạng thái hoàn thành đơn hàng chuyển hàng cho đối tác
vận chuyển.

4 Quản lý kho Kiểm tra tồn kho, đặt nguyên liệu từ nhà cung cấp, lập
phiếu nhập hàng, báo cáo tình trạng tồn kho/ nguyên liệu
sử dụng.

5 Quản lý cửa Quản lý thông tin nhân viên, sản phẩm, nguyên liệu, công
hàng thức chế biến, voucher, đối tượng liên quan như size, loại
sản phẩm, báo cáo doanh thu bán hàng theo ngày, tháng,
năm. Ngoài ra, quản lý còn có thể quản lý giá các sản
phẩm thông qua bảng giá.

6 Admin (Quản Quản lí các tài khoản khách hàng và nhân viên: khóa, reset
trị hệ thống) mật khẩu, thay đổi phân quyền.

7 Đối tác vận Nhận đơn hàng, xác nhận giao hàng thành công.
chuyển (grab,
nowfood, …)

8 Nhà cung cấp Cung cấp danh sách nguyên liệu, báo bảng giá cho quản lý
kho và xử lí yêu cầu nhập nguyên liệu.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

9 Hệ thống thanh Xử lý, xác thực hoặc hoàn trả thanh toán cho khách hàng
toán mua hàng tại website.

10 Người dùng Đăng nhập, đăng xuất, đổi mật khẩu, sử dụng quên mật
khẩu, thay đổi thông tin cá nhân.

2.2. Quan hệ giữa các tác nhân.


Biểu đồ: Quan hệ nhân viên.

Biểu đồ: Quan hệ người dùng.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.3. Bảng thuật ngữ .


STT Tiếng Anh Tiếng Việt Nội dung
1 Customer Khách hàng Là người dùng đăng nhập website Phúc Long
để mua trà sữa hoặc các sản phẩm khác.
2 Staff Nhân viên Là người đang làm việc tại quán trà sữa Phúc
Long. Các nhân viên đăng nhập vào hệ thống
để thực hiện một số tác vụ.
3 Inventory Quản lý kho Là nhân viên của quán trà sữa Phúc Long
Manager được giao cho nhiệm vụ trực kho, kiểm tra
hàng tồn, liên hệ với nhà cung cấp để thêm
hàng, nguyên liệu cho quán.
4 Manager Quản lý Còn được gọi là quản lý quán/ quản lý cửa
hàng. Là người quản lý hiện thời của quán trà
sữa Phúc Long.
5 Admin Người quản Là người được tín nhiệm để giao cho vai trò
trị hệ thống quản lý mọi tài khoản trong hệ thống.
6 Supplier Nhà cung Là người cung cấp các nguyên liệu cho quán.
cấp
7 Shipper Người giao Là người đại diện cho một bên đối tác vận
hàng chuyển để giao hàng cho khách hàng (grab,
nowfood)
8 Size Kích thước Kích thước của ly nước: S, M, L hoặc Không
nếu là sản phẩm không phải đồ uống
9 Cart Giỏ hàng Nơi chứa các sản phẩm mà người dùng dự
định mua trên website
10 Payment Hệ thống Là hệ thống bên thứ 3 liên quan về vấn đề
System thanh toán thanh toán tiền điện tử được tích vào website
nhằm phục vụ thanh toán online cho khách
hàng.

2.4. Yêu cầu chức năng.


- Đăng nhập: Người dùng là khách hàng hoặc nhân viên đăng nhập vào hệ thống.
Hệ thống thông báo không thành công khi tài khoản người dùng đã bị khóa.
- Đăng ký: Khách hàng tự đăng ký tài khoản trên website bằng cách cung cấp các
trường thông tin cá nhân của mình. Đảm bảo ngày sinh không lớn hơn hiện tại,
trường mật khẩu được nhập hai lần để đảm bảo mật khẩu đúng ý muốn của người
dùng.Ngoài ra, đối với nhân viên của Phúc Long thì việc đăng ký tài khoản nhân
viên do quản lý lúc thêm nhân viên. Trong trường hợp nhân viên muốn sử dụng
website với vai trò khách hàng thì phải tự đăng ký tài khoản khách hàng trên
website.
- Quên mật khẩu: Trong trường hợp người dùng quên mật khẩu có thể cung cấp
email liên kết với tài khoản của mình để nhận về mật khẩu đã reset.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

- Đăng xuất: Người dùng sẽ thoát khỏi hệ thống, hệ thống không hiển thị thông tin
tài khoản, và người dùng không thể thực hiện các tác vụ trong website ngoài xem
món.
- Sửa mật khẩu: Người dùng có thể thay đổi mật khẩu của tài khoản đã đăng nhập.
- Thay đổi thông tin cá nhân: Khi đã đăng nhập, người dùng có thể thay đổi thông
tin cơ bản như: họ, tên, giới tính, địa chỉ, số điện thoại, email.
- Quản lý tài khoản:
+ Reset mật khẩu: Admin reset mật khẩu của một hoặc tất cả tài khoản, mật khẩu
khi reset phải gửi email thông báo cho người dùng (chủ tài khoản đó).
+ Đổi quyền: Admin đổi quyền của người dùng.
+ Khóa/ mở khóa tài khoản: Admin có thể khóa và mở khóa tài khoản của khách
hàng hoặc nhân viên.
- Quản lý nhân viên: Quản lý có thể thêm/ xóa/ sửa thông tin nhân viên. Khi thêm
nhân viên, tài khoản của nhân viên được tạo tự động với mật khẩu 123, khi xóa
nhân viên, nếu nhân viên đó đã thực thi các tác vụ liên quan đến giấy tờ như lập
phiếu nhập hàng, đơn đặt nguyên liệu thì khóa tài khoản nhân viên và không xóa
thông tin nhân viên đó.
- Quản lý sản phẩm: Quản lý có thể thêm/ xóa/ sửa thông tin sản phẩm.
- Quản lý nguyên liệu: Quản lý có thể thêm/ xóa/ sửa thông tin nguyên liệu.
- Quản lý voucher: Quản lý có thể thêm/ xóa/ sửa thông tin voucher.
- Quản lý size: Quản lý có thể thêm/ xóa/ sửa thông tin các size của sản phẩm.
- Quản lý loại: Quản lý có thể thêm/ xóa/ sửa thông tin loại sản phẩm.
- Quản lý công thức pha chế: Quản lý có thể thêm/ xóa/ sửa thông tin công thức
pha chế đồ uống.
- Quản lý giá: Quản lý có thể tạo các loại bảng giá khác nhau và áp dụng vào
từng thời điểm khác nhau của sản phẩm.
- Bán hàng:
+ Chọn món: Khách hàng tìm kiếm và chọn sản phẩm muốn mua, nhập số
lượng, thông tin sản phẩm cùng số lượng sẽ được lưu trữ trong giỏ hàng của mỗi
khách hàng.
+ Đặt hàng: Khách hàng tiến hành đặt hàng những món hàng có trong giỏ hàng
và cung cấp địa chỉ, chọn phương thức thanh toán: bằng tiền mặt hoặc chuyển
tiền online. Nếu chuyển tiền online, hệ thống thanh toán tiến hành xác thực tài

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

khoản và trả về số dư. Điểm tích lũy của khách hàng sẽ được tính sau khi giao
thành công.
- Cập nhật đơn: Nhân viên duyệt đơn xác nhận thông tin đơn hàng và cập nhật
trạng thái đã xác nhận của đơn hàng hoặc hủy đơn hàng, hoàn tiền khi khách hàng
đã thanh toán. Sau khi nhân viên pha chế nhận thông tin, pha chế và xác nhận
trạng thái hoàn thành sau khi pha chế xong. Đối tác vận chuyển nhận và cập nhật
trạng thái đã giao sau khi giao thành công.
- Gửi đơn đặt nguyên liệu: Nhân viên kho lập đơn đặt nguyên liệu gửi nhà cung
cấp.
- Báo giá: Nhà cung cấp gửi bảng giá của từng nguyên liệu yêu cầu cho cửa
hàng.
- Lập phiếu nhập hàng: Nhân viên kho lập phiếu nhập hàng dựa theo nguyên liệu
nhận được từ nhà cung cấp.
- Thống kê nguyên liệu: Nhân viên kho thống kê báo cáo nguyên liệu sử dụng và
in báo cáo gửi bộ phận kế toán.
- Thống kê doanh thu: Quản lý thống kê doanh thu theo ngày, tháng, năm của cửa
hàng và in báo cáo gửi bộ phận kế toán.
2.5. Yêu cầu phi chức năng.
- Các thiết kế chức năng được phân bố đúng đắn, rõ ràng, phím nóng phổ thông.
Đảm bảo người không chuyên về công nghệ vẫn có thể dễ dàng sử dụng.
- Hệ thống thông báo lỗi một cách tường minh, tránh gây hiểu lầm cho người
dùng.
- Hệ thống hiển thị chức năng đúng như phân quyền cấp phép cho mỗi tài khoản.
- Tốc độ truy xuất nhanh, nhỏ hơn 2 giây tính từ khi người dùng gửi yêu cầu.
- Có thể tái sử dụng mã nguồn (code) và chức năng hệ thống, tránh hiện tượng
trùng lặp lượng lớn dòng code giống nhau ở nhiều nơi trong source gây ra lãng phí
tài nguyên.
- Tính bảo mật: người dùng phải đăng nhập bằng mật khẩu cá nhân, và không
cho phép sử dụng các chức năng không có trong phân quyền.
- Tính chịu tải: đáp ứng được lượng yêu cầu cao tại mọi thời điểm.
- Có khả năng khôi phục dữ liệu khi gặp sự cố.
- Dễ bảo trì và phát triển.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.6. Xác định và xây dựng usecase.

Biểu đồ usecase: Tổng hợp.

a. Xây dựng usecase.


Usecase 1. Mô tả: Người dùng dùng tài khoản của mình để đăng nhập hệ thống
theo phân quyền. Mỗi quyền sẽ được sử dụng chức năng khác nhau trong hệ
thống.
Tên Use Case Đăng nhập
Tác nhân chính Người dùng
Điều kiện trước Tài khoản phải tồn tại trong cơ sở dữ liệu
Đảm bảo tối thiểu Cho phép đăng nhập nếu tài khoản không bị khóa
Điều kiện sau Đăng nhập thành công
Chuỗi sự kiện chính
1. Người dùng nhập các trường username, password để đăng nhập.
2. Hệ thống xác thực username, password.
3. Báo lỗi nếu sai.
4. Đăng nhập thành công khi không có lỗi.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ usecase: Đăng nhập.

Usecase 2. Mô tả: Người dùng có thể đăng xuất khỏi tài khoản.
Tên Use Case Đăng xuất
Tác nhân chính Người dùng
Điều kiện trước Tài khoản đang đăng nhập
Đảm bảo tối thiểu Cho phép đăng xuất
Điều kiện sau Tài khoản không tồn tại/ không hiện hữu tên người dùng trên
website
Chuỗi sự kiện chính:
1. Hệ thống đăng xuất tài khoản người dùng.
2. Hệ thống ghi nhận người dùng đang không đăng nhập.

Biểu đồ usecase: Đăng xuất

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 3. Mô tả: Người dùng có thể đổi mật khẩu sau khi đăng nhập.
Tên Use Case Đổi mật khẩu
Tác nhân chính Người dùng
Điều kiện trước Tài khoản đang đăng nhập
Đảm bảo tối thiểu Cho phép đổi mật khẩu khi nhập đúng mật khẩu cũ
Điều kiện sau Đổi mật khẩu thành công
Chuỗi sự kiện chính:
1. Người dùng sau khi đăng nhập yêu cầu đổi mật khẩu.
2. Người dùng nhập mật khẩu cũ, mới và nhập lại mật khẩu mới.
3. Hệ thống kiểm tra sự đúng đắn mật khẩu cũ.
4. Hệ thống so trung mật khẩu mới và mật khẩu nhập lại.
5. Thông báo nếu từng trường không hợp lệ.
6. Đổi mật khẩu khi các trường hợp lệ và thông báo thành công cho người
dùng.
Biểu đồ usecase: Đổi mật khẩu.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 4. Mô tả: Người dùng nếu không thể đăng nhập, quên mật khẩu thì có
thể sử dụng chức năng quên mật khẩu, nhập username, gửi email để xác thực và
cập nhật mật khẩu mới.
Tên Use Case Quên mật khẩu
Tác nhân chính Người dùng
Điều kiện trước Tài khoản chưa đăng nhập
Đảm bảo tối Tài khoản phải tồn tại và email phải là của tài khoản đó
thiểu
Điều kiện sau Gửi mã xác thực đến email thành công, đổi mật khẩu mới thành
công khi người dùng thỏa mãn đúng các trường.
Chuỗi sự kiện chính:
1. Người dùng yêu cầu chức năng quên mật khẩu.
2. Người dùng nhập username và email liên kết.
3. Hệ thống xác minh username, email.
4. Thông báo nếu không đúng.
5. Hệ thống gửi đến email đã nhập mã xác thực.
6. Người dùng nhập mã xác thực.
7. Báo lỗi nếu không đúng, yêu cầu nhập lại hoặc gửi lại mã xác thực.
8. Hệ thống yêu cầu người dùng nhập mật khẩu mới và nhập lại mật khẩu mới.
9. Thông báo lỗi nếu không trùng.
10. Hệ thống thay đổi mật khẩu tài khoản thành công nếu nhập đúng.

Biểu đồ usecase: Quên mật khẩu.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 5. Mô tả: Người dùng sau khi đăng nhập có thể xem và thay đổi những
thông tin cá nhân cho phép sửa.
Tên Use Case Thay đổi thông tin cá nhân
Tác nhân chính Người dùng
Điều kiện trước Tài khoản đang đăng nhập
Đảm bảo tối thiểu Cho phép đổi các trường nếu nhập đúng dạng chuẩn
Điều kiện sau Đổi thông tin thành công
Chuỗi sự kiện chính:
1. Người dùng sau khi đăng nhập yêu cầu xem thông tin cá nhân.
2. Hệ thống tìm thông tin dữ liệu cá nhân của tài khoản liên quan để hiển thị.
3. Người dùng có thể yêu cầu thay đổi các thông tin cho phép.
4. Hệ thống mở khóa các trường cho phép nhập.
5. Người dùng nhập các trường muốn đổi.
6. Hệ thống thông báo đổi thành công và cập nhật vào cơ sở dữ liệu nếu nhập
đúng và thông báo lỗi nếu nhập sai.
Biểu đồ usecase: Thay đổi thông tin cá nhân.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 6. Mô tả: Mỗi khách hàng có thể đăng kí một hoặc nhiều tài khoản.
Khách đăng nhập vào hệ thống bằng tài khoản đã đăng kí.
Tên Use Case Đăng kí
Tác nhân chính Khách hàng
Điều kiện trước Khách hàng chưa có tài khoản
Đảm bảo tối thiểu Hệ thống rollback lại nếu lỗi giữa chừng
Điều kiện sau Khách hàng đăng kí thành công
Chuỗi sự kiện chính:
1. Khách hàng chọn chức năng đăng kí tài khoản nếu chưa có tài khoản.
2. Khách hàng nhập các thông tin mà hệ thống yêu cầu.
3. Hệ thống thực hiện việc xác thực thông tin của người dùng.
4. Hệ thống trả kết quả về cho người dùng về việc xác thực thông tin.

Biểu đồ usecase: Đăng kí .

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 7. Mô tả: Khách hàng xem và tìm kiếm sản phẩm muốn mua và có thể
thêm vào giỏ hàng sau khi đăng nhập. Sau đó chọn các sản phẩm muốn đặt trong
giỏ hàng, cung cấp địa chỉ giao hàng và phương thức thanh toán. Với thanh toán
online, hệ thống thanh toán sẽ xác thực, và xử lý thanh toán tiền điện tử do khách
hàng chi trả.
Tên Use Case Đặt hàng
Tác nhân chính Khách hàng, hệ thống thanh toán
Điều kiện trước Khách hàng đã đăng nhập vào hệ thống
Đảm bảo tối thiểu Hệ thống rollback lại nếu đặt hàng lỗi giữa chừng
Điều kiện sau Khách hàng đặt hàng thành công
Chuỗi sự kiện chính:
1. Khách hàng thêm các sản phẩm vừa xem hoặc tìm kiếm vào giỏ hàng.
2. Khách hàng chọn các sản phẩm muốn đặt trong giỏ hàng rồi tiến hành chọn
địa chỉ giao hàng và chọn phương thức thanh toán.
3. Nếu người mua chọn phương thức thanh toán là online thì yêu cầu người
mua cung cấp phương thức thanh toán qua thẻ hoặc ví, sau đó hệ thống sẽ
kiểm tra thông tin thanh toán online, nếu đúng thì tiếp tục đặt hàng, nếu sai
thì thông báo lại cho người dùng.
4. Sau khi người dùng ấn nút đặt hàng, hệ thống sẽ kiểm tra xem người dùng
đã đăng nhập hay chưa, nếu chưa đăng nhập thì yêu cầu người dùng đăng
nhập để đặt hàng.
5. Thông báo cho người dùng việc đặt hàng thành công hoặc không thành
công.
Biểu đồ usecase: Đặt hàng.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 8. Mô tả: Nhân viên nhận đơn xem và kiểm tra danh sách đơn đặt hàng
của khách. Sau khi kiểm tra kho, nếu có đủ nguyên liệu, thì xác nhận đơn, in bill
và gửi yêu cầu thực hiện đơn hàng cho bộ phận pha chế. Còn nếu không có đủ
nguyên liệu thì xác nhận huỷ đơn của khách và thông báo lại cho khách hàng
( nếu khách hàng đã thanh toán thì thực hiện hoàn tiền).
Tên Use Case Duyệt đơn
Tác nhân chính Nhân viên duyệt đơn
Điều kiện trước Nhân viên duyệt đơn đã có tài khoản để đăng nhập hệ thống
Đảm bảo tối thiểu Hệ thống rollback lại đơn hàng nếu lỗi giữa chừng.
Điều kiện sau Nhân viên duyệt đơn thành công và in bill cho khách.
Chuỗi sự kiện chính
1. Nhân viên duyệt đơn chọn chức năng đơn hàng trên giao diện chính sau khi
đăng nhập thành công.
2. Hệ thống hiển thị danh sách đơn đặt hàng gồm sản phẩm và số lượng khách
đặt mua
3. Nhân viên duyệt những đơn hàng phù hợp và hệ thống in ra bill.
4. Nhân viên huỷ bỏ đơn hàng không phù hợp, thông báo lại với khách hàng.
Biểu đồ usecase: Duyệt đơn.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 9. Mô tả: Nhân viên pha chế nhận yêu cầu thực hiện đơn hàng từ hệ
thống, sau đó pha chế theo công thức chế biến, đóng gói và chuyển cho bên giao
hàng, xác nhận hoàn thành đơn hàng.
Tên Use Case Pha chế
Tác nhân chính Nhân viên pha chế
Điều kiện trước Nhân viên pha chế đã có tài khoản để đăng nhập hệ thống
Đảm bảo tối thiểu Hệ thống rollback lại đơn hàng nếu lỗi giữa chừng.
Điều kiện sau Nhân viên pha chế đồ uống thành công và xác nhận hoàn
thành.
Chuỗi sự kiện chính:
1. Nhân viên pha chế chọn chức năng yêu cầu pha chế trên giao diện chính sau
khi đăng nhập thành công.
2. Hệ thống hiển thị danh sách đồ uống được yêu cầu pha chế.
3. Nhân viên thực hiện pha chế theo danh sách yêu cầu và đóng gói.
4. Nhân viên chuyển đơn cho bên giao hàng và xác nhận hoàn thành.
5. Nhân viên thực hiện lập yêu cầu nhập nguyên liệu.
Biểu đồ usecase: Pha chế.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 10. Mô tả: Đối tác vận chuyển nhận yêu cầu giao hàng từ hệ thống vận
chuyển và đến cửa hàng trà sữa để lấy hàng. Đối tác vận chuyển giao hàng cho
khách hàng theo địa chỉ và thời gian yêu cầu. Đối tác và nhân viên cập nhật trạng
thái đơn hàng sau khi bàn giao hàng: vận chuyển thành công hay hủy đơn (hoàn
tiền nếu thanh toán trực tuyến).
Tên Use Case Giao hàng
Tác nhân chính Đối tác giao hàng
Điều kiện trước Đối tác giao hàng đã có tài khoản để đăng nhập hệ thống grab,
nowfood
Đảm bảo tối Hệ thống loại bỏ đơn hàng nếu lỗi giữa chừng.
thiểu
Điều kiện sau Đối tác giao hàng giao hàng cho khách và xác nhận hoàn thành
trên hệ thống giao hàng.
Chuỗi sự kiện chính:
1. Hệ thống hiển thị danh sách đơn đặt hàng cần giao và thông tin khách hàng
nhận hàng.
2. Đối tác giao hàng nhận yêu cầu giao hàng từ hệ thống ngoài, đến cửa hàng
trà sữa để lấy hàng và giao đến đúng địa chỉ cho khách hàng.
3. Đối tác giao hàng cập nhật trạng thái đơn hang hoàn thành sau khi bàn giao
hàng cho khách. Nếu đơn hang bị hủy thì hoàn tiền nếu thanh toán trực
tuyến. Hệ thống website ghi nhận và gửi thông báo cho khách hàng.

Biểu đồ usecase: Giao hàng

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 11. Mô tả: Nhân viên quản lí kho của quán thống kê số lượng nguyên
liệu sử dụng trong ngày, cập nhật số lượng tồn và đưa ra phương án nhập hàng.
Xuất báo cáo liên quan.
Tên Use Case Quản lý kho thống kê nguyên liệu và tạo phương án nhập hàng
Tác nhân chính Quản lý kho
Điều kiện trước Quản lý kho đã có tài khoản để đăng nhập hệ thống
Đảm bảo tối Thao tác thống kê sẽ bị bỏ nếu có lỗi xảy ra.
thiểu
Điều kiện sau Quản lý kho thống kê nguyên liệu sử dụng và phương án nhập
hàng phù hợp
Chuỗi sự kiện chính:
1. Quản lý kho đăng nhập thành công vào hệ thống.
2. Quản lý kho chọn chức năng thống kê nguyên liệu sử dụng trên giao diện
chính.
3. Quản lý kho thực hiện kiểm kê nguyên liệu sử dụng và đồng thời cập nhật
lại số lượng tồn.
4. Quản lý kho thực hiện xuất báo cáo nguyên liệu sử dụng, xuất báo cáo số
lượng tồn và tạo, xuất ra báo cáo phương án nhập hàng.
Biểu đồ usecase: Thống kê nguyên liệu.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 12. Mô tả: Khi cần nhập hàng, nhân viên quản lý kho sẽ liên lạc với
nhà cung cấp để đưa thông tin danh sách các mặt hàng cần nhập cùng với số
lượng. Nhà cung cấp sẽ nhận và báo giá cho quản lý kho. Quản lý kho xin cấp
quỹ từ phòng kinh doanh của quán để chi trả. Tiếp theo sau là cập nhật lại đúng
số lượng nguyên liệu lên hệ thống.

Tên Use Case Nhập hàng


Tác nhân chính Nhân viên kho, NCC
Điều kiện trước Nhân viên kho có tài khoản với phân quyền quản lí kho
Đảm bảo tối thiểu Hệ thống rollback lại nếu lỗi giữa chừng
Điều kiện sau Nhân viên kho nhập hàng thành công

Chuỗi sự kiện chính

1. Nhân viên có thể kiểm tra tồn kho hoặc không


2. Lập danh sách nguyên liệu cần nhập
3. Xuất đơn nhập hàng và gửi đơn xin thanh toán lên phòng tài chính
4. Nhận hàng và kiểm tra
5. Cập nhật kho sau khi nhập

Biểu đồ usecase: Nhập hàng.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 13. Mô tả: Admin có thể quản lý mọi tài khoản của người dùng như
reset mật khẩu, khóa, thay đổi phân quyền.

Tên Use Case Quản lý tài khoản


Tác nhân chính Admin
Điều kiện trước Admin có tài khoản với phân quyền admin
Đảm bảo tối thiểu Hệ thống rollback lại nếu lỗi giữa chừng
Điều kiện sau Tài khoản được cập nhật

Chuỗi sự kiện chính:

1. - Admin reset mật khẩu:

1. Admin yêu cầu reset mật khẩu đã chọn.


2. Hệ thống tạo mật khẩu ngẫu nhiên gửi email liên kết tài khoản.

2. - Admin khóa tài khoản:

1. Admin yêu cầu khóa tài khoản đã chọn.


2. Hệ thống tiến hành khóa tài khoản.

3. - Admin thay đổi phân quyền:

1. Admin yêu cầu thay đổi phân quyền tài khoản chọn.
2. Hệ thống cập nhật phân quyền của tài khoản trong cơ sở dữ liệu.

Biểu đồ use case: Quản lý tài khoản.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 14. Mô tả: Quản lý cửa hàng có thể quản lý thông tin các nhân viên
trong quán, sản phẩm trong quán, nguyên liệu, ghi nhận công thức chế biến món,
các chương trình khuyến mãi trong quán.
Tên Use Case Quản lý quán
Tác nhân chính Quản lý
Điều kiện trước Tài khoản có quyền quản lý
Đảm bảo tối Hệ thống yêu cầu nhập đúng dạng chuẩn các trường dữ liệu, hủy
thiểu khi thao tác sai
Điều kiện sau Quản lý thay đổi các thông tin thành công
Chuỗi sự kiện chính:
1. Quản lý đăng nhập vào hệ thống.
2. Hiển thị các đối tượng cần quản lý.
3. Xem danh sách đối tượng đã chọn.
4. Thực hiện thêm, xóa hoặc sửa các dòng dữ liệu.
5. Hệ thống thông báo lỗi hoặc thành công nếu không sai trường dữ liệu.

Biểu đồ usecase: Quản lý quán.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 15. Mô tả: Quản lý sử dụng hệ thống để thống kê doanh thu, in báo cáo
cuối ngày hoặc có thể thống kê những khoảng thời gian khác.
Tên Use Case Thống kê doanh thu quán
Tác nhân chính Quản lý
Điều kiện trước Tài khoản có quyền quản lý
Đảm bảo tối thiểu Tính toán đúng doanh thu theo mốc thời gian
Điều kiện sau Quản lý có thể in báo cáo thành công
Chuỗi sự kiện chính:
1. Quản lý đăng nhập vào hệ thống và vào trang chức năng thống kê .
2. Hiển thị các tùy chọn mốc thời gian.
3. Tính toán doanh thu theo mốc.
4. In báo cáo nếu cần.
5. Hệ thống thông báo thành công.
Biểu đồ usecase: Thống kê doanh thu.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 16. Mô tả: Quản lý bảng giá của các sản phẩm được áp dụng theo ngày.
Tên Use Case Quản lý bảng giá
Tác nhân chính Quản lý
Điều kiện trước Tài khoản có quyền quản lý
Đảm bảo tối thiểu Hệ thống rollback lại nếu lỗi giữa chừng
Điều kiện sau Quản lý có thể thêm mới và chỉnh sửa bảng giá
Chuỗi sự kiện chính
1. Quản lý đăng nhập vào hệ thống và vào trang chức năng quản lí bảng giá.
2. Hệ thống hiển thị các giá sản phẩm đang được áp dụng hiện thời.
3. Thực hiện thêm mới bảng giá hoặc chỉnh sửa giá của sản phẩm.
4. Hệ thống thông báo lỗi hoặc thành công nếu không sai trường dữ liệu.
Biểu đồ Usecase: Quản lý bảng giá.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 17. Mô tả: Khách hàng tìm kiếm sản phẩm cần mua.
Tên Use Case Tìm kiếm sản phẩm
Tác nhân chính Khách hàng
Điều kiện trước Tài khoản có quyền khách hàng
Đảm bảo tối thiểu Hệ thống rollback lại nếu lỗi giữa chừng
Điều kiện sau Khách hàng có thể tìm kiếm sản phẩm cần mua
Chuỗi sự kiện chính
1. Khách hàng truy cập vào hệ thống website bán trà sữa Phúc Long Online.
2. Thực hiện tìm kiếm sản phẩm theo từ khoá hoặc thể loại mà khách hàng cần.
3. Hệ trả về danh sách sản phẩm phù hợp với yêu cầu tìm kiếm của khách
hàng.
Biểu đồ Usecase: Tìm kiếm sản phẩm.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Usecase 18. Mô tả: Khách hàng quản lý hoạt động mua hàng trên website.
Tên Use Case Quản lý hoạt động mua hàng
Tác nhân chính Khách hàng
Điều kiện trước Tài khoản có quyền khách hàng
Đảm bảo tối thiểu Hệ thống hiển thị được các thông tin mua hàng của khách
Điều kiện sau Khách hàng có thể quản lý hoạt động mua hàng
Chuỗi sự kiện chính
1. Khách hàng truy cập vào hệ thống website bán trà sữa Phúc Long Online.
2. Truy cập quản lí hoạt động mua hàng, chọn thông tin tra cứu cần xem.
3. Hệ trả về danh sách thông tin phù hợp với yêu cầu tra cứu của khách hàng.
Biểu đồ Usecase: Quản lý hoạt động mua hàng.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

b. Sắp xếp thứ tự ưu tiên usecase.


- Usecase xanh:
+ Đăng nhập.
+ Đăng ký.
+ Đặt hàng.
+ Duyệt đơn.
+ Tìm kiếm sản phẩm.
- Usecase vàng:
+ Đăng xuất.
+ Quên mật khẩu.
+ Thay đổi thông tin cá nhân.
+ Pha chế.
+ Giao hàng.
+ Nhập hàng.
+ Quản lý tài khoản.
+ Quản lý quán.
+ Quản lý bảng giá.
- Usecase đỏ:
+ Đổi mật khẩu.
+ Thống kê nguyên liệu.
+ Thống kê doanh thu.
+ Quản lý hoạt động mua hàng.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.7. Xây dựng biểu đồ hoạt động.

Biểu đồ hoạt động: Đăng nhập.

Biểu đồ hoạt động: Đăng xuất.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ hoạt động: Đổi mật khẩu.

Biểu đồ hoạt động: Quên mật khẩu.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ hoạt động: Thay đổi thông tin cá nhân.

Biểu đồ hoạt động: Đăng ký.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ hoạt động: Đặt hàng.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ hoạt động: Duyệt đơn.

Biểu đồ hoạt động: Pha chế.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ hoạt động: Giao hàng.

Biểu đồ hoạt động: Kiểm kê nguyên liệu sử dụng.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ hoạt động: Cập nhật số lượng tồn nguyên liệu.

Biểu đồ hoạt động: Tạo phương án nhập.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ hoạt động: Thêm đối tượng.

Biểu đồ hoạt động: Cập nhật đối tượng.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ hoạt động: Xóa đối tượng.

2.8. Xây dựng biểu đồ tuần tự.

Biểu đồ tuần tự: Kiểm tra kho.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ tuần tự: Xuất đơn nhập hàng.

Biểu đồ tuần tự: Cập nhật kho.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ tuần tự: Reset mật khẩu.

Biểu đồ tuần tự: Thống kê doanh thu.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ tuần tự: Đặt hàng online.

Biểu đồ tuần tự: Xác nhận đơn hàng online.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Chương II: Phân tích hệ thống.

1. Mô tả phân tích hệ thống.


1.1. Các đối tượng tham gia vào hệ thống.
Khách hàng, nhân viên, tài khoản, quyền, sản phẩm, size, loại sản phẩm, công thức
chế biến, nguyên liệu, khuyến mãi, bảng giá, đơn hàng, giỏ hàng, đơn đặt nguyên
liệu, phiếu nhập hàng, nhà cung cấp.
1.2. Xác định quan hệ giữa các đối tượng.

Tổng quát.

Phần 1.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Phần 2.

Phần 3.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Phần 4.
1.3. Thông tin cơ bản của các đối tượng

- Khách hàng: id khách hàng (int), họ (String), tên (String), giới tính (Boolean), địa
chỉ (String), ngày sinh (Date), số điện thoại (String), email (String), mã số thuế
(String), đường dẫn hình ảnh (String), điểm tích lũy (int), id tài khoản (int).

- Nhân viên: id nhân viên (int), họ (String), tên (String), giới tính (Boolean), địa chỉ
(String), ngày sinh (Date), số điện thoại (String), email (String), mã số thuế (String),
đường dẫn hình ảnh (String), mã số hợp đồng (String), số bảo hiểm xã hội (String),
id tài khoản (int).

- Tài khoản: id tài khoản (int), tên tài khoản (String), mật khẩu (String), trạng thái
(String), id quyền (int).

- Quyền: id quyền (int), chức vụ (String).

- Size: id size (int), tên size (String).

- Loại: id loại (int), tên loại (String).

- Sản phẩm: id sản phẩm (int), tên sản phẩm (String), đường dẫn hình ảnh (String),
cách thức pha chế (String), khóa (int), id loại (int).

- Bảng giá: id bảng giá (int), tên loại giá (String), ngày áp dụng (Date).

- Nguyên liệu: id nguyên liệu (int), tên nguyên liệu (String), số lượng (double), đơn
vị (String), đường dẫn hình ảnh (String).

- Đơn hàng: id đơn hàng (int), trạng thái đơn hàng (String), ngày lập (Date), id tài
khoản đặt (int).

- Hóa đơn: id hóa đơn (int), ngày lặp (Date), tổng hóa đơn (double), số điện thoại
(String), địa chỉ (String), thanh toán Online (int).
Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

- Voucher: id voucher (int), nội dung (String), ngày áp dụng (Date), ngày hết hạn
(Date), phần trăm giảm (double), tiền giảm (double).

- Đơn đặt: id đơn đặt (int), ngày lập (Date), id nhân viên lập (int), trạng thái
(String).

- Phiếu nhập: id phiếu nhập (int), ngày lập (Date), id nhân viên lập (int), trạng thái
(String).

- Nhà cung cấp: id nhà cung cấp (int), tên nhà cung cấp (String), địa chỉ (String), số
điện thoại (String), email (String), mã số thuế (String), đường dẫn hình ảnh (String),
mã số hợp đồng (String).
2. Xác định và xây dựng biểu đồ lớp.

Biểu đồ lớp 1.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ lớp 2.

Biểu đồ lớp 3.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ lớp 4.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.1. Mô tả chi tiết lớp KhachHang.


Định nghĩa Khách hàng
Thuộc tính + idKhachHang: id của khách
hàng
+ ho : họ của khách hàng
+ ten : tên của khách hàng
+ gioiTinh : gới tính của khách
hàng
+ diaChi : địa chỉ của khách
hàng
+ ngaySinh : ngày sinh của
khách hàng
+ soDienThoai : số điện thoại
của khách hàng
+ email : địa chỉ email của khách
hàng
+ maSoThue : mã số thuế của
khách hàng
+ hinhAnh : avatar khách hàng
muốn hiển thị trên trang web
+ diemTichLuy : điểm tích luỹ
mua hàng
+ idTaiKhoan: id của tài khoản
khách hàng đăng kí

Phương thức + setKhachHang : thay đổi thông


tin cá nhân của khách hàng
+ getIDKhachHang: lấy id khách
hàng
+ getHo: lấy họ
+ getTen: lấy tên
+ getGioiTinh: lấy giới tính
+ getDiaChi: lấy địa chỉ
+ getNgaySinh: lấy ngày sinh
+ getSoDienThoai: lấy số điện
thoại
+ getEmail: lấy email
+ getHinhAnh: lấy hình ảnh
+ getDiemTichLuy: lấy điểm
tích lũy

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

+ getMaSoThue: lấy mã số thuế


+ getIDTaiKhoan: lấy id tài
khoản

2.2. Mô tả chi tiết lớp NhanVien.


Định nghĩa Nhân Viên
Thuộc tính + idNhanVien: id của nhân viên
+ ho : họ của nhân viên
+ ten : tên của nhân viên
+ gioiTinh : gới tính của nhân
viên
+ diaChi : địa chỉ của nhân viên
+ ngaySinh : ngày sinh của nhân
viên
+ soDienThoai : số điện thoại của
nhân viên
+ email : địa chỉ email của nhân
viên
+ maSoThue : mã số thuế của
nhân viên
+ hinhAnh : avatar nhân viên
muốn hiển thị trên trang web
+ hopDong : hợp đồng kí kết giữa
nhân viên và cửa hàng
+ soBHXH : số bảo hiểm y tế của
nhân viên
+ idTaiKhoan: id của tài khoản
nhân viên

Phương + setNhanVien : thay đổi thông tin


thức cá nhân của nhân viên
+ getIDNhanVien: lấy id nhân
viên
+ getHo: lấy họ
+ getTen: lấy tên
+ getGioiTinh: lấy giới tính
+ getDiaChi: lấy địa chỉ
+ getNgaySinh: lấy ngày sinh
+ getSoDienThoai: lấy số điện
thoại

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

+ getEmail: lấy email


+ getMaSoThue: lấy mã số thuế
+ getHinhAnh: lấy hình ảnh
+ getHopDong: lấy hợp đồng
+ getSoBHXH: lấy số BHXH
+ getIDTaiKhoan: lấy id tài khoản

2.3. Mô tả chi tiết lớp TaiKhoan.


Định nghĩa Tài khoản người dùng sử dụng
đăng nhập vào hệ thống
Thuộc tính + idTaiKhoan: id của tài khoản
+ tenTaiKhoan : tên tài khoản ( tên
đăng nhập)
+ matKhau : mật khẩu của tài
khoản
+ trangThai: trạng thái tài khoản
+ idNguoiDung : id của ngưởi sở
hữu tài khoản
+ idQuyen : id quyền hạn tài khoản
được cấp khi truy cập vào hệ thống
Phương + setMatKhau : thay đổi mật khẩu
thức của tài khoản
+ getIDTaiKhoan: lấy id tài khoản
+ getIDNguoiDung : lấy thông tin
id người dùng
+ getTenTaiKhoan: lấy tên tài
khoản
+ getIDNguoiDung: lấy id người
dùng
+ getIDQuyen: lấy id quyền
+ getTrangThai: lấy trạng thái
+ setTrangThai: cập nhật trạng thái

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.4. Mô tả chi tiết lớp Quyen.


Định nghĩa Quyền hạn cấp cho tài khoản
Thuộc tính + idQuyen : id quyền hạn
+ chucVu : chức vụ của chủ sở
hữu tài khoản

Phương + setQuyen : thay đổi thông tin


thức quyền hạn
+ getIDQuyen: lấy id quyền
+ getChucVu: lấy chức vụ

2.5. Mô tả chi tiết lớp Size.


Định nghĩa Size của sản phẩm
Thuộc tính + idSize: mã size
+ tenSize: tên size

Phương + themSize: thêm size mới


thức + xoaSize: xóa size
+ getIDSize: lấy id size
+ setTenSize: đặt tên size
+ getTenSize: lấy tên size

2.6. Mô tả chi tiết lớp Loai.


Định nghĩa Thể loại của sản phẩm
Thuộc tính + idLoai: mã loại sản phẩm
+ tenLoai: tên loại sản phẩm

Phương + themLoai: thêm loại sản phẩm


thức + xoaLoai: xóa loại sản phẩm
+ getIDLoai: lấy id loại
+ setTenLoai: đặt tên loại sản
phẩm
+ getTenLoai: lấy tên loại sản phẩm

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.7. Mô tả chi tiết lớp SanPham.


Định nghĩa Sản phẩm
Thuộc tính + idSP: mã sản phẩm
+ tenSP: tên sản phẩm
+ idLoai: mã loại sản phẩm
+ hinhAnh: hình ảnh
+ cachPhaChe: cách pha chế
+ khoa: khóa sản phẩm khi không
còn bán
Phương + themSanPham: thêm sản phẩm
thức mới
+ xoaSanPham: xóa sản phẩm
+ suaSanPham: sửa sản phẩm
+ getIDSP: lấy id sản phẩm
+ getTenSP: lấy tên sản phẩm
+ setTenSP: đặt tên sản phẩm
+ getHinhAnh: lấy hình ảnh
+ setHinhAnh: đặt hình ảnh
+ getCachPhaChe: lấy cách pha
chế
+ setCachPhaChe: đặt cách pha
chế
+ getIdLoai: lấy mã loại
+ getKhoa(): lấy trạng thái khóa
+ setKhoa(): sửa trạng thái

2.8. Mô tả chi tiết lớp BangGia.


Định nghĩa Bảng giá
Thuộc tính + idGia: mã giá
+ tenLoaiGia: tên loại giá
+ ngayApDung: ngày áp dụng

Phương + themBangGia: thêm bảng giá


thức + xoaBangGia: xóa bảng giá
+ suaBangGia: sửa bảng giá
+ getIDGia: lấy id bảng giá
+ setTenLoaiGia: đặt tên loại giá
+ getTenLoaiGia: lấy tên loại giá
+ setNgayApDung: đặt ngày áp

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

dụng
+ getNgayApDung: lấy ngày áp
dụng

2.9. Mô tả chi tiết lớp CongThuc.


Định nghĩa Công thức thể hiện lượng nguyên
liệu cần dùng
Thuộc tính + idCT: mã công thức
+ idNL: mã nguyên liệu
+ idCTSP: mã chi tiết sản phẩm
+ soLuong: số lượng
Phương + themCT: thêm công thức mới
thức + xoaCT: xóa công thức
+ suaCT: sửa công thức
+ getIDCT: lấy id công thức
+ getIDNL: lấy id nguyên liệu
+ getIDCTSP: lấy id chi tiết sản
phẩm
+ getSoLuong: lấy số lượng
nguyên liệu
+ setSoLuong: đặt số lượng
nguyên liệu

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.10. Mô tả chi tiết lớp NguyenLieu.


Định nghĩa Nguyên liệu
Thuộc tính + idNL: mã nguyên liệu
+ tenNL: tên nguyên liệu
+ soLuong: số lượng tồn
+ donVi: đơn vị của nguyên liệu
+ hinhAnh: hình ảnh nguyên liệu
Phương + themNguyenLieu: thêm nguyên
thức liệu mới
+ xoaNguyenLieu: xóa nguyên liệu
+ suaNguyenLieu: sủa nguyên liệu
+ getIDNL: lấy id nguyên liệu
+ getTenNL: lấy tên nguyên liệu
+ setTenNL: đặt tên nguyên liệu
+ getSoLuong: double
+ setSoLuong: cập nhật tồn
+ getDonVi: lấy đơn vị
+ setDonVi: đổi đơn vị
+ getHinhAnh: lấy hình ảnh nguyên
liệu
+ setHinhAnh: đặt hình ảnh nguyên
liệu

2.11. Mô tả chi tiết lớp CTBangGia.


Định nghĩa Chi tiết bảng giá
Thuộc tính + idCTGia: mã chi tiết giá
+ idCTSP: mã chi tiết sản phẩm
+ idGia: mã giá
+ gia: giá sản phẩm
Phương + themCTGia: thêm chi tiết giá
thức + xoaCTGia: xóa chi tiết giá
+ suaCTGia: sửa chi tiết giá
+ getIDCTGia: lấy id chi tiết giá
+ getIDCTSP: lấy id chi tiết sản
phẩm
+ getIDGia: lấy id bảng giá
+ setGia: đặt giá sản phẩm
+ getGia: lấy giá sản phẩm

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.12. Mô tả chi tiết lớp CTSanPham.


Định nghĩa Chi tiết của sản phẩm (Sản phẩm +
Size)
Thuộc tính + idCTSP: mã chi tiết sản phẩm
+ idSP: mã sản phẩm
+ idSize: mã Size
+ giaHienThoi: giá hiện thời
Phương + themCTSP: thêm chi tiết sản
thức phẩm
+ xoaCTSP: xóa chi tiết sản phẩm
+ getIDCTSP: lấy id chi tiết sản
phẩm
+ getIDSP: lấy id sản phẩm
+ getIDSize: lấy id size
+ getGiaHienThoi: lấy thông tin
giá của chi tiết sản phẩm
+ setGiaHienThoi: sửa giá hiện
thời của chi tiết sản phẩm

2.13. Mô tả chi tiết lớp GioHang.


Định nghĩa Giỏ hàng chứa các chi tiết sản phẩm
(sản phẩm + size) do người mua
chọn
Thuộc tính + idGioHang: id của giỏ hàng
+ idTaiKhoan: id của tài khoản
+ idCTSP: id của chi tiết sản phẩm
+ soLuong: số lượng chi tiết sản
phẩm người dùng chọn
Phương thức + them: thêm một dòng vào giỏ
hàng
+ xoa: xóa một dòng chi tiết sản
phẩm chọn trong giỏ hàng
+ getIDGioHang: lấy id giỏ hàng
+ getIDTaiKhoan: lấy id tài khoản
+ getIDCTSP: lấy id chi tiết sản
phẩm
+ setSoLuong: sửa số lượng muốn
mua
+ getSoLuong: lấy số lượng

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.14. Mô tả chi tiết lớp DonHang.


Định nghĩa Đơn hàng mà khách đã đặt
Thuộc tính + idDonHang: id đơn hàng
+ trangThaiDonHang: trạng thái
của đơn hàng (đã đặt, hoàn thành,
đang giao, đã giao)
+ ngayLap: ngày lập đơn
+ idTaiKhoan: id tài khoản đã đặt
Phương + taoDonHang: tạo đơn hàng mới
thức + getIDDonHang: lấy id đơn hàng
+ setTrangThai: sửa trạng thái đơn
hàng
+ getTrangThai: lấy trạng thái đơn
hàng
+ getNgayLap: lấy thông tin ngày
lập đơn
+ getIDTaiKhoan: lấy id người
dùng đặt

2.15. Mô tả chi tiết lớp CTDonHang.


Định nghĩa Chi tiết trong đơn đặt
Thuộc tính + idCTDH: id của chi tiết đơn đặt
+ idCTSP: id của chi tiết sản phẩm
+ idDonHang: id của đơn hàng
+ giaBan: giá bán của chi tiết sản
phẩm hiện thời
+ soLuong: số lượng khách chọn
Phương + themCTDH: thêm dòng vào đơn
thức đặt
+ xoaCTDH: xóa dòng trong đơn
đặt
+ getIDCTDH: lấy id chi tiết đơn
hàng
+ getIDCTSP: lấy id chi tiết sản
phẩm
+ getIDDonHang: lấy id đơn hàng
+ getGiaBan: lấy giá bán
+ getSoLuong: lấy số lượng

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.16. Mô tả chi tiết lớp HoaDon.


Định nghĩa Hóa đơn của khách từ việc mua
hàng
Thuộc tính + idHoaDon: id hóa đơn
+ ngayLap: ngày lập hóa đơn
+ tongHoaDon: tổng tiền trên hóa
đơn tính từ chi tiết của đơn đặt
+ sdt: số điện thoại
+ diaChi: địa chỉ
+ thanhToanOnline: nhận biết hóa
đơn có thuộc thanh toán online
Phương + taoHoaDon: tạo hóa đơn
thức + getIDHoaDon: lấy id hóa đơn
+ getNgayLap: lấy ngày lập
+ getTongHoaDon: lấy tổng hóa
đơn
+ getSDT: lấy số điện thoại
+ getDiaChi: lấy địa chỉ
+ getThanhToanOnline: lấy dạng
thanh toán

2.17. Mô tả chi tiết lớp Voucher.


Định nghĩa Voucher – phiếu mua hàng mà
cửa hàng tạo
Thuộc tính + idVoucher: id của voucher
+ noiDung: nội dung của voucher
+ ngayApDung: ngày bắt đầu áp
dụng
+ ngayHetHan: ngày hết hạn sử
dụng
+ phanTramGiam: phần trăm
giảm trên hóa đơn
+ tienGiam: tiền trừ vào hóa đơn
Phương + taoVoucher: tạo voucher
thức + setVoucher: sửa thông tin
voucher
+ xoaVoucher: xóa voucher
+ getIDVoucher: lấy id voucher
+ getNoiDung: lấy nội dung

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

voucher
+ getNgayApDung: lấy ngày bắt
đầu áp dụng
+ getNgayHetHan: lấy ngày kết
thúc
+ getPhanTramGiam: lấy phần
trăm giảm giá
+ getTienGiam: lấy số tiền được
giảm

2.18. Mô tả chi tiết lớp DonDat.


Định nghĩa Đơn đặt
Thuộc tính + idDonDat:: Id đơn đặt
+ ngayLap: Ngày lập đơn đặt hàng
+ idNhanVien: id Nhân viên đặt
+ trangThai: trạng thái đơn đặt

Phương + taoDonDat: tạo đơn đặt hàng


thức đến nhà cung cấp
+ getIDDonDat: lấy id đơn đặt
hàng
+ getNgayLap: lấy ngày lập đơn
đặt
+ getIDNhanVien: lấy id nhân
viên đặt hàng
+ setTrangThai: cập nhật trạng
thái
+ getTrangThai: lấy trạng thái

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.19. Mô tả chi tiết lớp PhieuNhap.


Định Phiếu nhập hàng
nghĩa
Thuộc + idPhieuNhap: id phiếu nhập
tính hàng
+ ngayLap: ngày lập phiếu nhập
+ idNhanVien: id nhân viên lập
phiếu
+ trangThai: trạng thái
Phương + taoPhieuNhap: tạo phiếu nhập
thức hàng mới
+ getIDPhieuNhap : lấy id phiếu
nhập hàng
+ getNgayLap: lấy ngày lập phiếu
nhập hàng
+ getIDNHanVien: lấy id nhân
viên nhập hàng
+ getTrangThai: lấy trạng thái
+ setTrangThai: sửa trạng thái

2.20. Mô tả chi tiết lớp NhaCungCap.


Định nghĩa Nhà cung cấp
Thuộc tính + idNhaCungCap: id nhà cung cấp
+ tenNhaCungCap: tên nhà cung
cấp
+ diaChi : địa chỉ nhà cung cấp
+ soDienThoai : số điện thoại liên
hệ
+ email : email liên hệ
+ maSoThue : mã số thuế
+ hinhAnh : hình ảnh đại điện
+ hopDong : hợp đồng

Phương + themNhaCungCap: thêm nhà


thức cung cấp mới
+ xoaNhaCungCap: xóa nhà cung
cấp chưa cung cấp hàng
+ suaNhaCungCap: cập nhật thông
tin nhà cung cấp

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

+ getNhaCungCap(): lấy đối tượng


nhà cung cấp
+ getIDNhaCungCap(): lấy id nhà
cung cấp
+ getDiaChi(): lấy địa chỉ
+ getSoDienThoai(): lấy số điện
thoại
+ getEmail(): lấy email
+ getMaSoThue(): lấy mã số thuế
+ getHinhAnh(): lấy hình ảnh nhà
cung cấp
+ getHopDong(): lấy hợp đồng với
nhà cung cấp
+ setNhanVien(NhanVien) :
+ setTenNhaCungCap(String): thay
đổi tên nhà cung cấp
+ setDiaChi(String): thay đổi địa
chỉ
+ setSoDienThoai(String): thay đổi
số điện thoại
+ setEmail(String): thay đổi email
+ setMaSoThue(String): thay đổi
mã số thuế
+ setHinhAnh(String): thay đổi hình
ảnh
+ setHopDong(String): thay đổi hợp
đồng

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.21. Mô tả chi tiết lớp ChiTietDonDatHang.


Định nghĩa Chi tiết đơn đặt hàng nguyên liệu
Thuộc tính + idChiTietDonDat: id chi tiết đơn
đặt hàng
+ idDonDat: id đơn đặt
+ idNguyenLieu: id nguyên liệu
+ idNhaCungCap: id nhà cung cấp
+ soLuong: số lượng đặt

Phương + themCTDDH: thêm chi tiết đơn


thức đặt hàng
+ xoaCTDDH: xóa chi tiết đơn đặt
hàng
+ getIDChiTietDonDat: lấy id chi
tiết đơn đặt
+ getIDDonDat(): lấy id đơn đặt
+ getIDNguyenLieu(): lấy id
nguyên liệu đặt
+ getIDNhaCungCap(): lấy id nhà
cung cấp
+ getSoLuong(): lấy số lượng đặt
+ setSoLuong(double): sửa số
lượng đặt

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.22. Mô tả chi tiết lớp ChiTietPhieuNhapHang.


Định Chi tiết phiếu nhập hàng
nghĩa
Thuộc tính + idChiTietDonDat: id chi tiết đơn
đặt
+ idPhieuNhap: id phiếu nhập
+ soLuongNhap: số lượng nhập
+ donGia: đơn giá của mặt hàng

Phương + themCTPNH: thêm chi tiết phiếu


thức nhập hàng
+ xoaCTPNH: xóa chi tiết phiếu
nhập hàng
+getIDChiTietDonDat(): lấy id chi
tiết đơn đặt
+ getIDPhieuNhap(): lấy id phiếu
nhập
+ getIDNhanVien(): lấy id nhân
viên nhập
+ getSoLuongNhap(): lấy số lượng
nhập
+ getDonGia(): lấy đơn giá
+ setSoLuongNhap(double): sửa số
lượng nhập

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.23. Mô tả chi tiết lớp CTNguyenLieu.


Định nghĩa Chi tiết nguyên liệu
Thuộc tính + idCTNguyenLieu: id dòng chi
tiết nguyên liệu
+ idNguyenLieu: id nguyên liệu
+ id NhaCungCap: id nhà cung cấp
nguyên liệu đó
+ gia: giá nhà cung cấp báo
+ ngay: ngày nhà cung cấp báo

Phương + themCTNL: thêm chi tiết nguyên


thức liệu
+ xoaCTNL: xóa chi tiết nguyên
liệu
+ getIDCTNguyenLieu: lấy id chi
tiết nguyên liệu
+ getIDNguyenLieu: lấy id nguyên
liệu
+ getIDNhaCungCap: lấy id nhà
cung cấp
+ getGia: lấy giá
+ getNgay: lấy ngày

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

3. Xác định và xây dựng biểu đồ trạng thái.


- Các biểu đồ trạng thái của các đối tượng trong hệ thống:
Biểu đồ trạng thái của tài khoản trong đăng kí.

Biểu đồ trạng thái của tài khoản trong đăng xuất.

Biểu đồ trạng thái của tài khoản trong khóa hoạt động.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ trạng thái của đơn hàng trong đặt hàng.

Biểu đồ trạng thái của đơn đặt nguyên liệu.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Biểu đồ trạng thái của phiếu nhập hàng.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Chương III: Thiết kế hệ thống.

1. Thiết kế kiến trúc hệ thống.


- Kiến trúc hạ tầng - công nghệ mạng:

Hình 1: Mô tả kiến trúc hạ tầng công nghệ mạng.


Kiến trúc ba tầng (Hình 1) chia hệ thống thành ba phần: giao diện người dùng,
logic chương trình và lưu trữ dữ liệu. Trong kiến trúc này, mỗi chương trình được
phân rã trên ba tầng khác nhau:
- Tầng giao diện người dùng (User Interface) hay tầng máy khách thể hiện giao
diện mà người sử dụng có thể nhập yêu cầu, dữ liệu và xem kết quả. Nghĩa là nó
chỉ xử lý việc giao tiếp với người sử dụng, nhập xuất, … mà không thực hiện việc
tính toán, kiểm tra, xử lý, hay các thao tác liên quan đến cơ sở dữ liệu.
- Tầng ứng dụng (Application Server, Business Rule) được biết như tầng logic
nghiệp vụ hay tầng dịch vụ để chạy chương trình đa luồng. Tầng này thực hiện xử
lý các chức năng chính, kiểm tra các ràng buộc…Việc thực hiện này độc lập với
cách thiết kế cũng như cài đặt giao diện và thông tin để xử lý lấy từ tầng giao diện.
- Tầng dữ liệu (Database Server, Data Storage) nhằm lưu trữ dữ liệu và cung cấp
cơ chế an toàn cho việc truy nhập đồng thời với sự giúp đỡ của hệ quản trị cơ sở
dữ liệu. Tầng này thực hiện các công việc liên quan đến dữ liệu mà phần mềm cần
đến như đọc, ghi…

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Hình 2: Bản vẽ triển khai.


Các ưu điểm của kiến trúc 3 tầng:
- Tạo điều kiện dễ dàng khi phát triển: gồm ba phần: logic chương trình, giao
diện người dùng và cơ chế quản lý hiệu năng/bảo mật của dữ liệu. Việc phân chia
hệ thống thành các phần như trên sẽ tạo điều kiện cho người lập trình thực hiện
công việc một cách đơn giản hơn.
- Cải tiến hiệu năng: có thể nhân rộng các máy ở lớp dữ liệu và lớp giữa để lan
truyền tính toán (cân bằng tải), mỗi tầng được chuyên môn hóa và như vậy sẽ dễ
dàng tối ưu hóa.
- Nâng cao tính bảo mật: Thường thì hệ thống ba tầng sẽ được triển khai cho các
máy client chạy trên mạng Internet. Vì vậy, chúng ta phải có cơ chế bảo mật

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

nghiêm ngặt để bảo vệ máy chủ, chương trình và dữ liệu. Với kiến trúc ba tầng,
chúng ta có thể đặt cơ chế bảo mật ở tầng giữa nhằm tránh những tấn công vô tình
hay cố ý từ bên ngoài. Tầng dữ liệu ở sau tầng giữa, do đó chúng ta không cần
phải bảo mật cho phần cứng hay sự giao tiếp của chúng. Điều này giúp tầng dữ
liệu chạy với tốc độ cao và dễ thao tác.
-Hạn chế đầu tư: Đối với trường hợp chúng ta có một mainframe lưu trữ và xử lý
dữ liệu trong nhiều năm, khi có sự cố chúng ta không muốn phải vứt bỏ tất cả và
làm lại từ đầu. Kiến trúc ba tầng và mạng là phương án thích hợp nhất để giải
quyết vấn đề này. Ta sử dụng tầng giữa làm trung gian khi client kết nối với
mainframe, hoặc khi server kết nối tới client.
-Tính linh hoạt: Được thể hiện rõ qua việc chúng ta có thể thêm hoặc bớt các
máy tính trong hệ thống nếu hệ thống đó được thiết kế theo kiến trúc ba tầng. Ví
dụ, khi phần logic được thiết kế đúng, chúng ta có thể phát triển nó theo kiến trúc
một tầng, sau đó phát triển lên thành hai tầng, ba tầng tùy theo yêu cầu.
-Đa dạng nền tảng máy client: máy ở tầng client chỉ thực hiện nhận đầu vào và
hiển thị kết quả trên màn hình, do đó chúng ta có thể sử dụng các thiết bị với các
giao diện khác nhau như máy tính cá nhân, PDAs, mobile-phone…. Khi đó, tầng
giữa và tầng dữ liệu vẫn làm việc như nhau, không có thay đổi. Với tất cả những
ưu điểm trên, kiến trúc ba tầng nên được sử dụng khi thiết kế các hệ thống dù có
kích cỡ nhỏ hay lớn.
Mục tiêu của kiến trúc 3 tầng là:
- Để tách các ứng dụng người dùng và cơ sở dữ liệu vật lý.
- Để hỗ trợ các đặc điểm DBMS.
- Chương trình và dữ liệu độc lập.
- Hỗ trợ nhiều chế độ xem dữ liệu.
2. Các công nghệ ứng dụng trong hệ thống.
2.1. Ngôn ngữ lập trình C#.
- Thường được sử dụng để phát triển ứng dụng web thông qua việc sử dụng
ASP.NET, một framework web do Microsoft phát triển. Dưới đây là các thành
phần chính của ASP.NET liên quan đến việc phát triển ứng dụng web bằng C#:
+ ASP.NET Web Forms: Một mô hình lập trình sự kiện dựa trên trình động
(event-driven) cho phép phát triển ứng dụng web giống như phát triển ứng dụng
Windows.
+ ASP.NET MVC (Model-View-Controller): Một mô hình phát triển dựa trên
mô hình MVC, tách biệt logic dữ liệu, giao diện, và quản lý sự kiện.
+ ASP.NET Core: Phiên bản mới nhất của ASP.NET, ASP.NET Core là một
framework mã nguồn mở và có thể chạy trên nhiều nền tảng (cross-platform). Nó
hỗ trợ mô hình MVC và Web API.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

+ ASP.NET Web API: Cho phép phát triển các dịch vụ web RESTful, nơi có
thể truy cập và tương tác với dữ liệu thông qua giao thức HTTP.
+ Blazor: Một framework của ASP.NET cho phép lập trình viên sử dụng C# để
xây dựng ứng dụng web tương tác động trực tiếp (SPA - Single Page
Application) mà không cần sử dụng JavaScript.
+ Razor Pages: Một mô hình lập trình mới trong ASP.NET Core cho phép xây
dựng trang web một cách đơn giản hóa bằng cách kết hợp mã C# và HTML.
- Trong ứng dụng này sẽ sử dụng ASP.NET Web API để tạo API. ASP.NET
Web API là một khuôn khổ để xây dựng các dịch vụ HTTP có thể được truy cập từ
bất kỳ ứng dụng khách nào bao gồm cả trình duyệt và thiết bị di động. Nó là một
nền tảng lý tưởng để xây dựng các ứng dụng RESTful trên .NET Framework.
2.2. Ngôn ngữ lập trình Java.
a. Tổng quan về Java.
- Java là một trong những ngôn ngữ lập trình hướng đối tượng. Nó được sử dụng
trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di
động.
- Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem
năm 1991. Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản
phẩm gia dụng, và có tên là Oak.
- Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun
MicroSystem.
- Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write
Once, Run Anywhere – WORA). Chương trình phần mềm viết bằng Java có
thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực
thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó.
b. Framework Spring boot.
- Spring Boot là một framework phát triển ứng dụng Java dựa trên Spring
Framework. Nó giúp cho việc xây dựng ứng dụng Java độc lập được thực hiện
một cách nhanh chóng, dễ dàng và có khả năng chạy ngay mà không cần nhiều
cấu hình.
- Khác với Spring Framework, Spring Boot tập trung vào việc giảm bớt sự phức
tạp và công việc cấu hình ban đầu cho việc phát triển ứng dụng. Nó đi kèm với
các cấu hình mặc định tự động và tự động cấu hình các thành phần cần thiết,
giúp giảm bớt sự phụ thuộc vào XML hoặc cấu hình tùy chỉnh.
- Spring Boot cũng có thể coi là một phần mở rộng của Spring Framework, giúp
tạo ra các ứng dụng Java mạnh mẽ và hiệu quả mà vẫn giữ được sự linh hoạt và

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

khả năng mở rộng của Spring Framework. Nó giúp tăng cường hiệu suất, tạo ra
các ứng dụng độc lập và tự chạy, và giảm thiểu công việc cấu hình ban đầu.
- Khi sử dụng Spring boot để phát triển ứng dụng sẽ đem lại một số lợi thế như:
+ Giữ được sự linh hoạt và khả năng mở rộng của Spring framework. Khi đó,
bạn có thể cấu hình và thay đổi phần mở rộng theo nhu cầu mà không ảnh
hưởng đến cấu trúc chung của dự án.
+ Dễ sử dụng và nhanh chóng được triển khai.
+ Tự động cấu hình các thành phần của ứng dụng.
+ Tích hợp tốt với các công nghệ và thư viện trong hệ sinh thái Java.
+ Hỗ trợ quản lý phụ thuộc và các phiên bản của các thư viện bằng Maven
hoặc Gradle.
- Spring Boot đạt cấu hình tự động bằng cách sử dụng các cấu hình mặc định
thông minh và quy ước tiếp cận để tự động cấu hình các thành phần của ứng
dụng dựa trên các thư viện và phụ thuộc đã được khai báo.
2.3. Microsoft SQL Server.
- Microsoft SQL Server là phần mềm ứng dụng cho hệ thống quản trị cơ sở dữ liệu
quan hệ (Relational Database Management System – RDBMS) được phát triển
bởi Microsoft vào năm 1988. Nó được sử dụng để tạo, duy trì, quản lý và triển
khai hệ thống RDBMS.
- Phần mềm SQL Server được sử dụng khá rộng rãi vì nó được tối ưu để có thể
chạy trên môi trường cơ sở dữ liệu rất lớn lên đến Tera – Byte cùng lúc phục vụ
cho hàng ngàn user. Bên cạnh đó, ứng dụng này cung cấp đa dạng kiểu lập trình
SQL từ ANSI SQL (SQL truyền thống) đến SQL và cả T-SQL (Transaction-
SQL) được sử dụng cho cơ sở dữ liệu quan hệ nâng cao.
- Các ưu điểm:
+ Giao diện SQL Server rất dễ dàng để các Backend Developer tập trung
nhiều vào việc chăm sóc dữ liệu hơn là việc nó hoạt động như thế nào.
+ Tích hợp với giao diện người dùng: SQL Server được tích hợp với ứng dụng
giao diện người dùng, thường là các ứng dụng web để cung cấp cơ chế thay đổi
dữ liệu động.
+ Vì là sản phẩm của Microsoft nên việc tích hợp framework .NET sẽ dễ dàng
hơn do chúng có cùng một tổ chức.
+ So với các phương tiện lưu trữ dữ liệu khác như Excel, văn bản,… cơ sở dữ
liệu luôn được ưa chuộng hơn chủ yếu do khả năng lưu trữ lớn, tính bảo mật
cao và sức mạnh xử lý dữ liệu.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.4. Bootstrap.
Bootstrap là một bộ sưu tập miễn phí của các mã nguồn mở và công cụ dùng để
tạo ra một mẫu webiste hoàn chỉnh. Với các thuộc tính về giao diện được quy định
sẵn như kích thước, màu sắc, độ cao, độ rộng…, các designer có thể sáng tạo
nhiều sản phẩm mới mẻ nhưng vẫn tiết kiệm thời gian khi làm việc với framework
này trong quá trình thiết kế giao diện website.
Giữa muôn vàn ứng dụng thiết kế website hiện nay, Bootstrap vẫn có khả năng
cạnh tranh cao là nhờ những đặc điểm nổi bật sau:
- Dễ dàng thao tác.
- Tùy chỉnh dễ dàng.
- Chất lượng sản phẩm đầu ra hoàn hảo.
- Độ tương thích cao.
Điểm cộng lớn nhất của Bootstrap là khả năng tương thích với mọi trình duyệt và
nền tảng. Đây là một điều cực kì quan trọng và cần thiết trong trải nghiệm người
dùng. Sử dụng Grid System cùng với hai bộ tiền xử lý Less và Sass, Bootstrap
mặc định hỗ trợ Responsive và ưu tiên cho các giao diện trên thiết bị di động hơn.
Bootstrap có khả năng tự động điều chỉnh kích thước trang website theo khung
browser. Mục đích để phù hợp với màn hình của máy tính để bàn, tablet hay
laptop.
2.5. JavaScript.
JavaScript hay còn được gọi tắt là JS, đây là một ngôn ngữ lập trình website khá
phổ biến hiện nay bên cạnh HTML và CSS. Về cơ bản ngôn ngữ JavaScript được
tích hợp để nhúng vào HTML nhằm hỗ trợ cho trang web trở nên sống động hơn.
Nói cách đơn giản, JS sẽ giúp cho website từ trạng thái “tĩnh” trở nên “động” với
nhiều hiệu ứng và hỗ trợ giúp thu hút người dùng, khiến họ có trải nghiệm tốt hơn.
Một số ưu điểm nổi bật của JS có thể kể ra như:
- Không khó để học tập và tìm hiểu.
- Những bug (lỗi) trong quá trình soạn thảo Javascript rất dễ để phát hiện, từ đó
giúp bạn sửa lỗi một cách nhanh chóng hơn.
- Những trình duyệt web có thể biên dịch thông qua HTML mà không cần sử
dụng đến một compiler khác.
- JavaScript có thể hoạt động ở trên nhiều nền tảng và hỗ trợ nhiều trình duyệt
web khác nhau.
- Dễ thao tác plugin với các element của một số nền tảng trang web khác.
- Công cụ đắc lực tạo các trang web “động” thu hút người dùng.
- Giao diện giàu tính năng và hỗ trợ lập trình viên
- Đây là một ngôn ngữ phổ biến, với cộng đồng hỗ trợ lớn mạnh.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

2.6. Docker.
Docker là một nền tảng ảo hóa dựa trên containers (đối tượng chứa). Containers
là một cách để đóng gói và triển khai ứng dụng cũng như tất cả các phụ thuộc của
chúng một cách đồng nhất, đảm bảo rằng ứng dụng sẽ chạy môi trường giống nhau
mỗi lần nó được triển khai, bất kể môi trường hệ thống nền là gì.
Một số khái niệm quan trọng trong Docker bao gồm:
- Image (Hình ảnh): Là một gói đóng gói chứa mọi thứ cần thiết để chạy một
ứng dụng, bao gồm mã nguồn, thư viện, biên dịch, môi trường thực thi, và cấu
hình.
- Container (Đối tượng chứa): Là một thể hiện của một hình ảnh. Containers là
các quá trình chạy độc lập, cô lập từ môi trường hệ thống bên ngoài, nhưng vẫn
chia sẻ hạ tầng và tài nguyên với máy chủ.
- Dockerfile: Là một tệp cấu hình văn bản mô tả cách Docker nên xây dựng một
hình ảnh.
- Docker Hub: Là một dịch vụ trực tuyến cho phép chia sẻ và quản lý các hình
ảnh Docker. Người dùng có thể tìm kiếm, tải về, và chia sẻ hình ảnh qua Docker
Hub.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

3. Thiết kế cơ sở dữ liệu.
3.1. Xác định thực thể.
Quyen(IdQuyen, ChucVu).
TaiKhoan(TenDangNhap, MatKhau, TrangThai).
NhanVien(MaNhanVien, Ho, Ten, GioiTinh, DiaChi, NgaySinh, SDT, Email,
MST, HinhAnh, HopDong, SoBHXH).
KhachHang(MaKhachHang, Ho, Ten, GioiTinh, DiaChi, NgaySinh, SDT, Email,
MST, HinhAnh, DiemTichLuy).
NhaCungCap(MaNhaCungCap, TenNhaCungCap).
DonDatNguyenLieu(IdDonDatNguyenLieu, NgayDat).
PhieuNhapHang(IdPhieuNhapHang, NgayLapPhieuNhap).
Size(IdSize, TenSize).
NguyenLieu(IdNguyenLieu, TenNguyenLieu, HinhAnh, SoLuong).
LoaiSanPham(IdLoaiSanPham, TenLoai).
SanPham(IdSanPham, TenSanPham, HinhAnh, CachPhaChe).
BangGia(IdGia, TenLoaiGia, NgayApDung).
Voucher(IdVoucher, NoiDung, NgayApDung, NgayHetHan, PhanTramGiam,
TienGiam).
DonHang(IdDonHang, TrangThaiDonHang, NgayLap).
HoaDon(IdHoaDon, NgayLap, SDT, DiaChi, ThanhToanOnline, TongHoaDon).

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

3.2. ERD.

3.3. Lược đồ quan hệ dữ liệu.


- Chú thích:
*Gạch chân 1 khóa: khóa chính
*Gạch chân liền nhiều khóa: khóa duy nhất
*In nghiêng: khóa ngoại
Quyen(IdQuyen, ChucVu).
TaiKhoan(TenDangNhap, MatKhau, TrangThai, IdQuyen).
NhanVien(MaNhanVien, Ho, Ten, GioiTinh, DiaChi, NgaySinh, SDT, Email,
MST, HinhAnh, HopDong, SoBHXH).
KhachHang(TenDangNhap, Ho, Ten, GioiTinh, DiaChi, NgaySinh, SDT,
Email, MST, HinhAnh, DiemTichLuy).
DonDatNguyenLieu(IdDonDatNguyenLieu, NgayDat, MaNhanVien).
NhaCungCap(MaNhaCungCap, TenNhaCungCap).
NguyenLieu(IdNguyenLieu, TenNguyenLieu, HinhAnh, SoLuong).
CT_NguyenLieu(IdCTNguyenLieu, IdNguyenLieu, MaNhaCungCap, Ngay,
Gia).
CT_DonDatHang(IdCTDonDatHang, IdDonDatNguyenLieu, IdNguyenLieu,
MaNhaCungCap, SoLuong).
PhieuNhapHang(IdPhieuNhapHang, NgayLapPhieuNhap, MaNhanVien).

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

CT_PhieuNhapHang(IdCTPhieuNhapHang, IdCTDonDatHang,
IdPhieuNhapHang, SoLuongNhap, DonGia).
LoaiSanPham(IdLoaiSanPham, TenLoai).
SanPham(IdSanPham, TenSanPham, HinhAnh, CachPhaChe, IdLoaiSanPham)
Size(IdSize, TenSize).
CT_SanPham_Size(IdSanPhamSize, IdSize, IdSanPham, GiaHienThoi).
CongThuc(IdCongThuc, IdSanPhamSize, IdNguyenLieu, SoLuong, DonVi).
BangGia(IdBangGia, TenLoaiGia, NgayApDung).
CT_BangGia(IdCTBangGia, IdSanPhamSize, IdBangGia, Gia).
GioHang(IdGioHang, TenDangNhap, IdSanPhamSize, SoLuong).
Voucher(IdVoucher, NoiDung, NgayApDung, NgayHetHan, PhanTramGiam,
TienGiam).
HoaDon(IdHoaDon, NgayLap, TongHoaDon, IdVoucher, IdDonHang).
DonHang(IdDonHang, TrangThaiDonHang, NgayLap, TenDangNhap,
IdHoaDon).
CT_DonHang(IdCTDonHang, IdDonHang, IdSanPhamSize, GiaBan, SoLuong).

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

3.4. Từ điển dữ liệu.


a. Bảng Quyền.
Quyen(IdQuyen, ChucVu, CapDo)

STT Thuộc tính Kiểu dữ liệu Độ dài Ràng buộc Ghi chú

1 IdQuyen int Primary key Id Quyền

2 ChucVu nvarchar 20 Not Null Chức vụ

b. Bảng Tài khoản.


TaiKhoan(TenDangNhap, MatKhau, TrangThai, IdQuyen)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 TenDangNhap nvarchar 50 Primary Tên đăng nhập


key

2 MatKhau nvarchar 50 Not Null Mật khẩu

3 TrangThai Int Not null 1: Được phép login


0: Không được phép
login

4 IdQuyen Int Foreign Id quyền


key

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

c. Bảng Nhân viên.


NhanVien(MaNhanVien, Ho, Ten, GioiTinh, DiaChi, NgaySinh, SDT, Email, MST,
HinhAnh, HopDong, SoBHXH)

STT Thuộc tính Kiểu dữ liệu Độ dài Ràng buộc Ghi chú

1 MaNhanVien nvarchar 50 Primary key Mã nhân viên

2 Ho nvarchar 10 Not Null Họ nhân viên

3 Ten nvarchar 50 Not null Tên nhân viên

4 GioiTinh nvarchar 5 Not null Giới tính

5 DiaChi nvarchar 200 Not null Địa chỉ

6 NgaySinh Date Not null Ngày sinh

7 SDT nvarchar 10 Not null Số điện thoại

8 Email nvarchar 100 Not null Email

9 MST nvarchar 15 Null Mã số thuế

10 HinhAnh nvarchar 100 Null Hình ảnh

11 HopDong String Null Hợp đồng

12 SoBHXH nvarchar 15 Null Số bảo hiểm xã hội

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

d. Bảng Khách hàng.


KhachHang(TenDangNhap, Ho, Ten, GioiTinh, DiaChi, NgaySinh, SDT, Email,
MST, HinhAnh, DiemTichLuy)

STT Thuộc tính Kiểu dữ liệu Độ dài Ràng buộc Ghi chú

1 TenDangNhap nvarchar 50 Primary key Tên đăng nhập

2 Ho nvarchar 10 Not Null Họ khách hàng

3 Ten nvarchar 50 Not null Tên khách hàng

4 GioiTinh nvarchar 5 Not null Giới tính

5 DiaChi nvarchar 200 Not null Địa chỉ

6 NgaySinh Date Null Ngày sinh

7 SDT nvarchar 10 Not null Số điện thoại

8 Email nvarchar 100 Null Email

9 MST nvarchar 15 Null Mã số thuế

10 HinhAnh nvarchar 100 Null Hình ảnh

11 DiemTichLuy Float Null Điểm tích lũy

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

e. Bảng Đơn đặt nguyên liệu.


DonDatNguyenLieu(IdDonDatNguyenLieu, NgayDat, MaNhanVien)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdDonDatNguyenLieu Int Primary Id đơn đặt nguyên


key liệu

2 NgayDat Date Not Null Ngày đặt

3 MaNhanVien nvarchar 10 Foreign Mã nhân viên


key

f. Bảng Nhà cung cấp.


NhaCungCap(MaNhaCungCap, TenNhaCungCap)

STT Thuộc tính Kiểu dữ liệu Độ Ràng buộc Ghi chú


dài

1 MaNhaCungCap Nvarchar 10 Primary key Mã nhà cung cấp

2 TenNhaCungCa Nvarchar 10 Not Null Tên nhà cung cấp


p

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

g. Bảng Nguyên liệu.


NguyenLieu(IdNguyenLieu, TenNguyenLieu, HinhAnh, SoLuong)

STT Thuộc tính Kiểu dữ liệu Độ Ràng buộc Ghi chú


dài

1 IdNguyenLieu Int Primary Id nguyên


key liệu(tăng tự
động)

2 TenNguyenLieu Nvarchar 50 Not Null Tên nguyên liệu

3 HinhAnh Nvarchar 50 Null Hình ảnh

4 SoLuong Float Not null Số lượng

h. Bảng Chi tiết nguyên liệu.


CT_NguyenLieu(IdCTNguyenLieu, IdNguyenLieu, MaNhaCungCap, Ngay, Gia)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdCTNguyenLieu Int Primary key Id chi tiết nguyên


liệu(tăng tự động)

2 IdNguyenLieu Int Unique Key, Id nguyên liệu


Foreign key

3 MaNhaCungCap Nvarchar 50 Unique Key, Mã nhà cung cấp


Foreign key

4 Ngay Date Unique Key Ngày

5 Gia Float Not null Giá

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

i. Bảng Chi tiết đơn đặt hàng.


CT_DonDatHang(IdCTDonDatHang, IdDonDatNguyenLieu, IdNguyenLieu,
MaNhaCungCap, SoLuong)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdCTDonDatHang Int Primary key Id chi tiết đơn đặt


hàng(tăng tự
động)

2 IdDonDatNguyenLieu Int Unique Key, Id đơn đặt nguyên


Foreign key liệu

3 IdNguyenLieu Int Unique Key, Id nguyên liệu


Foreign key

4 MaNhaCungCap Nvarchar 10 Unique Key, Mã nhà cung cấp


Foreign key

5 SoLuong Float Not null Số lượng

j. Bảng Phiếu nhập hàng.


PhieuNhapHang(IdPhieuNhapHang, NgayLapPhieuNhap, MaNhanVien)

STT Thuộc tính Kiểu dữ Độ Ràng Ghi chú


liệu dài buộc

1 IdPhieuNhapHang Int Primary Id phiếu nhập


key hàng(tăng tự động)

2 NgayLapPhieuNhap Date Not null Ngày lập phiếu

3 MaNhanVien Nvarchar 10 Foreign Mã nhân viên


key

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

k. Bảng Chi tiết phiếu nhập hàng.


CT_PhieuNhapHang(IdCTPhieuNhapHang, IdCTDonDatHang,
IdPhieuNhapHang, SoLuongNhap, DonGia)

STT Thuộc tính Kiểu Độ Ràng buộc Ghi chú


dữ liệu dài

1 IdCTPhieuNhapHang Int Primary key Id chi tiết phiếu nhập


hàng(tăng tự động)

2 IdCTDonDatHang Int Unique Key, Id chi tiết đơn đặt


Foreign key hàng

3 IdPhieuNhapHang Int Unique Key, Id phiếu nhập hàng


Foreign key

4 SoLuongNhap Float Not null Số lượng nhập

5 DonGia Float Not null Đơn giá

l. Bảng Loại sản phẩm.


LoaiSanPham(IdLoaiSanPham, TenLoai)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdLoaiSanPham Int Primary key Id loại sản phẩm(tăng


tự động)

2 TenLoai Nvarchar 50 Unique key, Tên loại


Not null

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

m. Bảng Sản phẩm.


SanPham(IdSanPham, TenSanPham, HinhAnh, CachPhaChe, IdLoaiSanPham)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdSanPham Int Primary key Id sản phẩm(tăng tự


động)

2 TenSanPham Nvarchar 50 Unique Key, Tên sản phẩm


Not null

3 HinhAnh Nvarchar 50 Null Hình ảnh

4 CachPhaChe Nvarchar 200 Not null Cách pha chế

5 IdLoaiSanPham int Foreign key Số lượng nhập

n. Bảng Size.
Size(IdSize, TenSize)

STT Thuộc tính Kiểu dữ liệu Độ dài Ràng buộc Ghi chú

1 IdSize Int Primary key Id size(tăng tự động)

2 TenSize Nvarchar 5 Not null Tên size

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

o. Bảng Chi tiết sản phẩm – Size.


CT_SanPham_Size(IdSanPhamSize, IdSize, IdSanPham, GiaHienThoi)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdSanPhamSize Int Primary key Id sản phẩm -


size(tăng tự động)

2 IdSize Int Unique Key, Id size


Foreign key

3 IdSanPham int Unique Key, Id sản phẩm


Foreign key

4 GiaHienThoi Float Not null Giá hiện thời

p. Bảng Công thức.


CongThuc(IdCongThuc, IdSanPhamSize, IdNguyenLieu, SoLuong, DonVi)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdCongThuc Int Primary key Id công thức(tăng


tự động)

2 IdSanPhamSize Int Unique Key, Id sản phẩm - size


Foreign key

3 IdNguyenLieu Int Unique Key, Id nguyên liệu


Foreign key

4 SoLuong Float Not null Số lượng

5 DonVi Nvarchar 10 Not null Đơn vị

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

q. Bảng Bảng giá.


BangGia(IdBangGia, TenLoaiGia, NgayApDung)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdBangGia Int Primary Id bảng giá(tăng tự


key động)

2 TenLoaiGia Nvarchar 100 Not null Tên loại giá

3 NgayApDung Date Not null Ngày áp dụng

r. Bảng Chi tiết bảng giá.


CT_BangGia(IdCTBangGia, IdSanPhamSize, IdBangGia, Gia)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdCTBangGia Int Primary key Id chi tiết bảng


giá(tăng tự động)

2 IdSanPhamSize Int Unique Key, Id sản phẩm - size


Foreign key

3 IdBangGia Int Unique Key, Id bảng giá


Foreign key

4 Gia float Not null Giá

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

s. Bảng Giỏ hàng.


GioHang(IdGioHang, TenDangNhap, IdSanPhamSize, SoLuong)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdGioHang Int Primary key Id giỏ hàng(tăng tự


động)

2 TenDangNhap Nvarchar 50 Unique Key, Tên đăng nhập của


Foreign key tài khoản

3 IdSanPhamSize Int Unique Key, Id sản phẩm - size


Foreign key

4 SoLuong int Null Số lượng

t. Bảng Voucher.
Voucher(IdVoucher, NoiDung, NgayApDung, NgayHetHan, PhanTramGiam,
TienGiam)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdVoucher Int Primary Id Voucher(tăng tự


key động)

2 NoiDung Nvarchar 100 Not null Nội dung

3 NgapApDung Date Null Ngày áp dụng

4 NgayHetHan Date Null Ngày hết hạn

5 PhanTramGiam Float Not null Phần trăm giảm

6 TienGiam Float Null Tiền giảm

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

u. Bảng Hóa đơn.


HoaDon(IdHoaDon, NgayLap, TongHoaDon, IdVoucher, IdDonHang, DiaChi,
SDT, ThanhToanOnline)

STT Thuộc tính Kiểu dữ Độ Ràng Ghi chú


liệu dài buộc

1 IdHoaDon Int Primary Id Voucher(tăng tự động)


key

2 NgapLap Date Not null Ngày lập

3 TongHoaDon Float Not null Tổng hóa đơn

4 IdVoucher Int Foreign Id voucher


key

5 IdDonHang int Foreign Id đơn hàng


key

6 DiaChi Nvarchar 100 Not null Địa chỉ khách hàng

7 SDT Varchar 10 Not null Số điện thoại khách hàng

8 ThanhToanOnline Int Null Kiểm tra người dùng có


thanh toán online

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

v. Bảng Đơn hàng.


DonHang(IdDonHang, TrangThaiDonHang, NgayLap, TenDangNhap, IdHoaDon)

STT Thuộc tính Kiểu dữ Độ Ràng Ghi chú


liệu dài buộc

1 IdDonHang Int Primary Id Đơn hàng(tăng tự


key động)

2 TrangThaiDonHang Nvarchar 20 Not null Trạng thái đơn hàng

3 NgayLap Date Not null Ngày lập

4 TenDangNhap Nvarchar 10 Foreign Tên đăng nhập của


key tài khoản

5 IdHoaDon int Foreign Id đơn hàng


key

w. Bảng Chi tiết đơn hàng.


CT_DonHang(IdCTDonHang, IdDonHang, IdSanPhamSize, GiaBan, SoLuong)

STT Thuộc tính Kiểu dữ Độ Ràng buộc Ghi chú


liệu dài

1 IdCTDonHang Int Primary key Id chi tiết đơn


hàng(tăng tự động)

2 IdDonHang int 20 Unique Key, Id đơn hàng


Foreign key

3 IdSanPhamSize Int Unique Key, Id sản phẩm - size


Foreign key

4 GiaBan float 10 Not null Giá bán

5 SoLuong int Not null Id đơn hàng

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

3.5. Diagram.

3.6. Lược đồ phân rã hệ thống con.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

3.7. Thiết kế một số giao diện người dùng chính.

Giao diện: Đăng nhập.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Giao diện: Đăng ký 1.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Giao diện: Đăng ký 2.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Giao diện: Trang chủ.

Giao diện: Chọn món.

Nhóm 9.
GVHD:ThS. Dương Thanh Thảo Phân tích và thiết kế hệ thống thông tin (INT1342).

Giao diện: Quản lý nhân viên.


Đường dẫn thiết kế:
https://www.figma.com/file/BwfCpVFGYWde8szZ3XeHAG/PhucLongOnline?
type=design&node-id=0%3A1&mode=design&t=JCQa7vXqL85XuNEU-1

Nhóm 9.

You might also like