ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNGVIỆT - HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CHUYÊN NGÀNH 1 ĐỀ TÀI: XÂY DỰNG WEBSITE VÀ ỨNG DỤNG BÁN CÀ PHÊ VÀ GIỚI THIỆU CÔN
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN Khoa Khoa Học Máy Tính
ĐỒ ÁN CHUYÊN NGÀNH 1
ĐỀ TÀI: XÂY DỰNG WEBSITE VÀ ỨNG DỤNG BÁN CÀ PHÊ VÀ GIỚI THIỆU
CÔNG THỨC PHA CÀ PHÊ
Sinh viên thực hiện : PHẠM GIA HUY
NGUYỄN ĐĂNG ANH TÚ Giảng viên hướng dẫn: TS.HỒ VĂN PHI
Lớp : 19IT3
Đà nẵng, tháng 12 năm 2022
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN CHUYÊN NGÀNH 1
XÂY DỰNG WEBSITE VÀ ỨNG DỤNG BÁN CÀ PHÊ VÀ GIỚI THIỆU CÔNG
THỨC PHA CÀ PHÊ
Đà Nẵng, tháng 12 năm 2022
Trang 3LỜI CẢM ƠN
Lời đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến các thầy cô KhoaKhoa học máy tính đã dạy chúng em những kiến thức hay, đã truyền đạt những kiếnthức chuyên ngành bổ ích cũng như các kỹ năng trong cuộc sống
Đặc biệt chúng em xin cảm ơn sâu sắc tới giáo viên hướng dẫn TS.HỒ VĂNPHI đã tận tình hướng dẫn, góp ý theo sát giúp chúng em có thể hoàn thành đồ án tốtnhất
Chúng em xin cảm ơn tới gia đình đã luôn động viên tinh thần, tạo động lựccho chúng em trong quá trình thực hiện đồ án Cảm ơn tất cả bạn bè, tập thể lớp 19IT3
đã cùng chia sẻ, góp ý trong quá trình thực hiện
Xin chân thành cảm ơn!
Trang 4MỞ ĐẦU
1 Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài
Công việc kinh doanh buôn bán đã xuất hiện từ rất lâu, trải qua mỗi giai đoạnlịch sử nó mang một hình thức đặc thù riêng Trước kia, khi các công cụ hỗ trợ côngviệc mua bán chưa phát triển mạnh, thì người kinh doanh mua bán chỉ diễn ra dướihình thức mua bán trực tiếp Từ khi khoa học công nghệ phát triển, nó đã tạo ra pháttriển các loại hình thức mua bán mới, điển hình là mua bán trực tuyến Hình thức muabán trực tuyến hỗ trợ đắc lực cho người kinh doanh tiếp xúc với được nhiều kháchhàng, còn khách hàng thì công việc mua bán được diễn ra nhanh chóng, thuận lợi, tiếtkiệm được thời gian
Hiện nay, Thương Mại Điện Tử (TMĐT) đang được nhiều quốc gia quan tâm,coi là một trong những động lực phát triển của nền kinh tế TMĐT đem lại những lợiích tiềm tàng, giúp doanh nghiệp thu được thông tin phong phú về thị trường và đốitác, giảm chi phí tiếp thị và giao dịch, tạo dựng và củng cố quan hệ khách hàng
Với việc nhu cầu tiêu thụ cà phê và các loại đồ uống khác, cả ở ngoài quán cũngnhư ở nhà tăng cao, chúng em đã quyết định chọn đề tài “Xây dựng website và ứngdụng bán cà phê và giới thiệu công thức pha cà phê” Với mục tiêu:
Phục vụ tốt hơn nhu cầu của khách hàng và quản lý cửa hàng trong hoạt độngkinh doanh
Khách hàng chỉ cần các thao tác đơn giản trên website và ứng dụng là có thể đặthàng và thanh toán, cũng như pha cho mình một ly cà phê được ngay
2 Tính cấp thiết, ý nghĩa khoa học và thực tiễn của đề tài
Trong quá trình khảo sát, chúng em nhận thấy hầu hết các cửa hàng bán cà phênhư: The Coffee House, Milano Coffee, Starbuck,… đang quá tập trung vào việc kinhdoanh mà chưa thật sự hướng tới khách hàng, như việc khách hàng làm sao để có thể
tự pha cho mình 1y cà phê vào một buổi sáng ở nhà, bằng chính những nguyên liệucủa họ Họ đang chú trọng vào việc bán dịch vụ mà quên đi trải nghiệm của kháchhàng Vì vậy việc phát triển một hệ thống bán cà phê và tổng hợp những công thức pha
Trang 5cà phê sẽ giúp một phần nào đó tiện lợi trong việc pha cà phê hơn cho những tín đồ càphê hoặc những người quan tâm.
3 Mục tiêu
Mục tiêu của đồ án chuyên ngành này là nhằm xây dựng một ứng dụng án cà phê
và tổng hợp công thức pha cà phê, có thể:
- Tìm hiểu các hoạt động kinh doanh trong thực tế
- Tìm hiểu cách thức xây dựng một hệ thống ứng dụng multi-platform
- Xây dựng thành công hệ thống bán cà phê và tổng hợp công thức pha cà phê.
- Tìm hiểu các ngôn ngữ lập trình: Kotlin, PHP,
- Thiết kế và xây dựng hệ thống, biểu đồ use-case, Biểu đồ hoạt động,…
- Tiếp đến, chúng em sẽ nghiên cứu công nghệ phát triển hệ thống ứng dụngMulti-Platform
- Sau khi hoàn thành phần chương trình chạy trên web, chúng em sẽ nghiêncứu đến việc lấy dữ liệu từ server về sau đó đưa lên ứng dụng
6 Bố cục của Đồ án
Trang 6Ngoài phần mở đầu và kết luận,bố cục của đề tài còn có thêm 3 chương
Chương 1: Cơ sở lý thuyết tập trung tìm hiểu các cơ sở lý thuyết liên quan, các
công cụ hỗ trợ để xây dựng ứng dụng của đề tài như:
Chương 2: Phân tích và thiết kế tập trung phân tích các yêu cầu,thuật
toán cần xử lý ứng dụng của đề tài.Thiết kế cơ sở dữ liệu Đặc tả ca sử dụng xử
lý các chức năng Gồm các danh mục:
- Giới thiệu hệ thống
- Giới thiệu các chức năng chính của hệ thống
- Phân tích thiết kế hệ thống
- Thiết kế cơ sở dữ liệu
Chương 3: Xây dựng và triển khai hệ thống tập trung chủ yếu vào các
module chính của hệ thống
Cuối cùng là phần kết luận và hướng phát triển của đề tài
Trang 7
NHẬN XÉT
(Của giảng viên hướng dẫn)
………
………
………
………
………
………
Đà Nẵng, ngày … tháng … năm 2022
Giảng viên hướng dẫn
Trang 9MỤC LỤC
Trang
LỜI CẢM ƠN 3
MỞ ĐẦU 4
NHẬN XÉT 7
MỤC LỤC 8
DANH MỤC CÁC BẢNG 9
DANH MỤC CÁC HÌNH 10
DANH MỤC CỤM TỪ VIẾT TẮT 11
Chương I CƠ SỞ LÝ THUYẾT 1
1.1 Laravel 1
1.2 PHP Framework 1
1.3 Mô hình MVC 1
1.4 Kotlin 2
1.4.1 Điểm mạnh của Kotlin 2
1.4.2 Khác biệt giữa Kotlin và Java 3
1.5 Restful API 3
1.5.1 API 3
1.5.2 REST 3
Chương II PHÂN TÍCH VÀ THIẾT KẾ 5
2.1 Yêu cầu bài toán, khảo sát nghiệp vụ 5
2 1.1 Yêu cầu bài toán 5
2 1.2 Các đối tượng tham gia vào hệ thống 5
2 1.3 Xác định các Actor và Usecase của các tác nhân 5
2.2 Đặc tả UseCase 6
2.3 Biểu đồ UC chi tiết 8
2.4 Biểu đồ hoạt động 10
2.5 Biểu đồ trình tự 13
Chương III XÂY DỰNG VÀ TRIỂN KHAI 16
3.1 Phiên bản Web 16
3.1.1 Trang đăng nhập, đăng ký 16
3.1.2 Trang chủ 16
3.1.3 Danh mục sản phẩm 17
3.1.4 Thông tin sản phẩm 17
3.1.5 Chi tiết sản phẩm 18
3.1.6 Giỏ hàng 18
3.1.7 Trang đặt hàng 19
3.1.8 Thông tin đơn hàng 19
3.1.9 Trang Admin 19
3.2 Phiên bản Ứng dụng Mobile 20
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21
Kết Luận 21
Hướng phát triển 21
TÀI LIỆU THAM KHẢO 22
Trang 11DANH MỤC CÁC BẢNG
Trang 12DANH MỤC CÁC HÌNH
Hình 2 1: UC tổng quan 9
Hình 2 2: UC đăng nhập, đăng ký 9
Hình 2 3: UC mua và thanh toán 10
Hình 2 4: Biểu đồ đăng ký thành viên 11
Hình 2 5: Biểu đồ đăng nhập 11
Hình 2 6: Biểu đồ mua sản phẩm 12
Hình 2 7: Biểu đồ thêm sản phẩm 13
Hình 2 8: Biểu đồ trình tự đăng ký 14
Hình 2 9: Biểu đồ trình tự mua sản phẩm 14
Hình 2 10: Biểu đồ tuần tự thêm sản phẩm 15
Hình 3 1: Trang đăng nhập, đăng ký………15
Hình 3 2: Trang chủ……… 15
Hình 3 3: Danh mục sản phẩm……… 16
Hình 3 4: Thông tin sản phẩm……… 16
Hình 3 5: Chi tiết sản phẩm……… 17
Hình 3 6: Giỏ hàng……… 17
Hình 3 7: Trang đặt hàng……… 18
Hình 3 8: Thông tin đơn hàng……… 18
Hình 3 9: Trang Admin……… 19
Hình 3 10: Đăng nhập………
19 Hình 3 11: Đăng ký……… 20
Hình 3 12: Trang chủ……… 20
Hình 3 13: Đặt hàng……… 21
Hình 3 14: Thanh toán……… 21
Hình 3 15: Giỏ hàng……… 22
Hình 3 16: Đánh giá……… 22
Trang 14Chương I CƠ SỞ LÝ THUYẾT 1.1 Laravel.
Laravel là một trong những PHP Web Framework phổ biến nhất theo mẫu MVC View- Controller) Được tạo bởi Taylor Otwell, Laravel framework là nguồn mở và miễn phígiúp bạn đưa ra các sản phẩm chất lượng cao Các code sẽ được giảm thiểu đi, nhưng vẫn đạttiêu chuẩn ngành, giúp bạn tiết kiệm được hàng trăm giờ đồng hồ dành cho việc phát triển
(Model-1.2 PHP Framework.
Framework (1) chính là một thư viện với các tài nguyên có sẵn cho từng lĩnh vực để lậptrình viên sử dụng thay vì phải tự thiết kế Có Framework, lập trình viên chỉ tìm hiểu và khaithác những tài nguyên đó, gắn kết chúng lại với nhau và hoàn chỉnh sản phẩm của mình Đối vớilập trình viên trong mỗi một lĩnh vực, họ cần phải xây dựng các lớp chương trình để xây dựngnên những phần mềm, ứng dụng thành phẩm
PHP framework là thư viện làm cho sự phát triển của những ứng dụng web viết bằng ngônngữ PHP trở nên trôi chảy hơn Bằng cách cung cấp 1 cấu trúc cơ bản để xây dựng những ứngdụng đó Hay nói cách khác, PHP framework giúp bạn thúc đẩy nhanh chóng quá trình pháttriển ứng dụng Giúp bạn tiết kiệm được thời gian, tăng sự ổn định cho ứng dụng Giảm thiểu sốlần phải viết lại code cho lập trình viên
1.3 Mô hình MVC.
MVC (Model-View-Controller) (2) là mẫu kiến trúc phần mềm trên máy tính nhằm mụcđích tạo lập giao diện cho người dùng Theo đó, hệ thống MVC được chia thành ba phần có khảnăng tương tác với nhau và tách biệt các nguyên tắc nghiệp vụ với giao diện người dùng
Ba thành phần ấy bao gồm:
Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng
những phương thức xử lý chúng
Model: Là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất
database, đối tượng mô tả dữ liệu như các Class, hàm xử lý…
View: Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả
các đối tượng GUI như textbox, images…
1 Đồ Án Chuyên Ngành 1
Trang 15Bằng cách này, thông tin nội hàm được xử lý tách biệt với phần thông tin xuất hiện tronggiao diện người dùng Bảo đảm các nguyên tắc nghề nghiệp của lập trình viên.
1.4 Kotlin.
Kotlin (3) là ngôn ngữ lập trình được phát triển bởi JetBrains Nó xuất hiện lần đầu năm
2011 khi JetBrains công bố dự án của họ mạng tên "Kotlin" Đây là một ngôn ngữ mã nguồn mở
Về cơ bản, cũng như Java, C hay C++ , Kotlin cũng là "ngôn ngữ lập trình kiểu tĩnh".Nghĩa là các biến không cần phải định nghĩa trươc khi sử dụng Kiểu tĩnh thực hiện việc kê khainghiêm ngặt hoặc khởi tạo các biến trước khi chúng được sử dụng
Kiểu tĩnh không có nghĩa chúng ta phải khai báo tất cả các biến lúc đầu trước khi sử dụngchúng Các biến có thể được khởi tạo bất cứ nơi nào trong chương trình và chúng ta có thể sửdụng chúng bất cứ nơi nào khi cần
1.4.1 Điểm mạnh của Kotlin.
Kotlin biên dịch thành JVM bytecode hoặc JavaScript - Giống như Java, Bytecode
cũng là format biên dịch cho Kotlin Bytecode nghĩa là một khi đã biên dịch, các đoạn code sẽchạy thông qua một máy ảo thay vì một bộ xử lý Bằng cách này, code có thể chạy trên bất kỳnền tảng nào, khi nó được biên dịch và chạy thông qua máy ảo Khi Kotlin được chuyển đổithành bytecode, nó có thể truyền được qua mạng và thực hiện bởi JVM
Kotlin có thể sử dụng tất cả các nền tảng và thư viện Java hiện có - Bất kể là nền tảng
cao cấp dựa trên xử lý annotation Điều quan trọng là Kotlin dễ dàng tích hợp với Maven,Gradle hay các hệ thống build khác
Kotlin dễ học và dễ tiếp cận Có thể học dễ dàng bằng những ví dụ tham khảo đơn giản
Cú pháp đơn giản và trực quan Kotlin khá giống Scala nhưng dễ hiểu hơn
Kotlin là mã nguồn mở nên không tốn kém gì để có thể sử dụng
Chuyển đổi tự động Java thành Kotlin - JetBrains tích hợp chức năng mới vào IntelliJ
để chuyển đổi Java thành Kotlin và điều này tiết kiệm một lượng thời gian rất lớn Nó cũng giúpchúng ta không phải code lại kiểu tay to
Null-safety của Kotlin: giúp chúng ta thoát khỏi NullPointerExceptions Giúp chúng ta
tránh những exeption kiểu con trỏ null Trong Kotlin, hệ thống sẽ từ chối biên dịch đoạn codeđang gán hay trả về giá trị null
2 Đồ Án Chuyên Ngành 1
Trang 16Review code không còn là vấn đề - Kotlin tập trung nhiều hơn vào việc cú pháp dễ hiểu,
dễ đọc để review, chúng có thể hoàn thành bởi những thành viên team chưa quen với ngôn ngữnày
1.4.2 Khác biệt giữa Kotlin và Java
Null safety - như đã nói ở trên, Kotlin tránh NullPointerException Kotlin dừng lại ở bất cứ thời
điểm biên dich nào khi NullPointerException xuất hiện.
Data Classes - trong Kotlin có Data Classes để tự phát sinh boilerplate như equals, hashCode,
toString, getters/setters,…
Smart Casts - Khi nói đến các phôi, trình biên dịch Kotlin thực sự thông minh Trong
nhiều trường hợp, người ta không cần sử dụng các toán tử cast rõ ràng trong kotlin, nhưng trongKotlin có "is-checks" cho các giá trị không thay đổi và chèn các phôi tự động khi cần thiết
Type Inference - Trong Kotlin, có một điều tuyệt vời là bạn không phải chỉ rõ loại của
mỗi biến một cách rõ ràng (theo cách rõ ràng và chi tiết) Nhưng nếu bạn muốn xác định mộtloại dữ liệu một cách rõ ràng, bạn cũng có thể làm điều đó
1.5 Restful API.
RESTful API (4) là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web(thiết kế Web services) để tiện cho việc quản lý các resource Nó chú trọng vào tài nguyên hệthống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tàinguyên được định dạng và được truyền tải qua HTTP
1.5.1 API.
API (Application Programming Interface) (5) là một tập các quy tắc và cơ chế mà theo đó,một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API cóthể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSONhay XML
1.5.2 REST
REST (REpresentational State Transfer) (6) là một dạng chuyển đổi cấu trúc dữ liệu, mộtkiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữacác máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, RESTgửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu
3 Đồ Án Chuyên Ngành 1
Trang 17Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (nhưGET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản cácresource RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lậptrình ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế mộtRESTful API.
4 Đồ Án Chuyên Ngành 1
Trang 18Chương II PHÂN TÍCH VÀ THIẾT KẾ 2.1 Yêu cầu bài toán, khảo sát nghiệp vụ
2 1.1 Yêu cầu bài toán
Tạo một hệ thống website và ứng dụng miễn phí cho phép kinh doanh cà phê một cáchtiện lợi nhất Việc tìm những công thức pha cà phê rất nhanh và trực quan Hỗ trợ mua bán 1cách dễ dàng và thuận tiện nhất
Yêu cầu về chức năng:
- Nhóm chức năng đăng ký, đăng nhập thành viên
- Nhóm chức năng xem thông tin: xem thông tin đơn hàng, xem thông tin sản phẩm
- Nhóm chức năng quản lý thông tin: quản lý danh mục sản phẩm
- Nhóm chức năng nhập, xuất hàng và cập nhật thông tin lên website
- Nhóm chức năng mua hàng và tiếp nhận và xử lý đơn hàng, thanh toán
Yêu cầu về giao diện
- Trang chủ giao diện đơn giản, thân thiện
- Tranh thanh toán gọn gàng nhanh chóng
- Bố cục hài hòa, màu sắc dễ nhìn
Yêu cầu về hệ thống
- Hệ thống hoạt động nhanh, chính xác
2 1.2 Các đối tượng tham gia vào hệ thống
- Người xem: là người ghé qua website, xem thông tin website.
- Khách hàng: là những khách thăm đã là những khách thăm đã đăng kí thành viên của
hệ thống, mua hàng
2 1.3 Xác định các Actor và Usecase của các tác nhân
Tác nhân người xem
- Đăng kí
- Xem giới thiệu website
5 Đồ Án Chuyên Ngành 1
Trang 19a Tác nhân : người xem
b Mô tả: cho phép người xem đăng ký làm thành viên của hệ thống
c Tiền điều kiện: người xem ghé thăm hệ thống
d Luồng sự kiện chính:
- Người xem chọn mục đăng ký thành viên
- Form đăng ký thành viên hiển thị
- Người xem đăng nhập thông tin cá nhân vào form đăng ký
Trang 20c Tiền điều kiện: thành viên chưa đăng vào hệ thống
d Luồng sự kiện chính:
- Thành viên chọn chức năng đăng nhập
- Form đăng nhập hiển thị
- Nhập tên, mật khẩu vào form đăng nhập
- Hệ thống kiểm tra tên, mật khẩu của thành viên
- Nếu việc đăng nhập thành công thì … Nếu thành viên nhập sai tên, mật khẩu thìchuyển sang luồng rẽ nhánh A1
- UC kết thúc
e Luống sự kiện rẽ nhánh:
f Luồng rẽ nhánh A1: thành viên đăng nhập không thành công
- Hệ thống thông báo quá trình đăng nhập không thành công
- Chọn: đăng ký hay đăng nhập lại
- Hệ thống yêu cầu thành viên nhập lại tên và mật khẩu
- Nếu người xem đồng ý thì quay về bước 2 của luồng sự kiện chính, nếu không đồng
ý thì UC kết thúc
g Hậu điều kiện: Thành viên đã đăng nhập thành công và có thể sử dụng các chức năng mà
hệ thống cung cấp
Xem thông tin sản phẩm
a Tác nhân: người quản lý, khách hàng
b Mô tả: cho phép người quản lý, khách hàng xem thông tin về các sản phẩm có trong cửahàng
c Luồng sự kiện chính:
- Người quản lý, khách hàng chọn sản phẩm cần xem
- Form xem thông tin sản phẩm xuất hiện, hệ thống hiển thị thông tin về sản phẩm đãchọn
- Người quản lý, khách hàng xem thông tin chi tiết về sản phẩm được hiển thị
7 Đồ Án Chuyên Ngành 1