HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN
----------
BÁO CÁO BÀI TẬP LỚN
MÔN HỌC: THỰC TẬP CƠ SỞ
ĐỀ TÀI: WEBSITE BÁN ĐỒ ĂN
Sinh viên thực hiện: Nguyễn Thành Dương– B19DCCN157
Lê Khánh Linh – B19DCCN373
Nguyễn Văn Hiếu-B19DCCN253
Nhóm bài tập :3
Hà Nội – 2022
MỤC LỤC
LỜI MỞ ĐẦU
5
CHƯƠNG I KHẢO SÁT HIỆN TRẠNG VÀ XÁC LẬP DỰ ÁN
6
1. Khảo sát hiện trạng và đánh giá hiện trạng:
6
1.1. Khảo sát hiện trạng
6
1.2. Đánh giá hiện trạng và mục đích chọn đề tài
6
2. Xác lập dự án
6
2.1. Phạm vi dự án
6
2.2. Mục tiêu và nhiệm vụ
6
3. Các yêu cầu của hệ thống
7
3.1. Các yêu cầu chức năng
7
3.2. Các u cầu phi chức năng
7
Chương II: MƠ HÌNH HÓA YÊU CẦU
1. Xác định UC các tác nhân của hệ thống
8
8
1.1 Khách vãng lai
8
1.2 Khách Hàng thành viên
8
1.3 Quản trị viên
9
2. Đặc tả usecase
10
2.1 UC Đăng ký
10
2.2 UC Đăng Nhập
10
2.3 UC Tìm kiếm Món ăn, nước uống
10
2.4 UC đặt món
10
2.5 UC cập nhật thơng tin giỏ hàng
11
2.6 UC đặt hàng
11
4. Mơ hình ER
11
5. Thiết Kế CSDL
11
CHƯƠNG III: TRIỂN KHAI DỰ ÁN LÊN WEBSITE
18
1. Kết quả triển khai trên website
KẾT LUẬN
22
1. Ưu điểm
22
2. Những việc chưa đạt được
22
3. Hướng phát triển
22
LỜI CẢM ƠN
Lời đầu tiên nhóm em xin cảm ơn các thầy cô giáo thuộc Khoa Công nghệ
thông tin đã dạy cho chúng em những kiến thức, thực hành trong suốt ba năm
em học tại trường.
Nhóm em xin trân thành cảm ơn cô , là giáo viên hướng dẫn và giúp đỡ
nhóm em tận tình trong thời gian thực hiện đề tài thực tập.
Trong quá trình thực hiện đề tài, do kiến thức và thời gian cịn hạn chế
nên khơng thể tránh những sai sót. Vì vậy bọn em mong cơ thơng cảm và góp
ý để em hồn thiện đề tài của mình.
Một lần nữa chúng em xin chân thành cảm ơn!
LỜI MỞ ĐẦU
Hiện nay thế giới bước vào nền công nghiệp 4.0, để bắt kịp với các nước
trong khu vực và trên thế giới, Việt Nam cần phải hội nhập vào nền công nghệ
kỹ thuật số và phát triển kinh tế theo mơ hình “kinh tế số” hay kinh tế kỹ
thuật số. “Kinh tế số” là bước phát triển tất yếu, phù hợp với xu thế mới,
mang lại hiệu quả và giá trị lợi nhuận cao trong khi nền kinh tế truyền thống
đang dần bão hòa. Tuy nhiên, theo nhận định của các chuyên gia, kinh tế số
hóa ở Việt Nam hiện mới chỉ tập trung vào khía cạnh liên lạc, giải trí và thơng
tin, trong khi nhiều lĩnh vực khác như thương mại điện tử vẫn còn nhiều
thách thức.
Hiện nay thương mại điện tử ngày càng được ứng dụng rộng rãi ở nước
ta dưới nhiều hình thức khác nhau và một trong số đó là dịch vụ mua bán qua
mạng internet hay bán hàng trực tuyến.Với một quốc gia hơn 53% dân số sử
dụng internet và gần 50 triệu thuê bao sử dụng smartphone, thị trường
thương mại điện tử ở Việt Nam được dự đoán rất tiềm năng và sẽ bùng nổ
trong thời gian tới.
Thương mại điện tử ngày một phát triển và cùng với đó là sự phát triển
của các ngơn ngữ lập trình cho phép bạn thiết kế và xây dựng các ứng dụng
thương mại điện tử dưới nhiều hình thức khác nhau. Đặc biệt với sự hỗ trợ
của các hệ quản trị cơ sở dữ liệu, bạn có thể kết hợp chúng với một kịch bản
trình chủ như: ASP, JSP, Perl, PHP,… để triển khai nhiều ứng dụng với nhiều
mục đích khác nhau.
Trong đề tại tốt nghiệp lần này, để ứng dụng công nghệ thông tin vào
dịch vụ buôn bán mặt hàng thức ăn nhanh, em đã chọn đề tài Xây dựng
website bán đồ ăn theo thể thức thương mại điện tử.
CHƯƠNG I
KHẢO SÁT HIỆN TRẠNG VÀ XÁC LẬP DỰ ÁN
1. Khảo sát hiện trạng và đánh giá hiện trạng:
1.1. Khảo sát hiện trạng:
Hiện tại các cửa hàng bán thức ăn , đồ ăn trên địa bàn thành phố Hà
Nội cũng như một số tỉnh thành phố khác hầu hết đều có phương thức
đặt đồ ăn online.Với nhiều phần mềm lớn shopee food ,grab food
,beamin,..
1.2. Đánh giá hiện trạng và mục đích chọn đề tài:
- Việc chỉ bán hàng trực tiếp tại các cửa hàng hạn chế rất lớn việc tiếp
cận và thu hút khách hàng, hạn chế danh tiếng của doanh nghiệp cũng như
tiềm năng phát triển.
- Mục đích nhóm chọn đề tài này nhằm tạo ra một website cho các cửa
hàng đồ ăn vừa và nhỏ có thể tiếp cận kinh doanh đồ ăn nhanh trực tuyến,
mở rộng tiềm năng kinh tế và dễ dàng tiếp cận và thu hút nhiều khách
hàng qua website này.
2.
Xác lập dự án
2.1. Phạm vi dự án :
Dự án được triển khai cho các công ty, cửa hàng bán đồ ăn vừa và nhỏ
cho các tỉnh, thành phố.
2.2. Mục tiêu và nhiệm vụ:
2.2.1 Mục tiêu:
Mục tiêu của đề tài này là xây dựng một website với giao diện trực
quan, dễ dàng sử dụng, hỗ trợ quản lý, theo dõi được hoạt động của cửa
hàng từ xa.
2.2.2 Nhiệm vụ:
- Nghiên cứu và nắm vững quá trình xây dựng một website hồn chỉnh
trên mơ hình MVC.
- Sử dụng thành thục các công cụ hỗ trợ của apache netbean và với
ngôn ngữ Java.
- Nắm bắt được cách vận hành của một hệ thống bán hàng qua mạng.
3.
Các yêu cầu của hệ thống:
3.1. Các yêu cầu chức năng:
+ Hỗ trợ nghiệp vụ:Nhập, lưu trữ,quản lý thông tin món ăn, thức
uống… của cửa hàng.
+ Hỗ trợ quản lý các thơng tin khách hàng.
+ Hỗ trợ nhanh chóng chính xác việc tra cứu thông tin của từng khách
hàng, sản phẩm.
3.2. Các yêu cầu phi chức năng
+ Website thao tác dễ dàng, giao diện đẹp mắt.
+ Cho phép truy cập dữ liệu đa người dùng. Người dùng có thể truy cập
dữ liệu đồng thời.
+ Giao diện dễ dùng, trực quan, gần gũi với người sử dụng.
+ Hướng dẫn sử dụng dễ hiểu, dễ thực hiện.
+ Ngôn ngữ trong hệ thống phải phổ biến phù hợp với nhiều người
dùng.
Chương II: MƠ HÌNH HĨA U CẦU
1.
Xác định UC các tác nhân của hệ thống
Chương trình website bán thức ăn gồm có 3 tác nhân chính: khách vãng
lai, khách hàng thành viên và quản trị viên hệ thống.
1.1.
Khách vãng lai:
❖ Là khách hàng truy cập vào trang website của cửa hàng nhưng chưa
đăng ký thành viên hoặc chưa đăng nhập vào hệ thống.
❖ Các chức năng chính:
● Đăng ký: Khách hàng thực hiện thao tác Đăng ký khi click vào link đăng
ký trong mục Đăng Nhập/Đăng ký, trang web sẽ chuyển hướng đến
trang Đăng ký thành viên. Người dùng nhập thông tin như: username,
password, Email rồi ấn nút đăng ký.
● Xem sản phẩm: Các sản phẩm được hiển thị trên trang chủ theo dạng
bảng, người dùng có thể ấn vào xem thông tin chi tiết để biết chi tiết về
sản phẩm.
1.2.
Khách Hàng thành viên:
● Là khách hàng đã thực hiện đăng ký thành viên và đăng nhập tài khoản
thành viên vào hệ thống.
● Đăng nhập: Khách hàng nhập username và password vào mục Đăng
nhập tài khoản thành viên (tài khoản được tạo sau khi đăng ký) và click
vào nút đăng nhập. Hệ thống sẽ trả lại thông báo đăng nhập thất bại
nếu người dùng nhập sai thông tin, ngược lại nếu không nhận được
thông báo thất bại tức là đã đăng nhập thành công và chuyển hướng
đến trang chủ.
● Xem sản phẩm: các sản phẩm được hiển thị dưới dạng danh sách,
khách hàng có thể click vào hình ảnh sản phẩm để xem thông tin chi
tiết.
● Mua/Đặt hàng: Người dùng lựa chọn món ăn, nước uống từ cửa sổ
sản phẩm tại trang chủ và ấn vào nút thêm vào giỏ hàng cho từng sản
phẩm được chọn, hệ thống sẽ thêm sản phẩm được chọn vào giỏ hàng
của tài khoản khách hàng đang sử dụng, tiếp theo khách hàng có thể
truy cập vào trang giỏ hàng điều chỉnh ( thêm sản phẩm hoặc loại bỏ
sản phẩm) giỏ hàng của mình, sau khi đã hợp ý khách hàng có thể ấn
vào nút đặt hàng vào xác nhận thơng tin đặt hàng.
● Cập nhật thông tin giỏ hàng: khách hàng có thể truy cập vào trang giỏ
hàng điều chỉnh (thêm sản phẩm hoặc loại bỏ sản phẩm) giỏ hàng của
mình, theo dõi đơn hàng và hủy đơn hàng.
1.3.
Quản trị viên:
+Là người giám sát và thực hiện, điều khiển các chức năng của hệ
thống
● Các tài khoản được đăng ký thành công được hệ thống lưu trữ vào
csdl, Quản trị viên quản lý các tài khoản đã đăng ký thành công.
● Cập nhật thông tin sản phẩm: quản trị viên sau khi xác nhận thơng tin
hàng hóa được chuyển về cửa hàng có thể điều chỉnh trên hệ thống các
thơng tin về sản phẩm như: giá cả, số lượng…hoặc thêm sản phẩm
mới cũng như xóa bỏ sản phẩm khỏi hệ thống.
● Quản lý danh mục sản phẩm: Trang web cung cấp cho khách hàng
những thông tin cần thiết về các món ăn, nước uống được chia theo
dạng danh mục, mỗi danh mục có nhiều loại sản phẩm liên quan, quản
trị viên sẽ quản lý, cập nhật thường xuyên thông tin các loại sản phẩm
trong danh mục. Cụ thể các danh mục được chia như sau:
o Thức ăn
▪ Gà Rán
▪ Pizza
▪ Hamburger
▪ Kem
o Nước uống
▪ Nước tinh khiết / Nước có ga
▪ Trà / Trà Sữa
▪ Bia
● Quản lý danh mục hình ảnh: Hình ảnh của từng sản phẩm được cập
nhật liên tục và được quản lý theo dạng danh mục, mỗi danh mục cũng
có nhiều loại sản phẩm và trong mỗi loại sản phẩm sẽ có hình ảnh của
từng sản phẩm liên quan.
● Quản lý nhân viên: người quản lý phân công công việc cụ thể đến cho
từng nhân viên. Mỗi nhân viên được sắp xếp cơng việc phù hợp, ứng
với mỗi vị trí một nhân viên sẽ làm nhiệm vụ của mình, sau khi người
quản lý nhận được đơn hàng sẽ chuyển thông tin các món ăn, nước
uống được khách hàng chọn cho bộ phận chế biến để tiến hành chế
biến món ăn và cuối cùng là chuyển giao cho bộ phận giao hàng để giao
cho khách hàng.
2. Đặc tả usecase
2.1 UC Đăng ký:
Actor: Khách vãng lai
Input: - Trang đăng ký/đăng nhập được hiển thị.
❖ Người dùng chọn đăng ký và nhập thông tin đăng ký (ID,
password, thông tin cá nhân).
❖ Hệ thống tiếp nhận thơng tin – kiểm tra (ID có tồn tại trong
csdl hay không), cập nhật csdl.
❖ Trả lại thông báo đăng ký Thành công hoặc đăng ký thất
bại.
Output: - Nếu đăng ký thành công tài khoản thành viên được kích hoạt,
ngược lại đăng ký thất bại báo lỗi tài khoản đã tồn tại người dùng phải
đăng ký tên tài khoản mới.
2.2 UC Đăng Nhập:
Actor: Quản trị viên và thành viên
Input: - Trang đăng ký/đăng nhập được hiển thị
❖ Người dùng nhập ID và password rồi chọn đăng nhập.
❖ Hệ thống kiểm tra thơng tin đăng nhập có tồn tại trong csdl hay
không.
Output:
❖ Nếu ID và password trùng khớp với dữ liệu được lưu thì đăng
nhập thành cơng trang hiển thị được đưa về trang chủ hoặc trang
trước đó.
❖ Nếu ID hoặc password khơng trùng khớp với dữ liệu được lưu
thì thơng báo tài khoản hoặc mật khẩu khơng đúng.
2.3 UC Tìm kiếm Món ăn, nước uống:
Actor: Khách hàng
Input: - Trang thơng tin sản phẩm được hiển thị
❖ Người dùng chọn các danh mục loại sản phẩm muốn tìm kiếm và
chọn
Output: - Danh sách các sản phẩm cùng loại với loại sản phẩm được
chọn được hiển thị hoặc gần đúng với tên sản phẩm được tìm kiếm.
2.4 UC đặt món:
Actor: Thành viên
Input: - Trang thông tin sản phẩm được hiển thị.
❖ Người dùng chọn món ăn, nước uống.
❖ Tại giao diện giỏ hàng chọn món cần thanh tốn
❖ Hệ thống xác nhận đơn hàng.
Output: - Khách hàng được thông báo thông tin hàng được giao.
2.5 UC cập nhật thông tin giỏ hàng:
Actor: Thành viên
Input: - Trang giỏ hàng được hiển thị.
❖ Các sản phẩm được chọn nằm trong giỏ hàng, khách hàng có thể
thực hiện tác vụ chọn thêm sản phẩm hoặc loại sản phẩm khỏi
giỏ hàng.
Output: Thông tin giỏ hàng được cập nhật.
2.6 UC đặt hàng:
Actor: Thành viên
Input: - Trang giỏ hàng được hiển thị.
❖ Các sản phẩm được chọn nằm trong giỏ hàng, khách hàng sau khi
hoàn tất điều chỉnh giỏ hàng và ấn vào nút Đặt hàng. Hệ thống sẽ
chuyển đến trang Đặt hàng
Output: Trang đặt hàng sẽ tính tiền và đưa ra hóa đơn thanh tốn.
4. Mơ hình ERD
5.Thiết kế cơ sở dữ liệu:
● Cài đặt hệ thống gồm 4 bảng dữ liệu
● Bảng user
STT
Tên
Mô tả
Kiểu
Ràng
buộc
1
ID
mã của
user
int(11)
Primary
Key
2
Name
tên của
user
varchar(25
0)
Not null
3
Email
tài khoản
gmail của
user
varchar(25
0)
Not null
4
Password
mật khẩu varchar(25
0)
Not null
CREATE TABLE `users` (
Ghi chú
`id` int(11) NOT NULL,
`name` varchar(250) NOT NULL,
`email` varchar(250) NOT NULL,
`password` varchar(250) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--- Đang đổ dữ liệu cho bảng `users`
-INSERT INTO `users` (`id`, `name`, `email`, `password`) VALUES
(1, 'Duong', '', '123456'),
(3, 'Hieu', '', '123456'),
(6, 'Linh', '', '123456'),
(7, 'Thang', '', '123456');
Kết quả đạt được:
● Bảng Bill
STT
Tên
Mô tả
Kiểu
Ràng
buộc
1
ID
mã bill
int(11)
Primary
Key
2
P_id
mã food
int(11)
Foreign
Key
3
u_id
mã user
int(11)
Foreign
Key
4
o_quantity
số
lượng
int(11)
5
o_date
ngày đặt varchar(4
hàng
50)
CREATE TABLE `bill` (
Ghi chú
Not null
Not null
`o_id` int(11) NOT NULL,
`p_id` int(11) NOT NULL,
`u_id` int(11) NOT NULL,
`o_quantity` int(11) NOT NULL,
`o_date` varchar(450) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--- Đang đổ dữ liệu cho bảng `bill`
-INSERT
INTO
`bill` (`o_id`,
`o_date`) VALUES
(34, 2, 1, 1, '2022-05-09'),
(35, 3, 1, 1, '2022-05-09'),
(36, 7, 1, 1, '2022-05-09'),
(37, 13, 1, 1, '2022-05-09');
`p_id`,
`u_id`,
`o_quantity`,
Kết quả đạt được:
● Bảng Food
STT
Tên
Mô tả
Kiểu
Ràng
buộc
Ghi
chú
1
id
mã đồ ăn
int(11)
Primary
Key
2
name
tên đồ ăn varchar(450)
3
c_id
mã loại
đồ ăn
int(11)
4
price
giá tiền
double
Not
null
5
image
hình ảnh
varchar(450)
Not
Not
null
Foreign
Key
đồ ăn
null
CREATE TABLE `food` (
`id` int(11) NOT NULL,
`name` varchar(450) NOT NULL,
`c_id` int(11) NOT NULL,
`price` double NOT NULL,
`image` varchar(450) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--- Đang đổ dữ liệu cho bảng `food`
-INSERT INTO `food` (`id`, `name`, `c_id`, `price`,
VALUES
(1, 'Milk Coffee', 1, 13.5, 'milk coffee.jpg'),
(2, 'Black Coffee', 1, 12, 'black coffee.jpg'),
(3, 'Orange Juice', 1, 6, 'orange juice.jpg'),
(4, 'Matcha Tea', 1, 5, 'matcha tea.jpg'),
(5, 'C2 Tea', 1, 5, 'c2 tea.jpg'),
(6, 'Hamburger', 2, 10.5, 'hamburger.jpg'),
(7, 'Pizza', 2, 20, 'pizza.jpg'),
(8, 'Banh My', 2, 5, 'banh my.jpg'),
(9, 'Pho', 2, 5.5, 'pho.jpg'),
(10, 'Bun Cha', 2, 5, 'bun cha.jpg'),
(11, 'Matcha Ice-cream', 3, 3, 'matcha ice-cream.jpg'),
(12, 'Socola Ice-cream', 3, 3, 'socola ice-cream.jpg'),
(13, 'Milk Ice-cream', 3, 3, 'milk ice-cream.jpg'),
(14, 'Socola Cake', 3, 10, 'socola cake.jpg'),
(15, 'Strawberry Cake', 3, 10, 'strawberry cake.jpg');
Kết quả đạt được:
`image`)
● Bảng Category
STT
Tên
Mô tả
Kiểu
Ràng
buộc
1
ID
mã loại
đồ ăn
int(11)
Primary
Key
2
name
tên loại
đồ ăn
varchar(25
0)
CREATE TABLE `category` (
`id` int(11) NOT NULL,
`name` varchar(250) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--- Đang đổ dữ liệu cho bảng `category`
-INSERT INTO `category` (`id`, `name`) VALUES
Ghi chú
Not null
(1, 'Drink'),
(2, 'Food'),
(3, 'Dessert');
Kết quả đạt được:
Các câu lệnh cài đặt các ràng buộc:
--- Chỉ mục cho bảng `bill`
-ALTER TABLE `bill`
ADD PRIMARY KEY (`o_id`),
ADD KEY `p_id` (`p_id`),
ADD KEY `u_id` (`u_id`);
--- Chỉ mục cho bảng `category`
-ALTER TABLE `category`
ADD PRIMARY KEY (`id`);
--- Chỉ mục cho bảng `food`
-ALTER TABLE `food`
ADD PRIMARY KEY (`id`),
ADD KEY `c_id` (`c_id`);
--- Chỉ mục cho bảng `users`
-ALTER TABLE `users`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `email_UNIQUE` (`email`);
--- AUTO_INCREMENT cho các bảng đã đổ
---- AUTO_INCREMENT cho bảng `bill`
-ALTER TABLE `bill`
MODIFY
`o_id`
AUTO_INCREMENT=40;
int(11)
NOT
NULL
AUTO_INCREMENT,
--- AUTO_INCREMENT cho bảng `category`
-ALTER TABLE `category`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
--- AUTO_INCREMENT cho bảng `food`
-ALTER TABLE `food`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;
--- AUTO_INCREMENT cho bảng `users`
-ALTER TABLE `users`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
--- Các ràng buộc cho các bảng đã đổ
---- Các ràng buộc cho bảng `bill`
-ALTER TABLE `bill`
ADD CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`p_id`) REFERENCES
`food` (`id`),
ADD CONSTRAINT `orders_ibfk_2` FOREIGN KEY (`u_id`) REFERENCES
`users` (`id`);
--- Các ràng buộc cho bảng `food`
-ALTER TABLE `food`
ADD CONSTRAINT `products_ibfk_1` FOREIGN KEY (`c_id`) REFERENCES
`category` (`id`);
COMMIT;
Chương III: TRIỂN KHAI LÊN WEBSITE
1. Trang login:
2. Trang Sign Up
3. Trang Forgot Password
4. Trang Home
5. Trang Cart
6. Trang Orders
KẾT LUẬN
1. Ưu điểm
● Đã hoàn thành được các chức năng cơ bản nhất như cập nhật giỏ
hàng, quản lý các đơn hàng, các thao tác xem, tìm kiếm, mua hàng của
khách hàng.
● Giao diện thao tác đơn giản, trực quan,dễ dàng cho mọi đối tượng
khách hàng..
● Khi hệ thống được triển khai, công tác quản lý sẽ được nhanh hơn,
chặt chẽ hơn, thuận tiện về mặt không gian địa lý, tiết kiệm được thời
gian quản lý.
● Tăng số lượng đơn hàng ,tiếp cận được thị trường lớn và rộng hơn
● Giải quyết được các vấn đề khó khăn trong đại dịch covid.
2.
-
Những việc chưa đạt được
Một số chức năng chưa được xây dựng như: thống kê doanh thu
Thêm sửa xóa thơng tin sản phẩm trực tiếp trên giao diện.
Chưa thêm được phương thức thanh toán.
Hệ thống vẫn chưa được tối ưu về cấu trúc database, code, giao diện,
và một số chức năng.
3. Hướng phát triển
- Xây dựng thêm một số chức năng như thống kê doanh thu, thanh toán
qua thẻ…
- Tối ưu hóa hệ thống để website hoạt động nhanh hơn.
- Nâng cấp và hoàn thiện giao diện người dùng, các chức năng và tính
bảo mật của hệ thống.