You are on page 1of 26

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HCM

BÁO CÁO LẬP TRÌNH WINDOWS

PHẦN MỀM HƯỚNG DẪN NẤU ĂN

Ngành: CÔNG NGHỆ THÔNG TIN


Giảng viên hướng dẫn: ThS.
Nhóm Sinh viên thực hiện:
Tên Lớp MSSV
Nguyễn Văn A 21DTHA4 210100000
Nguyễn Văn A 21DTHA4 210100000

Nguyễn Văn A 21DTHA4 210100000


TP. Hồ Chí Minh, 2023
LỜI CẢM ƠN
Lời đầu tiên, chúng em xin chân thành cảm ơn Thầy ………. hướng dẫn đồ án
chuyên ngành cho chúng em.
Sau thời gian học tập và và tìm hiểu dưới sự hướng dẫn của thầy, chúng em đã
rút ra được rất nhiều kinh nghiệm về cách thức phân tích và thiết kế cũng như kỹ năng
làm việc mà không chỉ đơn giản là đọc trong sách vở có thể có được và một lần nữa,
chúng em xin gửi lời cảm ơn sâu sắc nhất đến Thầy đã dạy bảo và hướng dẫn những
kiến thức chuyên môn cần có để chúng em áp dụng tốt nhất những gì đã được học suốt
những thời gian qua.
Trong quá trình thực hiện và làm báo cáo, do còn thiếu nhiều kinh nghiệm thực
tế nên không tránh khỏi những sai sót. Chúng em rất mong nhận được những ý kiến
đóng góp của Thầy để giúp chúng em trong lĩnh vực này được hoàn thiện hơn. Đó là
hành trang quý giá giúp chúng em hoàn thiện kiến thức của mình sau này.
Chúng em xin chân thành cảm ơn và trân trọng kính chào!

1
NHẬN XÉT & ĐÁNH GIÁ CỦA GIẢNG VIÊN HƯỚNG DẪN
Qua quá trình học tập:
Giáo viên hướng dẫn có một số nhận xét, đánh giá như sau:
1/- Quá trình học tập

2/- Thực hiện báo cáo

Đánh giá chung

Kết quả đạt được:


Điểm đánh giá việc thực hiện báo cáo………/10
TP. HCM, Ngày 28 tháng 04 năm
2023
GIẢNG VIÊN HƯỚNG DẪN

ThS.

2
MỤC LỤC
LỜI CẢM ƠN.................................................................................................................i
NHẬN XÉT & ĐÁNH GIÁ CỦA GIẢNG VIÊN HƯỚNG DẪN.............................ii
MỤC LỤC.....................................................................................................................iii
DANH MỤC HÌNH ẢNH.............................................................................................v
LỜI MỞ ĐẦU................................................................................................................1
CHƯƠNG 1: TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT............................................2
1.1 Khảo sát hiện trạng 2
1.2 Nhiệm vụ của việc nghiên cứu 2
1.3 Đối tượng và khách thể nghiên cứu 2
1.4 Phương pháp và phạm vi nghiên cứu 2
1.4.1 Phương pháp nghiên cứu 2
1.4.2 Phạm vi nghiên cứu 2
1.5 Giới thiệu ngôn ngữ, framework, thư viện, nền tảng 3
1.5.1 Khái niệm ngôn ngữ lập trình Dart 3
1.5.2 Tìm hiểu Framework flutter 4
1.5.3 Tìm hiểu thư viện trên Pub.dev 4
1.5.4 Tìm hiểu sử dụng firebase của google 5
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ................................................................6
2.1 Quan hệ giữa các bảng 6
2.2 Thiết kế các bảng 6
2.2.1 Bảng lưu thông tin người dùng 6
2.2.2 Bảng lưu thông tin giỏ hàng 6
2.2.3 Bảng lưu thông tin sản phẩm 7
2.2.4 Bảng lưu danh mục sản phẩm 7
2.2.5 Bảng lưu danh sách hoá đơn đã được lập 7
2.2.6 Bảng lưu chi tiết hoá đơn đã được lập 7
2.3 Các mô hình dữ liệu 8
2.3.1 Mô hình UseCase tổng quát 8
2.3.2 Mô hình UseCase quản lý 9
2.3.3 Mô hình UseCase mua hàng 9
2.4 Sơ đồ ClassDiagram 10

3
2.5 Sơ đồ ERD 10
2.6 Thiết kế giao diện website 11
2.6.1 Giao diện trang chủ 11
2.6.2 Giao diện trang đăng nhập 11
2.6.3 Giao diện trang đăng ký tài khoản 12
2.6.4 Giao diện trang danh sách sản phẩm 12
2.6.5 Giao diện trang thông tin tài khoản 13
2.6.6 Giao diện trang lịch sử mua hàng 13
2.6.7 Giao diện trang giỏ hàng 14
2.6.8 Giao diện trang đổi mật khẩu 14
2.6.9 Giao diện trang quản lý danh sách đơn hàng 15
2.6.10 Giao diện trang quản lý người dùng 15
2.6.11 Giao diện trang quản lý sản phẩm 16
2.6.12 Giao diện trang thêm sản phẩm 16
2.6.13 Giao diện trang sửa thông tin sản phẩm 17
CHƯƠNG 3: KẾT LUẬN...........................................................................................18
3.1 Ưu điểm 18
3.2 Nhược điểm 18
3.3 Hướng phát triển toàn diện 18

4
DANH MỤC HÌNH ẢNH
Hình 2.1: Diagram trong SQL Mô hình quan niệm dữ liệu (thực thể - kết hợp) 6
Hình 2.2 Bảng lưu thông tin người dùng 6
Hình 2.3 Bảng lưu thông tin giỏ hàng 7
Hình 2.4 Bảng lưu thông tin sản phẩm 7
Hình 2.5 Bảng lưu danh mục sản phẩm 7
Hình 2.6 Bảng lưu danh sách hoá đơn đã được lập 7
Hình 2.7 Bảng lưu chi tiết hoá đơn đã được lập 8
Hình 2.8 Mô hình UseCase tổng quát 8
Hình 2.9 Mô hình UseCase quản lý 9
Hình 2.10 Mô hình UseCase quản lý 9
Hình 2.11 Sơ đồ ClassDiagram 10
Hình 2.12 Sơ đồ ERD 10
Hình 2.13 Giao diện trang chủ 11
Hình 2.14 Giao diện trang đăng nhập 11
Hình 2.15 Giao diện trang đăng ký tài khoản 12
Hình 2.16 Giao diện trang danh sách sản phẩm 12
Hình 2.17 Giao diện trang thông tin tài khoản 13
Hình 2.18 Giao diện trang lịch sử mua hàng 13
Hình 2.19 Giao diện trang giỏ hàng 14
Hình 2.20 Giao diện trang đổi mật khẩu 14
Hình 2.21 Giao diện trang quản lý danh sách đơn hàng 15
Hình 2.22 Giao diện trang quản lý người dùng 15
Hình 2.23 Giao diện trang quản lý sản phẩm 16
Hình 2.24 Giao diện trang thêm sản phẩm 16
Hình 2.25 Giao diện trang sửa thông tin sản phẩm 17

5
LỜI MỞ ĐẦU
1. Lý do chọn đề tài
Đại dịch Covid 19 diễn ra phức tạp và đã khiến hàng loạt quán sá bắt buộc phải
đóng cửa, từ các quán cà phê, nhà hàng, tiệm bán thức ăn nhanh, trường học và căn tin,
đến văn phòng làm việc.... Dẫn đến xu hướng nấu ăn tại nhà hiện nay đang cực kỳ phổ
biến vì nguyên nhân chính là do dịch bệnh Covid 19. Tuy nhiên không phải ai cũng
đều biết nấu ăn hay đều nấu ngon và chuẩn.
Đó là một trong những lý do lớn nhất mà phần mềm hướng dẫn nấu ăn của
chúng em ra đời nhằm đáp ứng cho việc nấu ăn của cá nhân hoặc tổ chức thuận lợi và
tiết kiệm thời gian hơn. Ngoài ra, giúp lưu giữ truyền thống nấu ăn của người Việt
Nam ta suốt bao đời qua.
2. Mục đích nghiên cứu
App hỗ trợ người dùng với các chức năng sau:

+ Tra cứu món ăn nhanh chóng

+ Thêm vào danh sách yêu thích

+ Hướng dẫn các bước làm món ăn

+ Bình luận đánh giá món ăn

+ Video hướng dẫn chi tiết món ăn

+ Tạo tài khoản thành viên

3. Ý nghĩa của việc nghiên cứu


Kết quả của nghiên cứu mang ý nghĩa:

− Giúp tìm hiểu thêm về framework flutter

− Giúp tìm hiểu về ngôn ngữ Dart

− Giúp tìm hiểu sử dụng thư viện trên Pub.dev

− Giúp tìm hiểu sử dụng firebase của google


6
4. Kết cấu đề tài:

− LỜI MỞ ĐẦU

− CHƯƠNG 1: TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT

− CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ

− CHƯƠNG 3: KẾT LUẬN

7
1 CHƯƠNG 1: TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT
1.1 Khảo sát hiện trạng
Cuộc sống hiện đại ngày càng hối hả khiến cả chỉ ngày ngày quay trong guồng
quay công việc mà lỡ mất những bữa ăn đầm ấm bên gia đình. Ngoài ra do tình hình
dịch bệnh hiện nay cũng ảnh hưởng không nhỏ đến nhu cầu nấu ăn tại nhà.
Hiện nay có nhiều website, hay youtube hướng dẫn về cách nấu ăn. Khi người
dùng có nhu cầu tự nấu ăn tại nhà, muốn nấu được bất kỳ món nào và để thực hiện các
bước nhanh chóng hỗ trợ cho việc nấu ăn đó thì phần mềm hướng dẫn nấu ăn của
chúng em đáp ứng được rất nhiều yếu tố: tìm nhiều món mới, chuẩn bị bữa ăn ngon và
chất lượng, các bí quyết, ý tưởng nấu ăn, khám phá nhiều món lạ,…
1.2 Nhiệm vụ của việc nghiên cứu
Phần mềm này được tạo ra với hy vọng quảng bá nhiều món ăn ngon từ các
miền của Việt Nam, đem đến cho người dùng một sự trải nghiệm phong phú, thích thú,
tiện dụng và nhanh nhất.
Phần mềm còn mang đến lợi ích về kinh tế khi các người dùng nâng cấp gói
nâng cấp cao hơn để trải nghiệm tốt hơn.
1.3 Đối tượng và khách thể nghiên cứu

− Đối tượng nghiên cứu: Phần mềm hướng dẫn nấu ăn

− Khách thể nghiên cứu:

+ Người có nhu cầu nấu ăn tại nhà và tìm hiểu nhiều món ngon, lạ.

+ Người muốn học nấu ăn và trải nghiệm việc nấu ăn

+ Người muốn sáng tạo món ăn

1.4 Phương pháp và phạm vi nghiên cứu


1.4.1 Phương pháp nghiên cứu

− Tham khảo, nghiên cứu thêm các tài liệu trên trang web, youtube, tìm hiểu

tình hình thực trạng của đề tài

− Tìm xem các đồ án khoá luận của các anh, chị khoá trước đã làm

8
1.4.2 Phạm vi nghiên cứu
Phạm vi xoay quanh các các phần mềm hướng dẫn nấu ăn, đảm bảo đầy đủ các
thành phần chính của phần mềm cũng như các chức năng cơ bản của phần mềm đó.
1.5 Giới thiệu ngôn ngữ, framework, thư viện, nền tảng
1.5.1 Khái niệm ngôn ngữ lập trình Dart
Dart là một ngôn ngữ lập trình web do Google phát triển. Nó được chính thức
công bố tại Hội thảo GOTO ngày 10-12 tháng 10 năm 2011 tại Aarhus. Mục đích của
Dart không phải để thay thế JavaScript như là ngôn ngữ kịch bản chính bên trong trình
duyệt web, mà là cung cấp sự lựa chọn hiện đại hơn.
Mục đích của Dart là để giải quyết các vấn đề của JavaScript (mà theo như một
tài liệu bị rò rỉ không thể được giải quyết bằng cách cải tiến ngôn ngữ) trong khi cung
cấp hiệu năng tốt hơn, khả năng “có thể dễ dàng trở thành công cụ trong các dự án
lớn” và an ninh tốt hơn.

Hình 1.1: Logo ngôn ngữ lập trình Dart

❖ Những ưu điểm của Dart

Năng suất Cú pháp Dart rõ ràng và súc tích, công cụ của nó đơn giản nhưng
mạnh mẽ. Type-safe giúp bạn xác định sớm các lỗi tinh tế. Dart có các thư viện cốt lõi
và một hệ sinh thái gồm hàng ngàn package.
Nhanh Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có được dự
đoán hiệu suất cao và khởi động nhanh trên các thiết bị di động và web.
Di động Dart biên dịch thành mã ARM và x86, để các ứng dụng di động của
Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa. Đối với các ứng dụng
web, chuyển mã từ Dart sang JavaScript.

9
Dễ gần Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú pháp và
định hướng đối tượng không gây ngạc nhiên của nó. Nếu bạn đã biết C ++, C # hoặc
Java, bạn có thể làm việc hiệu quả với Dart chỉ sau vài ngày.
Reactive Dart rất phù hợp với lập trình Reactive, với sự hỗ trợ để quản lý các
đối tượng tồn tại trong thời gian ngắn, chẳng hạn như các widget UI, thông qua phân
bổ đối tượng nhanh và GC. Dart hỗ trợ lập trình không đồng bộ thông qua các tính
năng ngôn ngữ và API sử dụng các đối tượng Future và Stream.
1.5.2 Tìm hiểu Framework flutter
Flutter là một SDK phát triển ứng dụng di động nguồn mở được tạo ra bởi
Google. Nó được sử dụng để phát triển ứng ứng dụng cho Android và iOS, cũng là
phương thức chính để tạo ứng dụng cho Google Fuchsia

Hình 1.2: Logo Flutter

❖ Đặc điểm nổi bật

Fast Development: Tíng năng Hot Reload hoạt động trong milliseconds để
hiện thị giao diện tới bạn. Sử dụng tập hợp các widget có thể customizable để xây
dựng giao diện trong vài phút. Ngoài ra Hot Reload còn giúp bạn thêm các tính năng,
fix bug tiết kiệm thời gian hơn mà không cần phải thông qua máy ảo, máy android
hoặc iOS.
Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng giao
diện của Flutter vô cùng đẹp mắt theo phong cách Material Design và Cupertino, hỗ
trợ nhiều các APIs chuyển động, smooth scrolling...
Native Performance: Các widget của fluter kết hợp các sự khác biệt của các
nền tảng ví dụ như scrolling, navigation, icons, font để cung cấp một hiệu năng tốt
nhất tới iOS và Android.

10
1.5.3 Tìm hiểu thư viện trên Pub.dev
Pub là trình quản lý gói cho ngôn ngữ lập trình Dart, chứa các thư viện & gói có
thể tái sử dụng cho các chương trình Flutter, AngularDart và Dart nói chung.

Hình 1.3: Logo thư biện pub.dev


1.5.4 Tìm hiểu sử dụng firebase của google
Firebase là một nền tảng do Google phát triển để tạo các ứng dụng web và di
động. Ban đầu nó là một công ty độc lập được thành lập vào năm 2011. Vào năm
2014, Google đã mua lại nền tảng này và bây giờ nó là sản phẩm hàng đầu của họ để
phát triển ứng dụng.
Chức năng chính là giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa
các thao tác với cơ sở dữ liệu.

Hình 1.4: Firebase google

❖ Đặc điểm nổi bật

- Firebase hỗ trợ cả hai nền tảng Android và IOS


- Tạo tài khoản và sử dụng dễ dàng
- Tốc độ phát triển nhanh

11
- Nhiều dịch vụ trong một nền tảng
- Được cung cấp bởi Google
- Tập trung vào phát triển giao diện người dùng
- Firebase không có máy chủ
- Học máy (Machine Learning)
- Tạo lưu lượng truy cập
- Theo dõi lỗi
- Sao lưu
2 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ
3.1 Quan hệ giữa các bảng

Hình 2.1: Diagram trong SQL Mô hình quan niệm dữ liệu (thực thể - kết hợp)
3.2 Thiết kế các bảng
3.2.1 Bảng lưu thông tin người dùng
Sử dụng Email để làm khoá

12
Hình 2.2 Bảng lưu thông tin người dùng
3.2.2 Bảng lưu thông tin giỏ hàng
Lưu thông tin các sản phẩm đã được cho vào giỏ hàng

Hình 2.3 Bảng lưu thông tin giỏ hàng


3.2.3 Bảng lưu thông tin sản phẩm
Lưu trữ thông tin các sản phẩm của cửa hàng

Hình 2.4 Bảng lưu thông tin sản phẩm


3.2.4 Bảng lưu danh mục sản phẩm
Lưu thông tin danh mục sản phẩm nhằm dùng để phân loại sản phẩm

Hình 2.5 Bảng lưu danh mục sản phẩm


3.2.5 Bảng lưu danh sách hoá đơn đã được lập
Lưu trữ thông tin hoá đơn gồm trạng thái, ngày lập, và khách hàng mua
13
Hình 2.6 Bảng lưu danh sách hoá đơn đã được lập
3.2.6 Bảng lưu chi tiết hoá đơn đã được lập
Ứng với mỗi hoá đơn sẽ có một chi tiết hoá đơn để lưu trữ thông tin sản phẩm
và số lượng sản phẩm đã mua

Hình 2.7 Bảng lưu chi tiết hoá đơn đã được lập
3.3 Các mô hình dữ liệu
3.3.1 Mô hình UseCase tổng quát

14
Hình 2.8 Mô hình UseCase tổng quát
3.3.2 Mô hình UseCase quản lý

Hình 2.9 Mô hình UseCase quản lý


3.3.3 Mô hình UseCase mua hàng

Hình 2.10 Mô hình UseCase quản lý

15
3.4 Sơ đồ ClassDiagram

Hình 2.11 Sơ đồ ClassDiagram


3.5 Sơ đồ ERD

Hình 2.12 Sơ đồ ERD

16
3.6 Thiết kế giao diện website
3.6.1 Giao diện trang chủ

Hình 2.13 Giao diện trang chủ


3.6.2 Giao diện trang đăng nhập

Hình 2.14 Giao diện trang đăng nhập

17
3.6.3 Giao diện trang đăng ký tài khoản

Hình 2.15 Giao diện trang đăng ký tài khoản


3.6.4 Giao diện trang danh sách sản phẩm

Hình 2.16 Giao diện trang danh sách sản phẩm

18
3.6.5 Giao diện trang thông tin tài khoản

Hình 2.17 Giao diện trang thông tin tài khoản


3.6.6 Giao diện trang lịch sử mua hàng

Hình 2.18 Giao diện trang lịch sử mua hàng

19
3.6.7 Giao diện trang giỏ hàng

Hình 2.19 Giao diện trang giỏ hàng


3.6.8 Giao diện trang đổi mật khẩu

Hình 2.20 Giao diện trang đổi mật khẩu

20
3.6.9 Giao diện trang quản lý danh sách đơn hàng

Hình 2.21 Giao diện trang quản lý danh sách đơn hàng
3.6.10 Giao diện trang quản lý người dùng

Hình 2.22 Giao diện trang quản lý người dùng

21
3.6.11 Giao diện trang quản lý sản phẩm

Hình 2.23 Giao diện trang quản lý sản phẩm


3.6.12 Giao diện trang thêm sản phẩm

Hình 2.24 Giao diện trang thêm sản phẩm

22
3.6.13 Giao diện trang sửa thông tin sản phẩm

Hình 2.25 Giao diện trang sửa thông tin sản phẩm

23
4 CHƯƠNG 3: KẾT LUẬN
4.1 Ưu điểm

− Giao diện thân thiện gần gũi với người dùng nhằm tăng hiệu suất công việc

trong khi phục vụ khách hàng.

− Dữ liệu đưa vào được kiểm tra và chuẩn hóa đảm bảo sự đúng đắn và chặt

chẽ

− Cung cấp đầy đủ, chính xác các thông tin về sản phẩm: tên, mức giá, mô tả

− Hệ thống tin cậy và chính xác, giao diện thân thiện để sử dụng hệ thống linh

động dữ liệu truy cập nhanh.

− Hệ thống đảm bảo bảo mật cho người sử dụng, đảm bảo người dùng thực

hiện đúng phạm vi chức năng


4.2 Nhược điểm
Website còn rất nhiều hạn chế. Chưa đủ đẻ trở thành một website thương mại
Trong quá trình xây dựng và hoàn thiện website chúng em cảm thấy chương
trình có nhiều thiếu sót như:

− Thiếu nhiều chức năng quản lý, thanh toán trực tuyến

− Bảo mật thông tin còn kém

− pháp thực hiện còn nhiều sai sót

4.3 Hướng phát triển toàn diện

− Bổ sung thêm nhiều chức năng nữa cho website

− Tối ưu website với các phương thức đặt hàng online qua mạng

24

You might also like