Chương 1 KHẢO SÁT HỆ THÓNG 1.1 Mô tả hệ thống tương tác quản lý công việc 1.1 Phân tích thực trạng s* Thực trang Hiện nay có rất nhiều ứng dụng nhắn tin giao tiếp. Mỗi ứng dụng sẽ có điểm mạnh riêng. Dé phù hợp với nhu cầu sử dụng, các công ty phải sử dụng hai hoặc nhiều ứng dụng nhắn tin trao đổi công việc cùng lúc. Các ứng dụng nhắn tin có san không thé tùy chỉnh, tích hợp với những phần mềm của công ty.
Cùng với đó là van dé tổng hợp báo cáo công việc ở nhiều công ty phải sử dụng biện pháp thủ công gây mat thời gian và giảm độ chính xác. s* Giải pháp Dựa vào những phân tích ở trên dé công ty có thé sử dung 1 ứng dụng nhắn tin có đủ tính năng cần thiết, dé dang tùy chỉnh theo yêu cầu, tích hợp với các ứng dụng khác để quản lý tiện ích, em đã phân tích, thiết kế và phát triển ứng dụng Web tương tác, quản lý công việc. “+ Kết quả nghiên cứu trong đề tài này có thé được sử dụng để: Ứng dụng trong công ty dé nhân viên, quản lý có thé tương tác và hỗ trợ quản lý công việc trên Jira dễ dàng.2 Mục đích của đồ án s* Ung dụng được phát triển dé - Nhân viên trong công ty có thê nhăn tin, trò chuyện video, trao đôi công VIỆC. - Nhac nhở thông báo công việc với nhân viên | cách tự động.
Đào Ngọc Phong SVTH: Phạm Trung Hiếu — B17DCCN243 9 Tông hợp báo cáo công việc đê đánh giá các dự án, hiệu xuât làm việc. Giúp cho quản lý có thê điêu phôi công việc hợp lý 1.3 Các chức năng của hệ thống 1. Đăng nhập: Chức năng này nhằm mục đích xác thực người dùng khi tương tác với hệ thống nhằm cung cấp quyền cũng như phạm vi truy cập hệ thống. Đăng ký: Quản trị viên có vai trò tạo và câp tài khoản cho người dùng đê truy cập vào hệ thống.
Quản tri người dùng: Quản trị viên có vai trò quản trị những người dùng trong hệ thống. Quan lý kênh nhắn tin: Thành viên có thé tạo kênh, thêm thành viên vào kênh. Nhặc nhở công việc: Hệ thông tự động nhac nhở nhân viên nêu chưa khai báo công việc, có nhiệm vụ sap tới ngày hêt hạn hoặc quá ngày hêt hạn mà chưa hoàn thành. Xuat báo cáo công việc: Hệ thông sé tông hợp công việc trên Jira cho moi người theo dõi.
Nhan tin với mọi nguoi trực tiếp hoặc theo nhóm. Trò chuyện video GVHD: Ts. Đào Ngọc Phong SVTH: Phạm Trung Hiếu - B17DCCN243 10 Chương 2 PHAN TÍCH THIET KE VÀ XÂY DUNG HE THONG 2.1 Phan tích chức năng, nghiệp vu 2.1 Phân tích yêu cau s* Yêu cầu chức năng: Những người vào hệ thống và chức năng được thực hiện khi vào hệ thống: - Thanh viên hệ thống: + Đăng nhập + Đăng xuất + Đổi thông tin tài khoản + Nhận thông báo nhắc nhở - Nhân viên: + Tìm kiêm thành viên + Tạo kênh nhắn tin + Thêm thành viên vào kênh nhắn tin + Rời khỏi kênh nhắn tin + Thêm, xóa tin nhăn + Gửi tệp đính kèm + Truy vấn chatbot + Trò chuyện video - Admin: + Thém tai khoan + Xuất báo cáo toàn công ty GVHD: Ts. Đào Ngọc Phong SVTH: Phạm Trung Hiếu - B17DCCN243 11 s* Yêu cau phi chức năng: - _ Hệ thống có chức năng bảo mật và phân quyền người dùng - _ Người sử dụng chương trình: được cấp username và password và được phân quyền sử dụng chương trình, giúp người quản lý có thể theo dõi, kiểm soát được chương trình, tránh các hợp sửa đổi thông tin không thuộc phạm vi quyền hạn.
- Password được mã hóa khi đưa vao di liệu và người dùng có thể đổi mật khẩu của mình - _ Giao diện đẹp, dé nhìn, phù hợp với yêu cầu người dùng. - Dễ sử dụng với mọi đối tượng. - _ Thông tin hiển thị chỉ tiết - Chay ôn định ít phát sinh lỗi - Hoan thanh đúng hạn 2.2 Biểu đồ ca sử dụng (Use-case) GVHD: Ts. Đào Ngọc Phong SVTH: Phạm Trung Hiếu — B17DCCN243 12 s* Mô hình Use-case tông quan GVHD: Ts.
Đào Ngọc Phong SVTH: Phạm Trung Hiếu - B17DCCN243 13 2.2_ Mô hình vật lý hệ thống Bao gồm 6 phần: Frontend web Chat Server Jira Connector Rasa Chatbot Minio Storage Database MySQL GVHD: Ts. Dao Ngoc Phong SVTH: Phạm Trung Hiếu — B17DCCN243 14 Minio Storage https / wss Fronend £—————————————————>*> Chat Server Jira connector Rasa chatbot Hình 2: Mô hình vật lý hệ thong 2.1 Frontend Web Frontend client sử dung framework ReactJs có chức nang: + Hiển thi giao diện cho người ding + Kết nối với Websocket trên Chat server sử dung thu viện stompjs + Sử dụng API trên Chat server bằng react fetch + Trò chuyện video sử dụng WebRTC GVHD: Ts. Đào Ngọc Phong SVTH: Phạm Trung Hiếu - B17DCCN243 15 2.2 Chat Server s* Chức nang: Server chat sử dụng framework Spring boot: - _ Gửi tin nhắn đến frontend client qua websocket - Gửi message đến Jira connector khi có truy vấn chatbot - Lưu trữ, lay file từ Minio storage - Cung cấp các API cho: o Người dùng: đăng nhập, sửa thông tin, tạo kênh, tạo tin nhắn, upload file, tìm kiêm, xem danh sách kênh nhăn tin, xem tin nhăn cũ o Admin tạo tài khoản, xuât báo cáo Jira s* Biéu đồ thiét kê class: GVHD: Ts. Đào Ngọc Phong SVTH: Phạm Trung Hiếu - B17DCCN243 16 2.3 Chatbot Rasa s* Giới thiệu: - Rasa là mã nguồn mở để xây dựng chatbot.
Hiểu tin nhắn, giữ cuộc trò chuyện và kết nối với các kênh nhắn tin và API. - Rasa thực sự dễ tiếp cận cho người mới bắt đầu - Rasa hoạt động khá tốt và mạnh mẽ, đặc biệt trong van đề xác định ý định người dùng (intent) và đối tượng được nhắc đến trong câu (entity) dù dit liệu bạn thu thập và cung cấp cho rasa là vô cùng ít. s* Một số thuật ngữ 1) NLU - Natural Language Understanding xử lý việc phân tích cú pháp và hiểu ngôn ngữ của con người thành một định dạng có câu trúc. 2) Intent - Thong điệp, ý định người dùng muốn truyền đạt.
- Vidu Khi người dùng nhắn “nhan su du an” NLU sẽ phân tích và chỉ ra intent là m_get_staff_ list nhan su du an danh sach nhan su Danh sách nhãn sự dự an Xem danh sách nhân sự Tổng hợp danh sách nhân sự Xem bao cao nhãn sự dự an Toi muốn xem danh sách nhãn sự dự an Hình 4: Ví du intent chatbot GVHD: Ts. Đào Ngọc Phong SVTH: Phạm Trung Hiếu — B17DCCN243 17 3) Response (Utter) - _ Câu trả lời là tin nhắn mà trợ lý của bạn gửi cho người dùng. Một phan hôi thường chi là text, nhưng cũng có thê bao gôm nội dung như images và buttons. - Vidu responses: utter_greet: - text: "Chào bạn” utter_goodbye: - text: "Bye" - text: "Tạm biệt” utter_thank: - text: "Cảm on ban quá khen ah!” - text: "Dạ khéng có gi, đó là trách nhiệm của Bot a!” utter e get work_report: - text: "e get workreport” utter_m get work_report: - text: "m get workreport” utter_m get staff list: - text: "m get staff list” utter_m get project_report: - text: "m get project_report” utter_unknown: - text: "Tôi xin lỗi , tôi không hiểu lắm.
Ban có thé diễn dat lại không?” Hình 5: Vi du Utter chatbot 4) Rules - Dir liệu dao tạo đặc biệt dé chỉ định hành vi giống quy. tắc, trong đó một điều kiện cụ thể luôn dự đoán một hành động cụ thê tiếp theo. - Bao gồm trả lời câu hỏi thường gặp (FAQs), điền vào biểu mẫu (Forms) hoặc xử lý dự phòng (Fallbacks). - Vi dụ: khi gặp intent m get_staff list thì chatbot sẽ thực hiện action response utter_m_get_staff_list GVHD: Ts.
Dao Ngoc Phong SVTH: Phạm Trung Hiếu — B17DCCN243 “+ Áp dụng chatbot vào hệ thông: Chatbot sẽ phân tích tin nhắn được gửi tới và trả về cho Jira bot biết mong muôn của người dùng 2.4 Jira Connector s* Giới thiệu Jira Jira là một ứng dụng theo dõi và quản lý lỗi / vẫn đề trong dự án, được phát triển bởi công ty phần mềm Atlassian của Australia. Cách thức hoạt động của JIRA dựa vào trọng tâm là kết quả công việc, có thể sử dụng ngay và linh hoạt. Giải thích các thuật ngữ trong Jira Issue Các công việc được giao Project Dự án Original Estimate Thời gian dự kiến hoành thành Remaining Estimate Thời gian còn lại dé hoàn thành Due date Dự kiến ngày phải hoàn thành Assignee Người sé giải quyết issue Status Trang thái của Issue Log work Đánh dau thời gian đã làm trên issue Sprint Vong lặp ngăn hạn hoàn thành công việc GVHD: Ts. Đào Ngọc Phong SVTH: Phạm Trung Hiếu - B17DCCN243 19 Story points Thông tin gia trị ước lượng độ lớn, độ khó, độ phức tạp cho công việc triển khai s* Giới thiệu Jira Connector Jira connector sử dung framework Spring boot và thư viện okhttp3 dé gọi các API của Jira và xử ly theo yêu cầu.
Hệ thống sẽ sử dung server Jira tại url hitps://jira.com Dé lấy dữ liệu từ Jira chúng ta phải xác thực - Sử dụng API login: + Url: /rest/auth/1/session + Method: POST + Body: {“username”:”a”, “password”:”a”} => Response JSESSIONID - Gắn JSESSIONID vào header của các request dé lay dữ liệu từ API Jira Các API được sử dụng nhiều trong Jira Connector /rest/api/2/project lây danh sách dự án của tài khoản /rest/projectconfig/latest/roles/{ projectKey} | lay danh sách nhân viên theo dự án /rest/api/2/search tim kiểm các issue theo tham số truyền vào /rest/api/2/issue/{issueKey }/worklog lây danh sách các logwork của issue /rest/agile/1.0/board lay danh sách các board GVHD: Ts. Đào Ngọc Phong SVTH: Phạm Trung Hiếu - B17DCCN243 20 /rest/agile/1.0/board/{boardId}/sprint lây danh sách sprint của board s* Các chức năng 2.1 Nhắc nhở khai báo công việc trong ngày nếu không có khai báo Đối với user là nhân viên: - Điều kiện gửi thông báo bao gồm: + Chưa có issue nào được khai báo trong backlog + Tổng thời gian các issue (đã được assign) chưa đạt đủ remaining estimation tốt thiểu 7h + Cách tinh tong thời gian estimate của từng issue sẽ dựa vào thông tin "Remaining estimate" - Thời gian gửi thông báo: vào lúc 6 AM các ngày làm việc trong tuần từ thứ hai đên thứ sáu 2.2 Nhắc nhở nhân viên cập nhật logwork Đối với user là nhân viên: Có 2 loại thông báo gồm: * Thông báo cập nhật logwork nếu ngày hôm trước chưa cập nhật : - Điều kiện: user chưa cập nhật logwork ngày hôm trước đạt tối thiểu 7h - Thông tin thông báo: Bạn chưa cập nhật du log work công việc ngày hôm qua -Ngày log work: * Thông báo nhắc nhở logwork trước khi hết giờ làm việc: - Điều kiện: Nhắc nhở các ngày làm việc trong tuần (thứ 2 — thứ 6) vào cuối ngay trước gid tan làm 30p GVHD: Ts.