Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Công nghệ thông tin Website bán và cung cấp các dịch vụ về thú cưng – tích hợp chatbot...

Tài liệu Website bán và cung cấp các dịch vụ về thú cưng – tích hợp chatbot

.PDF
121
1
98

Mô tả:

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN 1 ĐỀ TÀI: WEBSITE BÁN VÀ CUNG CẤP CÁC DỊCH VỤ VỀ THÚ CƯNG – TÍCH HỢP CHATBOT SE121.M21 Giảng viên hướng dẫn: Cô HUỲNH HỒ THỊ MỘNG TRINH Sinh viên thực hiện: NGUYỄN CAO CƯỜNG –MSSV: 19521298 ĐINH VIỆT HÀO–MSSV: 19521475 Thành phố Hồ Chí Minh, tháng 6 năm 2022 ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN 1 ĐỀ TÀI: WEBSITE BÁN VÀ CUNG CẤP CÁC DỊCH VỤ VỀ THÚ CƯNG – TÍCH HỢP CHATBOT SE121.M21 Giảng viên hướng dẫn: Cô HUỲNH HỒ THỊ MỘNG TRINH Sinh viên thực hiện: NGUYỄN CAO CƯỜNG –MSSV: 19521298 ĐINH VIỆT HÀO–MSSV: 19521475 Thành phố Hồ Chí Minh, tháng 6 năm 2022 Lời cảm ơn Đồ án 1 là môn đầu tiên đặt tiền đề cho việc xây dựng khóa luận tốt nghiệp. Đây là môn học có nhiều thử thách, đòi hỏi người học phải dành nhiều thời gian, công sức để nghiên cứu, tìm tòi và xây dựng. Đồng thời, đây cũng là cơ hội để sinh viên thực hành những gì đã học trong suốt những năm đại học và học hỏi thêm nhiều kiến thức, kinh nghiệm và kỹ năng mới phục vụ cho công việc sau này. Cho nên đây được xem là thử thách và cũng là cơ hội để sinh viên được rèn luyện, hoàn thiện bản thân bằng những kĩ năng tích lũy được trong suốt quá trình làm đồ án. Để có thể đi đến đoạn cuối của hành trình là cả sự nỗ lực, cố gắng và kiên trì. Đồng hành cùng sinh viên vượt qua thử thách này là sự có mặt và giúp đỡ của những người thầy tận tâm trong công việc. Nhóm xin chân thành cảm ơn cô Huỳnh Hồ Thị Mộng Trinh đã tận tình giúp đỡ nhóm em hoàn thành đồ án 1 của mình. Chính nhờ những sự góp ý, động viên của cô đã giúp đồ án của nhóm được hoàn thiện và chuyên nghiệp nhiều hơn. Bên cạnh đó, nhóm đã học hỏi được rất nhiều kiến thức, kinh nghiệm và bài học thú vị trong quá trình làm khoá luận, đó sẽ là những hành trang hữu ích cho nhóm sau này. Nhóm cũng xin chân thành cảm ơn các anh chị, bạn bè đã giúp đỡ nhóm trong quá trình thực hiện đồ án. Nhờ mọi người mà nhóm có nhiều góc nhìn khác nhau về đề tài đang làm, từ đó giúp hoàn thiện đồ án của nhóm. Một lần nữa, nhóm xin chân thành cảm ơn cô và mọi người. NHẬN XÉT (Của giáo viên hướng dẫn) ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… MỤC LỤC Lời cảm ơn 3 CHƯƠNG I: GIỚI THIỆU CHUNG 1. Đề tài 2. Lý do chọn đề tài 3. Tóm tắt đề tài 4. Mục tiêu đề tài 5. Phương pháp nghiên cứu 6. Ý nghĩa và hướng của đề tài 6.1. Về mặt tài liệu 6.2. Về mặt sản phẩm 1 CHƯƠNG II: CÔNG NGHỆ LIÊN QUAN 1. ReactJS 1.1. Giới thiệu 1.2. Lý do sử dụng 2. NestJS 2.1. Giới thiệu 3 CHƯƠNG III: PHÂN TÍCH HỆ THỐNG 1. Yêu cầu phần mềm 1.1. Yêu cầu nghiệp vụ 1.2 Yêu cầu chất lượng 2. Use-case 2.1 Sơ đồ Use-case mức tổng quát 2.2 Danh sách các actor 2.3 Danh sách Use-case 2.4 Đặc tả Use-case 2.4.1 Đặc tả Use-case “Tạo tài khoản khách hàng” 2.4.2 Đặc tả Use-case “Đăng nhập khách hàng” 2.4.3 Đặc tả Use-case “Đăng nhập admin” 2.4.4 Đặc tả Use-case “Thay đổi thông tin” 2.4.5 Đặc tả Use-case “Tạo thú cưng” 2.4.6 Đặc tả Use-case “Sửa thú cưng” 2.4.8 Đặc tả Use-case “Tạo sản phẩm” 2.4.9 Đặc tả Use-case “Sửa sản phẩm” 2.4.11 Đặc tả Use-case “Tạo dịch vụ” 6 1 1 1 2 2 2 2 2 3 3 4 4 4 6 6 6 7 7 8 8 9 9 10 12 12 14 15 16 17 18 2.4.12 Đặc tả Use-case “Sửa dịch vụ” 2.4.14 Đặc tả Use-case “Đặt lịch” 2.4.15 Đặc tả Use-case “Xem thông tin đơn hàng” 2.4.16 Đặc tả Use-case “Chỉnh sửa đơn hàng” 2.4.17 Đặc tả Use-case “Đặt đơn hàng” 2.4.18 Đặc tả Use-case “Tra cứu đơn hàng” 2.4.19 Đặc tả Use-case “ChatBot” 2.4.20 Đặc tả Use-case “Quản lý nhân viên” 2.4.21 Đặc tả Use-case “Quản lý khách hàng” 2.5. Activity Diagram: 2.5.1 Đăng nhập 2.5.2 Đăng ký 2.5.3 Đăng xuất 2.5.4 Chỉnh sửa hồ sơ 2.5.5 Thú cưng 2.5.6 Sản phẩm 2.5.7 Dịch vụ 2.5.8 ChatBot CHƯƠNG IV: THIẾT KẾ DỮ LIỆU 1. Sơ đồ logic hoàn chỉnh 2. Danh sách các bảng dữ liệu trong sơ đồ logic 3. Mô tả từng bảng dữ liệu 3.1 Bảng “address”: 3.2 Bảng “admin_user”: 3.3 Bảng “breed” 3.4 Bảng “cart”: 3.5 Bảng “category”: 3.6 Bảng “customer”: 3.7 Bảng “employee”: 3.8 Bảng “employee_to_service”: 3.9 Bảng “order”: 3.10 Bảng “pet”: 3.11 Bảng “pet_cart_item”: 3.12 Bảng “pet_order_item”: 3.13 Bảng “pet_photo”: 3.14 Bảng “pet_type”: 3.15 Bảng “product”: 19 20 21 22 23 24 24 25 26 27 27 27 28 29 30 30 32 33 34 34 34 36 36 36 37 37 37 38 38 39 39 40 40 41 41 41 42 3.16 Bảng “product_cart_item”: 3.17 Bảng “product_order_item”: 3.18 Bảng “product_photo”: 3.19 Bảng “reservation”: 3.20 Bảng “service”: 3.21 Bảng “service_order_item”: 3.22 Bảng “service_photo”: 3.23 Bảng “sub_category”: 42 CHƯƠNG V: THIẾT KẾ GIAO DIỆN 1. Sơ đồ liên kết màn hình 2.Danh sách màn hình 3.Mô tả các màn hình 3.1 Màn hình đăng nhập Admin 3.2 Màn hình tổng quan Admin 3.3 Màn hình thú cưng Admin 3.4 Màn hình thêm thú cưng 3.5 Màn hình loại thú cưng Admin 3.6 Màn hình thêm loại thú cưng 3.7 Màn hình sửa loại thú cưng 3.8 Màn hình giống thú cưng Admin 3.9 Màn hình thêm giống 3.10 Màn hình sửa giống 3.11 Màn hình chi tiết thú cưng Admin 3.12 Màn hình sửa thú cưng 3.13 Màn hình sản phẩm Admin 3.14 Màn hình thêm sản phẩm 3.15 Màn hình danh mục Admin 3.16 Màn hình thêm danh mục 3.17 Màn hình sửa danh mục 3.18 Màn hình danh mục phụ Admin 3.19 Màn hình thêm danh mục phụ 3.20 Màn hình sửa danh mục phụ 3.21 Màn hình sản phẩm chi tiết Admin 3.22 Màn hình sửa sản phẩm 3.23 Màn hình dịch vụ Admin 3.24 Màn hình thêm dịch vụ 3.25 Màn hình đặt lịch Admin 46 43 43 43 44 44 45 45 46 46 52 52 53 53 55 56 57 58 59 60 61 61 62 62 63 64 65 66 66 67 68 69 69 70 71 72 3.26 Màn hình chi tiết dịch vụ 3.27 Màn hình sửa dịch vụ 3.28 Màn hình đơn hàng 3.29 Màn hình chi tiết đơn hàng 3.30 Màn hình khách hàng 3.31 Màn hình thêm khách hàng 3.32 Màn hình sửa khách hàng 3.33 Màn hình vô hiệu hóa khách hàng 3.34 Màn hình kích hoạt khách hàng 3.35 Màn hình nhân viên 3.36 Màn hình thêm nhân viên 3.37 Màn hình sửa nhân viên 3.38 Màn hình người dùng 3.39 Màn hình thêm người dùng 3.40 Màn hình sửa người dùng 3.41 Màn hình kích hoạt người dùng 3.42 Màn hình vô hiệu người dùng 3.43 Màn hình thay đổi thông tin cá nhân 3.44 Màn hình thay đổi mật khẩu 3.45 Màn hình trang chủ khách hàng 3.46 Màn hình thú cưng khách hàng 3.47 Màn hình chi tiết thú cưng khách hàng 3.48 Màn hình sản phẩm khách hàng 3.49 Màn hình chi tiết sản phẩm khách hàng 3.50 Màn hình dịch vụ khách hàng 3.51 Màn hình đặt dịch vụ khách hàng 3.52 Màn hình liên hệ khách hàng 3.53 Màn hình 404 khách hàng 3.54 Màn hình giỏ hàng khách hàng 3.55 Màn hình đơn hàng khách hàng 3.56 Màn hình danh sách đơn hàng khách hàng 3.57 Màn hình đăng nhập khách hàng 3.58 Màn hình đăng ký khách hàng CHƯƠNG VI: TỔNG KẾT 1. Độ hoàn thiện chức năng 2. Kết quả đạt được và hướng phát triển 2.1. Kết quả đạt được 72 73 73 74 74 75 76 77 77 78 79 80 81 82 83 84 84 85 86 87 90 91 92 92 93 94 95 96 96 97 98 98 100 105 105 106 106 2.2. Hướng phát triển 107 BẢNG PHÂN CÔNG CÔNG VIỆC 108 TÀI LIỆU THAM KHẢO 109 Danh mục hình ảnh Hình 1: Giới thiệu về React Hình 2: Giới thiệu về NestJs Hình 3: Sơ đồ usecase mức tổng quát Hình 4: Activity diagram đăng nhập Hình 5: Activity diagram đăng ký Hình 6: Activity diagram đăng xuất Hình 7: Activity diagram chỉnh sửa hồ sơ Hình 8: Activity diagram thú cưng Hình 9: Activity diagram sản phẩm Hình 10: Activity diagram dịch vụ Hình 11: Activity diagram Chatbot Hình 12: Activity diagram sơ đồ dữ liệu tổng quát Hình 13:Sơ đồ liên kết màn hình tổng quát Hình 14: Màn hình đăng nhập Admin Hình 15:Màn hình tổng quan Admin Hình 16:Màn hình thú cưng Admin Hình 17: Màn hình thêm thú cưng Hình 18: Màn hình loại thú cưng Admin Hình 19: Màn hình thêm loại thú cưng Hình 20: Màn hình sửa loại thú cưng Hình 21: Màn hình giống thú cưng Admin Hình 22: Màn hình thêm giống Hình 23: Màn hình sửa giống Hình 24: Màn hình chi tiết thú cưng Admin Hình 25: Màn hình sửa thú cưng Hình 26: Màn hình sản phẩm Admin Hình 27: Màn hình thêm sản phẩm Hình 28: Màn hình danh mục Admin Hình 29: Màn hình thêm danh mục 3 5 8 26 27 27 28 29 30 31 32 32 44 49 50 50 52 53 54 55 56 57 58 58 59 59 60 61 61 Hình 30: Màn hình sửa danh mục Hình 31: Màn hình danh mục phụ Admin Hình 32: Màn hình thêm danh mục phụ Hình 33: Màn hình sửa danh mục phụ Hình 34 Màn hình sản phẩm chi tiết Admin Hình 35 Màn hình sửa sản phẩm Hình 36: Màn hình dịch vụ Admin Hình 37 Màn hình thêm dịch vụ Hình 38: Màn hình đặt lịch Admin Hình 39: Màn hình chi tiết dịch vụ Hình 40:Màn hình sửa dịch vụ Hình 41 Màn hình đơn hàng Hình 42 Màn hình chi tiết đơn hàng Hình 43 Màn hình khách hàng Hình 44 Màn hình thêm khách hàng Hình 45 Màn hình sửa khách hàng Hình 46 Màn hình vô hiệu hóa khách hàng Hình 47 Màn hình kích hoạt khách hàng Hình 48 Màn hình nhân viên Hình 49 Màn hình thêm nhân viên Hình 50 Màn hình sửa nhân viên Hình 51 Màn hình người dùng Hình 52 Màn hình thêm người dùng Hình 53 Màn hình sửa người dùng Hình 54 Màn hình kích hoạt người dùng Hình 55 Màn hình vô hiệu người dùng Hình 56 Màn hình thay đổi thông tin cá nhân Hình 57 Màn hình thay đổi mật khẩu Hình 58 Màn hình trang chủ khách hàng Hình 59 Màn hình thú cưng khách hàng Hình 60 Màn hình chi tiết thú cưng khách hàng Hình 61 Màn hình sản phẩm khách hàng Hình 62 Màn hình chi tiết sản phẩm khách hàng Hình 63 Màn hình dịch vụ khách hàng Hình 64 Màn hình đặt dịch vụ khách hàng Hình 65 Màn hình liên hệ khách hàng Hình 66 Màn hình 404 khách hàng 62 63 64 65 66 66 67 68 68 69 70 70 71 71 72 73 74 74 75 76 77 78 79 80 81 81 82 83 84 87 88 88 89 90 90 91 92 Hình 67 Màn hình giỏ hàng khách hàng Hình 68 Màn hình đơn hàng khách hàng Hình 69 Màn hình danh sách đơn hàng khách hàng Hình 70 Màn hình đăng nhập khách hàng Hình 71 Màn hình đăng ký khách hàng 92 93 94 94 96 Danh mục bảng Bảng 1: Danh sách các actor Bảng 2: Danh sách use-case Bảng 3: Đặc tả use-case tạo tài khoản Bảng 4: Đặc tả use-case đăng nhập khách hàng Bảng 5: Đặc tả use-case đăng nhập admin Bảng 6: Đặc tả use-case thay đổi thông tin Bảng 7: Đặc tả use-case tạo thú cưng Bảng 8: Đặc tả use-case sửa thú cưng Bảng 9: Đặc tả use-case tạo sản phẩm Bảng 10: Đặc tả use-case sửa sản phẩm Bảng 12: Đặc tả use-case tạo dịch vụ Bảng 14: Đặc tả use-case sửa dịch vụ Bảng 15: Đặc tả use-case đặt lịch Bảng 16: Đặc tả use-case xem thông tin đơn hàng Bảng 17: Đặc tả use-case chỉ sửa đơn hàng Bảng 18: Đặc tả use-case đặt đơn hàng Bảng 19: Đặc tả use-case tra cứu đơn hàng Bảng 20: Đặc tả use-case Chatbot Bảng 21: Đặc tả use-case quản lý nhân viên Bảng 22: Đặc tả use-case quản lý khách hàng Bảng 23: Danh sách bảng dữ liệu tổng quất Bảng 24: Bảng dữ liệu address Bảng 25: Bảng dữ liệu admin_user Bảng 26: Bảng dữ liệu breed Bảng 27: Bảng dữ liệu cart Bảng 28: Bảng dữ liệu category Bảng 29: Bảng dữ liệu customer Bảng 30: Bảng dữ liệu employee Bảng 31: Bảng dữ liệu employee_to_service Bảng 31: Bảng dữ liệu order 8 9 10 11 12 13 14 15 16 17 18 19 19 20 22 22 23 24 24 25 34 34 35 35 36 36 36 37 37 38 Bảng 31: Bảng dữ liệu pet Bảng 32: Bảng dữ liệu pet_cart_item Bảng 33: Bảng dữ liệu pet_order_item Bảng 34: Bảng dữ liệu pet_photo Bảng 35: Bảng dữ liệu pet_type Bảng 36: Bảng dữ liệu product Bảng 37: Bảng dữ liệu product_cart_item Bảng 38: Bảng dữ liệu product_order_item Bảng 39: Bảng dữ liệu product_photo Bảng 40: Bảng dữ liệu reservation Bảng 41: Bảng dữ liệu service Bảng 42: Bảng dữ liệu service_order_item Bảng 43: Bảng dữ liệu service_photo Bảng 44: Bảng dữ liệu sub_category Bảng 45: Bảng danh mục màn hình Bảng 46: Bảng phân công công việc 38 39 39 40 40 40 41 41 42 42 42 43 43 43 49 104 CHƯƠNG I: GIỚI THIỆU CHUNG 1. Đề tài - Tên đề tài: Xây dựng website cung cấp các dịch vụ về thú cưng - tích hợp ChatBot. - Công nghệ sử dụng: ReactJs, Nestjs. - Cơ sở dữ liệu sử dụng: Firebase Storage, MySQL. 2. Lý do chọn đề tài Hiện nay, chúng ta đang sống trong một xã hội ngày càng phát triển, điều này làm cho việc tiếp cận công nghệ thông tin ngày căng tang, cùng với việc ngày càng có nhiều người muốn sở hữu cho mình thú cưng dẫn đến các vấn đề về bán và cung cấp các dịch vụ cho thú cưng ngày một nhiều sau mỗi năm. Với phát triển của thời đại công nghệ 4.0 thì việc quản lý, lưu trữ, bán,… thú cưng theo cách cổ điển đang gây ra rất nhiều bất lợi và tốn nhiều thời gian và công sức. Và khi sự bùng nổ các dịch vụ trên Internet ở nước ta ngày càng lớn, thì việc có sự xuất hiện một website bán và cung cấp các dịch vụ về thú cưng để giúp giảm thiểu thời gian và công sức của chủ cửa hàng cũng như giúp chủ cửa hàng, khách hàng có thể theo dõi, truy xuất nhanh chóng, chính xác thông tin, tình trạng đơn hàng, thú cưng một cách dễ dàng là một việc rất cần thiết và khả thi vào lúc này. Dựa theo khảo sát thực trạng, thì có thế nhận thấy rằng tồn tại những công việc tốn rất nhiều thời gian nhưng vẫn lặp đi lặp lại như: Tiếp nhận tin nhắn mua hàng, phân chia các loại thú cưng, tổng kết thống kê doanh thu, kiểm tra thú cưng tồn kho, … Thông thường thì những công việc này chỉ dừng lại ở mức độ dùng Excel hay một số công cụ khác để thực thi và lưu trữ. Vì vậy việc xây dựng lên một website bán và cung cấp các dịch vụ về thú cưng là một vấn đề cực kì cần thiết. 3. Tóm tắt đề tài Những phần mềm thú cưng trên thị trường hiện nay mặc dù có những tính năng rất tiện ích tuy nhiên chúng vẫn còn rất phức tạp đối với một số người không hoàn toàn rành về công nghệ. Bên cạnh đó, còn có vẫn có những tính năng hoàn toàn không cần thiết tại một số nơi nhất định, đồng thời giao diện thiết kễ đã cũ, lạc hậu. Do đó, chúng tôi đã tiến hành thu thập những ý kiến người dùng để từ đó xây dựng một phần mềm có giao diện dễ sử dụng hơn và những tính năng phù hợp hơn. 4. Mục tiêu đề tài - Xây dựng website dịch vụ thú cưng có tính năng: Đăng nhập, đăng ký, quản lý danh mục thú cưng, sản phẩm, dịch vụ, quản lý giỏ hàng, quản lý đơn hàng, quản lý tài khoản, thống kê doanh thu, mặt hàng, chatbot hỗ trợ,... - Tìm hiểu được công nghệ thích hợp xây dựng ứng dụng. - Hoàn thành được báo cáo môn học. 5. Phương pháp nghiên cứu - Nghiên cứu các ứng dụng có sẵn trên thị trường, nhận xét được ưu khuyết điểm của các ứng dụng đó. - Nghiên cứu các tài liệu đặc tả về các phần mềm tương tự như quản lý bán hàng, chat app, ... - Tìm hiểu các công nghệ mới trên thị trường, nhận xét và chọn ra phần mềm thích hợp nhất. 6. Ý nghĩa và hướng của đề tài 6.1. Về mặt tài liệu - Sử dụng nguồn tài liệu tham khảo ReactJs, NestJs, Firebase. - Có tài liệu đặc tả use-case, sơ đồ lớp, tuần tự, mô hình thiết kế giao diện. 6.2. Về mặt sản phẩm - Tạo ra ứng dụng Website cung cấp các dịch vụ về thú cưng, tích hợp Chatbot. - Xử lý các vấn đề về hiệu suất của ứng dụng 1 cách hiệu quả. - Chức năng phù hợp với tình hình thực tế và dễ sử dụng. CHƯƠNG II: CÔNG NGHỆ LIÊN QUAN 1. ReactJS 1.1. Giới thiệu React (Hay ReactJS, React.js) là một thư viện Javascript mã nguồn mở để xây dựng các thành phần giao diện có thể tái sử dụng. Nó được tạo ra bởi Jordan Walke, một kỹ sư phần mềm tại Facebook. Người bị ảnh hưởng bởi XHP (Một nền tảng thành phần HTML cho PHP). React lần đầu tiên được triển khai cho ứng dụng Newsfeed của Facebook năm 2011, sau đó được triển khai cho Instagram.com năm 2012. Nó được mở mã nguồn (open-sourced) tại JSConf US tháng 5 năm 2013. Về cơ bản, việc xây dựng một ứng dụng MVC phía client với giàng buộc dữ liệu 2 chiều (2 way data-binding) là khá đơn giản. Tuy nhiên nếu dự án ngày càng mở rộng, nhiều tính năng hơn, làm cho việc bảo trì dự án gặp khó khăn, đồng thời hiệu năng cũng bị giảm. Bạn cũng có thể giải quyết vấn đề đó bằng các thư viện khác như Backbone.js hay Angular.js, tuy nhiên bạn sẽ thấy các hạn chế của chúng khi dự án của bạn ngày càng lớn. React ra đời sau AngularJS, nó sinh ra để dành cho các ứng dụng lớn dễ dàng quản lý và mở rộng. Mục tiêu chính của React là nhanh, đơn giản, hiệu năng cao và dễ dàng mở rộng. Hình 1: Giới thiệu về React Tính năng nổi bật của React: - Sử dụng JSX, trích dẫn HTML để render các subcomponent. - Single-way data flow (Luồng dữ liệu một chiều) - Virtual Dom nên khi state thay đổi chúng ta không cần thao tác trực tiếp với DOM. - Hiệu năng nhanh với những ứng dụng có dữ liệu thay đổi liên tục. 1.2. Lý do sử dụng Reactjs giúp việc viết các đoạn code JS dễ dàng hơn: Nó dùng cú pháp đặc biệt là JSX (Javascript mở rộng) cho phép ta trộn giữa code HTML và Javascript. Ta có thể them vào các đoạn HTML vào trong hàm render mà không cần phải nối chuỗi. Đây là đặc tính thú vị của Reactjs. Nó sẽ chuyển đổi các đoạn HTML thành các hàm khởi tạo đối tượng HTML bằng bộ biến đổi JSX. Nhiều công cụ phát triển: Khi bạn bắt đầu Reactjs, đừng quên cài đặt ứng dụng mở rộng của Chrome dành cho Reactjs. Nó giúp bạn debug code dễ dàng hơn. Sau khi bạn cài đặt ứng dụng này, bạn sẽ có cái nhìn trực tiếp vào virtual DOM như thể bạn đang xem cây DOM thông thường. Render tầng server: Một trong những vấn đề với các ứng dụng đơn trang là tối ưu SEO và thời gian tải trang. Nếu tất cả việc xây dựng và hiển thị trang đều thực hiện ở client, thì người dung sẽ phải chờ cho trang được khởi tạo và hiển thị lên. Điều này thực tế là chậm. Hoặc nếu giả sử người dung vô hiệu hóa Javascript thì sao? Reactjs là một thư viện component, nó có thể vừa render ở ngoài trình duyệt sử dụng DOM và cũng có thể render bằng các chuỗi HTML mà server trả về. Bạn có thể tham khảo cách render side servering tại đây. Làm việc với vấn đề test giao diện: Nó cực kì dễ để viết các test case giao diện vì virtual DOM được cài đặt hoàn toàn bằng JS. Hiệu năng cao đối với các ứng dụng có dữ liệu thay đổi liên tục, dễ dàng cho bảo trì và sửa lỗi. 2. NestJS 2.1. Giới thiệu Nest (NestJS) là một framework để xây dựng ứng dụng NodeJS phía máy chủ hiệu quả và có thể mở rộng, được cải tiến từ JavaScript, được xây dựng và hỗ trợ đầy đủ TypeScript (nhưng vẫn cho phép nhà phát triển viết bằng JavaScript thuần) và kết hợp các yếu tố của OOP (Lập trình hướng đối tượng), FP (Lập trình hàm) và FRP (Lập trình phản ứng hàm). Nest cung cấp mức độ trừu tượng cao hơn các Node.js frameworks phổ biến (Express/Fastify), nhưng cũng hiển thị trực tiếp các APIs của họ cho các nhà phát triển. Điều này cho phép các nhà phát triển tự do sử dụng vô số mô-đun của bên thứ ba có sẵn cho nền tảng cơ bản. Hình 2: Giới thiệu về NestJs Tính năng nổi bật của NestJs: NestJS là một dự án mà tác giả muốn wapper lại mã nguồn, tối ưu và sắp xếp mã nguồn dựa trên NodeJS và ExpressJS. Nhờ đó mà mã nguồn dự án của bạn gọn gàng hơn, dễ bảo trì và tốc độ phát triển, xây dựng ứng dụng cũng nhanh hơn. CHƯƠNG III: PHÂN TÍCH HỆ THỐNG 1. Yêu cầu phần mềm 1.1. Yêu cầu nghiệp vụ Đảm bảo được các chức năng cần phải có đối với website cung cấp các dịch vụ về thú cưng - tích hợp ChatBot. Chia làm 3 danh mục bán hàng chính là thú cưng, sản phẩm, dịch vụ: ● Thú cưng: Với mỗi loại thú cưng chỉ có duy nhất một con, nên số lượng chỉ được tính tối đa là một. ● Sản phẩm: Gồm các danh mục sản phẩm, sản phẩm phụ, số lượng hàng tồn kho. ● Dịch vụ: Bao gồm chọn nhân viên làm dịch vụ, đặt lịch hẹn. 1.2 Yêu cầu chất lượng Yêu cầu về tính hiệu quả, đúng đắn: ● Đảm bảo tính toàn vẹn dữ liệu. ● Các thông báo phản hồi ngay lập tức khi người dùng thao tác. ● Các thông số được tính toán, cập nhật và hiển thị ngay lập tức. Yêu cầu về bảo mật: Các dữ liệu quan trọng như mật khẩu được mã hóa. Yêu cầu về tương thích: Tương thích trên nhiều thiết bị. 2. Use-case 2.1 Sơ đồ Use-case mức tổng quát Hình 3: Sơ đồ usecase mức tổng quát 2.2 Danh sách các actor STT Ý nghĩa / ghi chú Tên Actor 1 Người dùng Khách hàng, người sử dụng 2 Admin Người quản lý Bảng 1: Danh sách các actor 2.3 Danh sách Use-case STT Ý nghĩa / ghi chú Tên Usecase 1 Tạo tài khoản khách hàng Tạo tài khoản cá nhân cho app 2 Đăng nhập khách hàng Đăng nhập vào ứng dụng 3 Đăng nhập admin Đăng nhập tài khoản admin 4 Thay đổi thông tin Thay đổi thông tin tài khoản cá nhân 5 Tạo thú cưng Tạo thú cưng 6 Sửa thú cưng Cập nhật thú cưng 8 Tạo sản phẩm Tạo sản phẩm 9 Sửa sản phẩm Cập nhật sản phẩm 10 Tạo dịch vụ Thêm mới dịch vụ 11 Sửa dịch vụ Cập nhật dịch vụ 12 Đặt lịch Đặt lịch hẹn 13 Xem thông tin đơn hàng Xem thông tin đơn hàng
- Xem thêm -

Tài liệu liên quan