Để đáp ứng nhu cầu này, chúng ta cần một phần mềmquản lý thú cưng tối ưu, cung cấp các tính năng tân tiến, dễ dàng sử dụng và thânthiện với người dùng.. 1.2 Quy trình thực hiện các công
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
25021404 – Nguyễn Quốc Huy
Giảng viên hướng dẫn :
Thái Thuỵ Hàn Uyển
Trang 21.2 Quy trình thực hiện các công việc chính 7
2.2 Hệ quản trị cơ sở dữ liệu MongoDB 8
Chương 3 : Xác định và mô hình hóa yêu cầu phần mềm 13
3.2 Sơ đồ luồng dữ liệu cho từng yêu cầu (biểu mẫu và quy định kèm theo, sơ đồ, mô tả
Trang 33.2.6 Biểu mẫu 6 273.2.7 Sơ đồ luồng dữ liệu cho yêu cầu đăng nhập 29
4.2 Mô tả các thành phần trong hệ thống: 31
5.1.1 Bước 1: Xét yêu cầu quản lý thú cưng 325.1.2 Bước 2: Xét yêu cầu quản lý thức ăn thú cưng 345.1.3 Bước 3: Xét yêu cầu quản lý phụ kiện 355.1.4 Bước 4: Xét yêu cầu quản lý dịch vụ 375.1.5 Bước 5: Xét yêu cầu thanh toán 395.1.6 Bước 6: Xét yêu cầu lập báp cáo 42
5.3 Danh sách các bảng dữ liệu (table) trong sơ đồ: 44
Trang 466.3.4 Màn hình Chi tiết thú cưng: 54
Trang 5LỜI CẢM ƠN
Đồ án với đề tài “XÂY DỰNG WEBSITE QUẢN LÝ VÀ CHĂM SÓC THÚCƯNG” là minh chứng cho quá trình cố gắng không ngừng trong việc tìm tòi, họchỏi trong suốt hơn 3 năm học tập tại trường Đại học Công nghệ Thông tin Thểhiện khả năng của bản thân trong việc áp dụng kiến thức chuyên môn vào giảiquyết bài toán thực tế
Trong quá trình thực hiện đồ án, em đã nhận được sự hướng dẫn tận tình từ quýthầy cô, sự giúp đỡ và hỗ trợ từ gia đình cũng như bạn bè Một cách đặc biệt, emxin được gửi lời cảm ơn chân thành đến:
Các thầy cô trường Đại học Công nghệ Thông Tin nói chung và các thầy côtrong Khoa Công nghệ Phần mềm nói riêng đã tận tình truyền đạt kiến thức tới emtrong những năm học tập tại trường Đó là tài sản quý báu đã giúp em hoàn thành
đồ án và cũng là hành trang cho con đường sự nghiệp của bản thân sau này
Em xin được gửi lời cảm ơn sâu sắc tới cô Thái Thụy Hàn Uyển, người đãtrực tiếp hướng dẫn, chỉ bảo, giúp đỡ em những lúc khó khăn, đưa ra những lờikhuyên bổ ích để khoá luận được hoàn thành đúng tiến độ và đáp ứng các yêu cầu
đề ra ban đầu
Nhóm thực hiện
Trang 6Chương 1: Giới thiệu bài toán cần giải quyết, mô tả quy
trình thực hiện các công việc chính.
1.1 Bài toán cần giải quyết
● Trong thời đại công nghệ hiện đại, việc quản lý thông tin về thú cưng đã trởthành một vấn đề quan trọng Để đáp ứng nhu cầu này, chúng ta cần một phần mềmquản lý thú cưng tối ưu, cung cấp các tính năng tân tiến, dễ dàng sử dụng và thânthiện với người dùng Đề tài này nhằm mục đích phát triển một phần mềm như vậy,
để hỗ trợ việc quản lý các thông tin liên quan đến thú cưng một cách hiệu quả
● Nhân sự quản lý gồm: ban quản lý
● Các công việc: quản lý thú cưng , thức ăn thú cưng , phụ kiện , dịch vụ , lậpbáo cáo , thanh toán
1.2 Quy trình thực hiện các công việc chính
● Xác định yêu cầu bài toán Quản lý thú cưng
● Phân tích yêu cầu bài toán
● Thiết kế phần mềm: Thiết kế dữ liệu, thiết kế giao diện và thiết kế xử lý
● Cài đặt phần mềm
● Kiểm thử và bảo trì phần mềm
Trang 7Chương 2: Cơ sở lý thuyết
2.1 Ngôn ngữ lập trình Javascript
JavaScript thường được viết tắt JS, là một ngôn ngữ lập trình đó là một trongnhững công nghệ cốt lõi của World Wide Web, cùng với HTML và CSS Hơn 97%trang web sử dụng JavaScript ở phía máy khách cho hành vi của trang web ,
thường kết hợp các thư viện của bên thứ ba Tất cả các trình duyệt web chính đều
có một công cụ JavaScript chuyên dụng để thực thi mã trên thiết bị của người dùng
JavaScript là một ngôn ngữ lập trình máy tính động Nó nhẹ và được sử dụngphổ biến nhất như một phần của các trang web, mà việc triển khai của chúng cho phép tập lệnh phía máy khách tương tác với người dùng và tạo các trang động Nó
là một ngôn ngữ lập trình thông dịch với khả năng hướng đối tượng JavaScript lần đầu tiên được biết đến với cái tên LiveScript, nhưng Netscape đã đổi tên nó thành JavaScript, có thể vì sự thú vị được tạo ra bởi Java JavaScript xuất hiện lần đầu tiên trong Netscape 2.0 vào năm 1995 với tên LiveScript Cốt lõi mục đích chung của ngôn ngữ đã được nhúng trong Netscape, Internet Explorer và các trình duyệt web khác
JavaScript là ngôn ngữ biên dịch cấp cao , thường vừa kịp thời , tuân theo tiêu chuẩn ECMAScript Nó có tính năng nhập động , hướng đối tượng dựa trên nguyên mẫu và các chức năng hạng nhất Nó là đa mô hình , hỗ trợ các phong cáchlập trình theo hướng sự kiện , chức năng và mệnh lệnh Nó có các giao diện lập trình ứng dụng (API) để làm việc với văn bản, ngày tháng, biểu thức chính quy , cấu trúc dữ liệu chuẩn và Mô hình đối tượng tài liệu (DOM)
2.2 Hệ quản trị cơ sở dữ liệu MongoDB
2.2.1 MongoDB là gì?
MongoDB là một hệ quản trị cơ sở dữ liệu phi quan hệ, lưu trữ dữ liệu dưới
Trang 8 MongoDB sử dụng NoSQL để quản lý và truy xuất dữ liệu.
2.2.2 Đặc điểm
Có thể lưu trữ dữ liệu dưới nhiều dạng khác nhau, bao gồm JSON-like (BSON), giúp dễ dàng lưu trữ và truy xuất dữ liệu
Sử dụng cấu trúc tài liệu linh động (Flexible document model), khác với
mô hình bảng của hệ quản trị cơ sở dữ liệu quan hệ, giúp dễ dàng thay đổi cấu trúc của tài liệu và quản lý dữ liệu phức tạp hơn
Hỗ trợ các tính năng Quản lý dữ liệu phân tán (Distributed data
management), giúp mở rộng quy mô hệ thống và tăng tính sẵn sàng của hệ thống
Cung cấp query ngôn ngữ được gọi là MongoDB Query Language (MQL) cùng với các tính năng truy xuất hiệu quả dữ liệu và bạn cũng có thể sử dụng các thư viện để kết nối và thực hiện query cho MongoDB từ các ngôn ngữ lập trình phổ biến khác như Javascript, Java, Python, Ruby, C#
2.2.3 Ưu điểm của MongoDB:
Mongodb hỗ trợ quản lý dữ liệu phân tán, có khả năng mở rộng hoàn toàn
mà không bị giới hạn bởi chi phí phần cứng
MongoDB có các API dễ sử dụng và tài liệu hướng dẫn phong phú, giúp cho nhà phát triển có thể nhanh chóng học và triển khai những ứng dụng mới
Hỗ trợ các tính năng bảo mật và khóa dữ liệu riêng tư cực kỳ cao, không
có giới hạn gì đối với việc lập trình các ứng dụng nhỏ và có giá thành thấp
Có thể lưu trữ các tài liệu (document) có cấu trúc linh hoạt và phong phú, không giới hạn về kích cỡ và số lượng
Trang 92.2.4 Nhược điểm của MongoDB:
MongoDB không phù hợp khi xử lý dữ liệu liên quan tới giao dịch, bởi vì MongoDB không có các tính năng giao dịch như các hệ quản trị cơ sở dữ liệu quan
hệ truyền thống
MongoDB không hỗ trợ các tính năng thu thập dữ liệu (data aggregations) phức tạp như nhóm dữ liệu, nhiều phép tính toán, v.v
Sử dụng MongoDB có thể yêu cầu một lượng bộ nhớ lớn hơn so với các
hệ quản trị cơ sở dữ liệu quan hệ
2.3 NodeJS
2.3.1 NodeJS là gì?
Node.js là một nền tảng phát triển ứng dụng web mã nguồn mở, được xây dựng trên nền tảng V8 của Google, cho phép lập trình viên sử dụng Javascript để xây dựng các ứng dụng web phía server
2.3.2 Đặc điểm
Nodejs bao gồm các tính năng sau:
o Các thư viện Javascript có sẵn trong Node.js cung cấp cho người lập trìnhnhững hàm có sẵn để xử lý các tác vụ cơ bản, như xử lý file, gửi yêu cầu HTTP, xử
lý dữ liệu JSON, cũng như các công cụ bảo mật và mã hóa
o Node.js sử dụng cơ chế đưa ra các yêu cầu I/O vào một hàng đợi sự kiện
sử dụng khối lệnh non-blocking cho phép Node.js có khả năng xử lí hàng ngàn phiên đồng thời cùng một lúc
Trang 10o Có thể sử dụng Node.js để xây dựng các ứng dụng web thời gian thực (real-time) như các ứng dụng game trực tuyến, ứng dụng chat real-time, ứng dụng
dữ liệu thời gian thực
o Node.js cũng cung cấp các công cụ cho phép phát triển các ứng dụng đơn giản bản đồ để bất kỳ ai cũng có thể tự xây dựng ứng dụng nhanh chóng
2.3.3 Ưu điểm của Nodejs
Node.js có một số ưu điểm sau:
o Dễ dàng để học và sử dụng, vì nó sử dụng ngôn ngữ lập trình Javascript phổ biến
o Có thể sử dụng lại các thành phần một cách dễ dàng, giúp cho các người phát triển nhanh chóng xây dựng các ứng dụng một cách nhanh chóng
o Có tính năng non-blocking I/O, cho phép xử lý đồng thời nhiều phiên kết nối với độ trễ thấp
o Có khả năng xử lý các yêu cầu đồng thời, vì Node.js sử dụng cơ chế đưa ra cácyêu cầu IO vào một hàng đợi sự kiện
2.3.4 Nhược điểm của Nodejs
Một số nhược điểm của Node.js là:
o Nếu không được chỉnh sửa đúng cách, Node.js có thể gây ra các lỗi bảo mật nhưcác lỗ hổng Cross-Site Scripting (XSS) hoặc các lỗ hổng trong quản lý cơ sở dữ liệu
o Vì Node.js sử dụng Javascript để lập trình các ứng dụng side-server, nên
Node.js mang lại kết quả xử lý chậm hơn so với các ngôn ngữ như Java hoặc C#, đặc biệt là trong việc xử lý các tác vụ phức tạp
Trang 11 JSX: React sử dụng cú pháp JSX để kết hợp mã JavaScript và HTML trong cùng một tệp JSX giúp tạo ra mã dễ đọc và dễ hiểu hơn so với việc tạo DOM bằng JavaScript thông thường.
Unidirectional Data Flow: React áp dụng mô hình dữ liệu chảy một chiều (unidirectional data flow), giúp quản lý trạng thái ứng dụng dễ dàng hơn Dữ liệu luôn di chuyển từ component cha xuống các component con, giúp đảm bảo tính dễ bảo trì và dễ hiểu của mã nguồn
Trang 12 Cộng đồng mạnh mẽ: React có một cộng đồng phát triển rộng lớn, đông đảo, với nhiều tài liệu, thư viện và công cụ hỗ trợ Điều này giúp giải quyết vấn đề nhanh chóng và dễ dàng tìm kiếm nguồn tư liệu học tập.
2.4.4 Nhược điểm:
Học ngưỡng ban đầu: Với một người mới tiếp cận React, có thể có một
học ngưỡng ban đầu khá lớn, đặc biệt là khi phải làm quen với JSX và các khái
Router)
Chương 3 : Xác định và mô hình hóa yêu cầu phần mềm 3.1 Phân loại các yêu cầu phần mềm.
3.1.1 Yêu cầu nghiệp vụ
a Danh sách các yêu cầu
1 Tiếp nhận hồ sơ thú cưng BM1
2 Tiếp nhận hồ sơ thức ăn thú BM2
Trang 13Phân loại các yêu cầu:
● Yêu cầu lưu trữ:
○ Lưu trữ thông tin người dùng phần mềm: Lưu trữ thông tin tài khoản, mật khẩu tài khoản
○ Lưu trữ thông tin thú cưng: Mã thú cưng , tên thú cưng , tuổi , giống , màu , chiều cao , cân nặng , giá , hình ảnh
○ Lưu trữ thông tin thức ăn thú cưng : Mã thức ăn thú cưng , tên thức ăn ,
Trang 14○ Lưu trữ chi tiết hóa đơn : mã chi tiết hóa đơn , mã sản phẩm , số lượng , mã hóa đơn
○ Lưu trữ thông tin lịch sử thanh toán : mã hóa đơn , thời gian , tổng tiền
● Yêu cầu tra cứu:
○ Tra cứu thông tin : thông tin thú cưng , thức ăn thú cưng , dịch vụ , sản phẩm, lịch sử thanh toán
● Yêu cầu tính toán:
○ Tính toán tổng số tiền thanh toán của hóa đơn
● Yêu cầu kết xuất:
○ Thống kê lịch sử thanh toán , báo cáo doanh thu
b Danh sách các biểu mẫu và quy định
Trang 15……… Màu : ……… Kích cỡ :
Trang 16Hình ảnh Giá Số lượng
1
Trang 17………
Trang 19Bước 2 Kết nối cơ sở dữ liệu.
Bước 3 Lưu D4 xuống bộ nhớ phụ
Bước 4 Xuất D5 ra máy in (nếu có yêu cầu)
Bước 5.Đóng kết nối cơ sở dữ liệu
Trang 20Bước 2 Kết nối cơ sở dữ liệu.
Bước 3 Lưu D4 xuống bộ nhớ phụ
Bước 4 Xuất D5 ra máy in (nếu có yêu cầu)
Bước 5.Đóng kết nối cơ sở dữ liệu
Bước 6.Kết thúc
Trang 21……… Màu : ……… Kích cỡ :
Trang 22Bước 2 Kết nối cơ sở dữ liệu.
Bước 3 Lưu D4 xuống bộ nhớ phụ
Bước 4 Xuất D5 ra máy in (nếu có yêu cầu)
Bước 5.Đóng kết nối cơ sở dữ liệu
Trang 24Bước 2 Kết nối cơ sở dữ liệu.
Bước 3 Lưu D4 xuống bộ nhớ phụ
Bước 4 Xuất D5 ra máy in (nếu có yêu cầu)
Bước 5.Đóng kết nối cơ sở dữ liệu
Trang 26Bước 4.Xuất D5 ra máy in
Bước 5.Trả D6 cho người dùng
Bươc 6.Đóng cơ sở dữ liệu
Trang 27Bước 4 Tính tổng doanh thu của năm
Bước 5 Xuất D5 ra máy in
Bước 6 Đóng cơ sở dữ liệuu
Bước 7 Kết thúc
3.2.7 Sơ đồ luồng dữ liệu cho yêu cầu đăng nhập
Trang 29D5: Không có
D6: Không có
• Thuật toán
B1: Nhận D1 từ người dùng
B2: Kết nối cơ sở dữ liệu
B3: So sánh thông tin D1 với D3 nếu không thỏa thì chuyển sang bước 5
MVC là viết tắt của cụm từ “Model-View-Controller“ Đây là mô hình thiết kế được
sử dụng trong kỹ thuật phần mềm MVC là một mẫu kiến trúc phần mềm để tạo lậpgiao diện người dùng trên máy tính MVC chia thành ba phần được kết nối với nhau
và mỗi thành phần đều có một nhiệm vụ riêng của nó và độc lập với các thành phầnkhác Tên gọi 3 thành phần:
● Model (dữ liệu): Quản lí xử lí các dữ liệu
● View (giao diện): Nơi hiển thị dữ liệu cho người dùng
● Controller (bộ điều khiển): Điều khiển sự tương tác của hai thành phần Model
và View
Trang 304.2 Mô tả các thành phần trong hệ thống:
1 Model Là bộ phận có chức năng lưu trữ toàn bộ dữ
liệu của ứng dụng và là cầu nối giữa 2 thànhphần bên dưới là View và Controller Mộtmodel là dữ liệu được sử dụng bởi chươngtrình Đây có thể là cơ sở dữ liệu, hoặc fileXML bình thường hay một đối tượng đơngiản
2 View Đây là phần giao diện (theme) dành cho
người sử dụng View là phương tiện hiển thịcác đối tượng trong một ứng dụng Chẳnghạn như hiển thị một cửa sổ, nút hay văn bảntrong một cửa sổ khác Nó bao gồm bất cứthứ gì mà người dùng có thể nhìn thấy được
Trang 313 Controller Là bộ phận có nhiệm vụ xử lý các yêu cầu
người dùng đưa đến thông qua View Mộtcontroller bao gồm cả Model lẫn View Nónhận input và thực hiện các update tươngứng
Chương 5 : Thiết kế dữ liệu.
5.1 Thuật toán lập sơ đồ logic:
5.1.1 Bước 1: Xét yêu cầu quản lý thú cưng
a Thiết kế dữ liệu với tính đúng đắn
● Biểu mẫu liên quan: BM1
● Sơ đồ luồng dữ liệu: SĐ1
● Các thuộc tính mới: name , description , id , product_type , img_url , price ,breed , age , gender , aboutBreed , characteristic , origin , weight , height , color
● Thiết kế dữ liệu: table PET , table PRODUCT.
Trang 32● Các thuộc tính trừu tượng: product_id , pet_id , id
● Sơ đồ logic:
b Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: Không có
● Sơ đồ luồng dữ liệu: số hiệu sơ đồ luồng dữ liệu tương ứng
● Các thuộc tính mới: Không có
● Thiết kế dữ liệu: table PRODUCT , table PET , table FOODFORPET.
● Các thuộc tính trừu tượng: Không có
Trang 33● Sơ đồ logic: Không có
5.1.2 Bước 2: Xét yêu cầu quản lý thức ăn thú cưng
c Thiết kế dữ liệu với tính đúng đắn
● Các thuộc tính mới: flavour_id , size_id
● Thiết kế dữ liệu: table PRODUCT , table PET , table FOODFORPET.
Trang 34● Sơ đồ logic:
d Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: Không có
● Sơ đồ luồng dữ liệu: số hiệu sơ đồ luồng dữ liệu tương ứng
● Các thuộc tính mới: Không có
● Thiết kế dữ liệu: table PRODUCT , table PET , table FOODFORPET.
● Các thuộc tính trừu tượng: Không có
● Sơ đồ logic: Không có
5.1.3 Bước 3: Xét yêu cầu quản lý phụ kiện
a Thiết kế dữ liệu với tính đúng đắn
● Các thuộc tính mới: price, color_id
● Thiết kế dữ liệu: table PRODUCT , table PET, table FOODFORPET, table
ACCESSORY.
Trang 35● Các thuộc tính trừu tượng: color_id , accessory_id
● Sơ đồ logic:
b Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: Không có
● Sơ đồ luồng dữ liệu: SĐ3
● Các thuộc tham số mới: color_id , accessory_id
● Thiết kế dữ liệu: table PRODUCT , table PET, table FOODFORPET, table ACCESSORY
Trang 36● Sơ đồ logic: Không có
5.1.4 Bước 4: Xét yêu cầu quản lý dịch vụ
Thiết kế dữ liệu với tính đúng đắn
Trang 37● Các thuộc tính trừu tượng: service_id
● Sơ đồ logic:
Trang 38a Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: Không có
● Sơ đồ luồng dữ liệu: số hiệu sơ đồ luồng dữ liệu tương ứng
● Các thuộc tính mới: Không có
● Các tham số mới:Không có
● Thiết kế dữ liệu: table PRODUCT , table PET , table FOODFORPET , table ACCESSORY , table SERVICEFORPET.
● Các thuộc tính trừu tượng: Không có
● Sơ đồ logic: Không có
5.1.5 Bước 5: Xét yêu cầu thanh toán
● Các thuộc tính mới: fullname , email , phone_number , username , password , cart_id , address , date , account_id , quality , product_id , subtotal
● Thiết kế dữ liệu: table PRODUCT , table PET , table FOODFORPET ,
table ACCESSORY , table SERVICEFORPET , table ACCOUNT , table ORDER , table ORDERDETAIL , table CART.