Thái Thuỵ Hàn Uyển Thời gian thực hiện: Từ ngày 6/2/2023 đến ngày 25/6/2023 20 tuần Sinh viên thực hiện: - Bên cạnh đó, đối với việc quản lý các thành viên trong một nhóm có thể đánh
Trang 1ĐẠ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
ĐẶNG DUY BẰNG NGUYỄN NHỰT TÂN
KHOÁ LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG GHI CHÚ, QUẢN LÝ TIẾN ĐỘ CÔNG VIỆC
CÁ NHÂN VÀ NHÓM
NOTES TAKING AND TASKS TRACKING MANAGEMENT
APPLICATION
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
Trang 2ĐẠ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
ĐẶNG DUY BẰNG - 19521234 NGUYỄN NHỰT TÂN - 19520923
KHOÁ LUẬN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG GHI CHÚ, QUẢN LÝ TIẾN ĐỘ CÔNG VIỆC
CÁ NHÂN VÀ NHÓM
NOTES TAKING AND TASKS TRACKING MANAGEMENT
APPLICATION
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN:
THS THÁI THUỴ HÀN UYỂN
Trang 3THÔNG TIN HỘI ĐỒNG CHẤM KHOÁ LUẬN TỐT NGHIỆP
Hội đồng chấm khoá luận tốt nghiệp, thành lập theo Quyết định số………
……… ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh
1 ……… – Chủ tịch
2 ……….………… – Thư ký
3 ……… – Ủy viên
4 ……….………… – Ủy viên
Trang 4ĐHQG TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Nhóm sinh viên thực hiện:
Trang 6ĐHQG TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Nhóm sinh viên thực hiện:
Trang 8LỜI CẢM ƠN
Trong quá trình học tập, nghiên cứu và phát triển đề tài “Xây dựng ứng dụng
ghi chú, quản lý tiến độ công việc cá nhân và nhóm” chúng em đã nhận được sự giúp
đỡ, chỉ bảo nhiệt tình của Cô để hoàn thành đồ án này
Chúng em xin gửi lời cảm ơn chân thành đến Cô Thái Thụy Hàn Uyển vì những đóng góp không nhỏ trong quá trình phát triển đề tài Cô đã dành thời gian và tâm huyết hướng dẫn, giúp đỡ về kiến thức, tài liệu cũng như phương pháp, giúp cho quá trình nghiên cứu và phát triển được diễn ra một cách thuận lợi Chúng em xin ghi nhận những ý kiến nhận xét và lời đóng góp quý báu từ Cô giúp chúng em có thêm những ý tưởng và hướng phát triển trong tương lai
Bên cạnh đó, chúng em cũng xin được gửi lời cảm ơn đến toàn thể quý Thầy,
Cô tại trường Đại học Công nghệ Thông tin, những người đã chỉ dạy nhiệt tình và đem lại nguồn cảm hứng để chúng em có thể lấy làm động lực và phát triển trên con đường sự nghiệp phía trước
Mặc dù đã có nhiều cố gắng trong suốt quá trình thực hiện đề tài, nhưng bên cạnh đó vẫn còn có những mặt hạn chế, thiếu sót Chúng em rất mong nhận được ý kiến, đóng góp của quý Thầy, Cô để có được những kinh nghiệm quý báu lấy làm hành trang trong tương lai
Chúng em xin trân trọng cảm ơn!
TP Hồ Chí Minh, tháng 7 năm 2023
Nguyễn Nhựt Tân Đặng Duy Bằng
Trang 9ĐHQG TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày…tháng…năm 2023
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Xây dựng ứng dụng ghi chú, quản lý tiến độ công việc cá nhân và nhóm
Cán bộ hướng dẫn: ThS Thái Thuỵ Hàn Uyển
Thời gian thực hiện: Từ ngày 6/2/2023 đến ngày 25/6/2023 (20 tuần)
Sinh viên thực hiện:
- Bên cạnh đó, đối với việc quản lý các thành viên trong một nhóm có thể đánh giá được hiệu quả và thời gian hoàn thành công việc, từ đó người dùng có thể biết được chính xác năng lực của từng người để phân chia công việc một cách hợp lý
Trang 10Phạm vi:
Phạm vi khoá luận hướng đến việc xây dựng ứng dụng di động tập trung phát triển trên hệ điều hành iOS và Android cùng với các chức năng chính sau:
- UI/UX: Đầu tiên sẽ mang lại trải nghiệm thân thiện với người dùng
- Authentication: Đăng nhập, đăng ký,…
- Note: Tạo ghi chú mới, gợi ý các mẫu ghi chú, phân loại ghi chú,…
- Reminder: Tạo lịch nhắc nhở, theo dõi tiến độ qua timeline,…
- Project: Tạo dự án và quản lý công việc của nhiều thành viên, đánh giá hiệu quả làm việc qua từng task,…
- Task: Tạo task cho thành viên, theo dõi tiến độ và cập nhật trạng thái liên tục, tìm kiếm, tính năng đề xuất thành viên phù hợp với công việc dựa vào chủ đề áp dụng Content-based recommendation system
- Chat Group, Chatbot (Chat realtime giữa các thành thành viên và kết hợp chatbot OpenAI)
- Statistic: Thống kê lại kết quả làm việc sau thời gian được quy định, cho điểm từng thành viên trong một dự án,…
- Notification: Nhận các thông báo khi có các hoạt động mới,…
Đối tượng sử dụng:
- Là những cá nhân muốn quản lý công việc một cách hiệu quả, tạo cho mình một thói quen ghi chú hàng ngày, cần một nơi để lưu trữ những thông tin cần thiết để ghi nhớ, tạo lịch nhắc nhở cho những công việc sắp tới, làm chủ thời gian để quản lý công việc một cách tốt nhất
- Là các tổ chức, nhóm muốn quản lý công việc của nhiều người, theo dõi tiến độ cũng như quá trình làm việc của các thành viên,…
- Về số lượng người dùng tải và sử dụng ứng dụng là không giới hạn
Về số lượng người dùng đồng thời tạm thời ước tính khoảng 100 người dùng
Trang 11- Ứng dụng không phân chia lĩnh vực cụ thể, các tính năng quản lý, ghi chú hầu như phù hợp cho mọi công việc, cụ thể là các công việc đòi hỏi sự liên tục, tiến độ cập nhật thường xuyên Tuy nhiên về sau có thể cải tiến thêm cho các lĩnh vực cụ thể đi kèm thêm các nghiệm cụ tương ứng với từng lĩnh vực đó để ứng dụng có thể đi sâu vào từng ngành nghề tìm ra các phương pháp quản lý hiệu quả hơn
- Áp dụng mô hình tiếp cận lặp (Iterative Model) trong quá trình thực hiện và xây dựng ứng dụng Một chuỗi quá trình thực hiện sẽ được lặp
đi lặp lại từ lúc bắt đầu đến khi hoàn thành sản phẩm và báo cáo, sau mỗi chu kỳ sẽ có kết quả của quá trình đó, tiếp theo thực hiện review sau mỗi giai đoạn cho đến khi có sản phẩm cuối cùng
Kết quả mong đợi:
- Hiểu rõ về công nghệ, nắm được các kiến thức cơ bản và cách hoạt động của công nghệ được sử dụng
- Nắm được vòng đời của một ứng dụng hiểu được cách vận hành, từ lúc khởi động đến khi kết thúc
Trang 12- Biết sử dụng các công cụ để phát triển, hỗ trợ trong quá trình thực hiện
Kế hoạch và phương pháp thực hiện: (Nêu lên quy trình, thứ tự thực hiện công việc, kế hoạch phân công và nhiệm vụ của từng sinh viên tham gia)
- Tham khảo ứng dụng tương tự, liệt kê các chức năng cần có, phân tích yêu cầu, mô tả chi tiết (𝟐)
- Thiết kế giao diện màn hình trên figma.com, logic các xử lý màn hình (𝟑)
- Tạo thư mục quản lý tiến độ, cập nhật tài liệu liên tục trên drive (𝟒)
Bằng, Tân
Trang 13- Liệt kê các API cần thiết cho ứng dụng (𝟔)
- Soạn file ngôn ngữ cho ứng dụng (𝟕)
- Build source code frontend, backend (𝟖)
- Thiết kế kiến trúc source code (𝟗)
Bằng, Tân
- Setup môi trường, server deploy, cloud,… (𝟏𝟐)
- Coding frontend, các màn hình onboard, authentication (𝟏𝟑)
Bằng, Tân
- Coding logic cho từng màn hình (𝟏𝟔)
- Coding backend, viết các API theo danh sách liệt kê trước đó (𝟏𝟕)
- Review code qua lại trong quá trình làm việc để
hạn chế conflict (𝟏𝟖)
Bằng, Tân
Trang 14- Liên kết frontend với backend, map data vào ứng dụng (𝟏𝟗)
- Test theo test case, fix bug (𝟐𝟏)
- Hoàn thiện báo cáo, slide thuyết trình, tài liệu (𝟐𝟐)
- Sẵn sàng demo (𝟐𝟑)
Bằng, Tân
Ghi chú: Các công việc được phân chia đồng đều cho các thành viên, với mỗi công việc sẽ được một người phụ trách chính và người còn lại trong nhóm có trách nhiệm review, góp ý, thay đổi và cải thiện (nếu có)
Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)
Thái Thuỵ Hàn Uyển
Trang 15MỤC LỤC
TÓM TẮT KHOÁ LUẬN TỐT NGHIỆP 1
CHƯƠNG 1: TỔNG QUAN 3
1.1 Giới thiệu đề tài 3
1.2 Lý do chọn đề tài 3
1.3 Mục tiêu 4
1.4 Phạm vi 5
1.5 Phương pháp thực hiện 6
1.6 Kết quả dự kiến 7
1.7 Hiện trạng bài toán 7
1.7.1 Các ứng dụng liên quan 8
1.7.2 Đánh giá hiện trạng và hướng giải quyết 11
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG 13
2.1 Công cụ quản lý và phát triển 13
2.1.1 Visual Studio Code 13
2.1.2 Xcode 14
2.1.3 Android Studio 15
2.1.4 Github 16
2.1.5 Bitbucket 17
2.1.6 Postman 18
2.1.7 Figma 19
2.2 Công nghệ sử dụng 20
2.2.1 React (Framework7) 20
2.2.2 Cordova 21
Trang 162.2.4 MongoDB Atlas (noSQL) 22
2.2.5 Javascript (Typescript) 23
2.2.6 Firebase 24
2.2.7 Socket.io 25
2.2.8 Nodemailer 26
2.2.9 Chatbot GPT - OpenAI 27
2.3 Content-Based Recommendation System 28
2.3.1 Tổng quan 28
2.3.2 Các khái niệm liên quan 28
2.3.3 Áp dụng vào dự án 28
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG 33
3.1 Phân tích yêu cầu hệ thống 33
3.1.1 Phân tích yêu cầu chức năng 33
3.1.2 Phân tích yêu cầu phi chức năng 34
3.1.3 Phân tích yêu cầu người dùng 34
3.2 Phân tích thiết kế hệ thống 63
3.2.1 Thiết kế xử lý 63
3.2.2 Thiết kế cơ sở dữ liệu 68
3.2.3 Thiết kế kiến trúc hệ thống 79
3.2.4 Thiết kế giao diện 83
3.3 Triển khai hệ thống 96
3.3.1 Máy chủ 96
3.3.2 Ứng dụng di động 96
3.4 Testing 97
3.4.1 Testing methods 97
3.4.2 Test case 97
CHƯƠNG 4: KẾT LUẬN 110
Trang 174.1 Kết quả đạt được 110
4.2 Thuận lợi và khó khăn 111
4.2.1 Thuận lợi 111
4.2.2 Khó khăn 111
4.3 Hướng phát triển 111
4.4 Kết luận 112
TÀI LIỆU THAM KHẢO 114
Trang 18DANH MỤC HÌNH
Hình 1-1: Logo ứng dụng Notion 8
Hình 1-2: Logo ứng dụng Taio 9
Hình 1-3: Logo ứng dụng Redmine 9
Hình 1-4: Logo backlog 10
Hình 2-1: logo ứng dụng Visual Studio Code 13
Hình 2-2: Logo ứng dụng Xcode 14
Hình 2-3: Logo ứng dụng Android Studio 15
Hình 2-4: Logo Github 16
Hình 2-5: Logo Bitbucket 17
Hình 2-6: Logo ứng dụng Postman 18
Hình 2-7: Logo ứng dụng Figma 19
Hình 2-8: Logo React và Framework7 20
Hình 2-9: Logo Cordova 21
Hình 2-10: NodeJs và ExpressJs 22
Hình 2-11: MongoDb 22
Hình 2-12: JavaScript và TypeScript 23
Hình 2-13: Firebase cloud services 24
Hình 2-14: Socket.IO 25
Hình 2-15: NodeMailer 26
Hình 2-16: Chatbot GPT – OpenAI 27
Hình 2-17: Trọng số Weighted Topic Matrix 31
Hình 2-18: Độ phù hợp và tương đồng của các chủ đề 32
Hình 3-1 Sơ đồ Usecase toàn hệ thống 36
Hình 3-2 Sơ đồ kiến trúc tổng thể 79
Hình 3-3 Sơ đồ kiến trúc ứng dụng di động 81
Hình 3-4: Màn hình đăng nhập 87
Hình 3-5: Màn hình đăng ký 87
Hình 3-6: Màn hình xác thực email 87
Trang 19Hình 3-7: Màn hình cung cấp thông tin 87
Hình 3-8: Màn hình quên mật khẩu 88
Hình 3-9: Màn hình danh sách các ghi chú 88
Hình 3-10: Màn hình ghi chú văn bản 88
Hình 3-11: Màn hình ghi chú hình vẽ 88
Hình 3-12: Màn hình ghi chú chi tiết 89
Hình 3-13: Màn hình danh sách mẫu ghi chú 89
Hình 3-14: Màn hình danh mục phân loại 89
Hình 3-15: Màn hình danh sách nhắc nhở 89
Hình 3-16: Màn hình tạo nhắc nhở 90
Hình 3-17: Màn hình danh sách thông báo 90
Hình 3-18: Màn hình thống kê tiến độ của cá nhân người dùng 90
Hình 3-19: Màn hình hồ sơ cá nhân 90
Hình 3-20: Màn hình cập nhật thông tin 91
Hình 3-21: Màn hình danh sách dự án 91
Hình 3-22: Màn hình tạo dự án 91
Hình 3-23: Màn hình chức năng dự án 91
Hình 3-24: Màn hình danh mục dự án 92
Hình 3-25:Màn hình danh sách công việc 92
Hình 3-26: Màn hình công việc chi tiết 92
Hình 3-27: Màn hình bình luận công việc 92
Hình 3-28: Màn hình trò chuyện nhóm 93
Hình 3-29: Màn hình ghim tin nhắn 93
Hình 3-30: Màn hình quản lý thành viên 93
Hình 3-31: Màn hình thông tin thành viên 93
Hình 3-32: Màn hình danh sách file 94
Hình 3-33: Màn hình đánh giá thành viên 94
Hình 3-34: Màn hình đánh giá chi tiết 94
Trang 20Hình 3-36: Màn hình cột mốc dự án 95
Hình 3-37: Màn hình nhắc nhở công việc 95
Hình 3-38: Màn hình hoạt động dự án 95
Hình 3-39: Màn hình Gantt Chart 95
Trang 21DANH MỤC BẢNG
Bảng 2-1: Tập dữ liệu chủ đề các công việc của một thành viên 29
Bảng 2-2: Input Member Ratings 30
Bảng 2-3: Tập đặc trưng 30
Bảng 2-4: Độ phù hợp với công việc 31
Bảng 2-5: Mã hoá công việc bằng One-hot encoding 31
Bảng 3-1 Bảng mô tả Actors của ứng dụng 37
Bảng 3-2 Bảng mô tả các Actors trong dự án 37
Bảng 3-3 Bảng danh sách và mô tả các Use case của ứng dụng 37
Bảng 3-4 Bảng đặc tả chi tiết chức năng đăng ký - A001 40
Bảng 3-5 Bảng đặc tả chi tiết chức năng đăng nhập - A002 41
Bảng 3-6 Bảng đặc tả chi tiết chức năng khôi phục mật khẩu - A003 42
Bảng 3-7 Bảng đặc tả chi tiết chức năng đổi mật khẩu - A004 43
Bảng 3-8 Bảng đặc tả chi tiết chức năng ghi nhớ tài khoản - A005 43
Bảng 3-9 Bảng đặc tả chi tiết chức năng cập nhật thông tin cá nhân - A006 44
Bảng 3-10 Bảng đặc tả chi tiết chức năng quản lý ghi chú - N001 45
Bảng 3-11 Bảng đặc tả chi tiết chức năng sử dụng mẫu ghi chú có sẵn - N002 46
Bảng 3-12 Bảng đặc tả chi tiết chức năng phân loại ghi chú - N003 47
Bảng 3-13 Bảng đặc tả chi tiết chức năng quản lý phân loại - N004 48
Bảng 3-14 Bảng đặc tả chi tiết chức năng tìm kiếm ghi chú - N005 49
Bảng 3-15 Bảng đặc tả chi tiết chức năng quản lý lời nhắc – R001 50
Bảng 3-16 Bảng đặc tả chi tiết chức năng quản lý dự án - P001 51
Bảng 3-17 Bảng đặc tả chi tiết chức năng quản lý thành viên - P002 52
Bảng 3-18 Bảng đặc tả chi tiết chức năng quản lý công việc - P003 54
Bảng 3-19 Bảng đặc tả chi tiết chức năng quản lý bình luận - P004 55
Bảng 3-20 Bảng đặc tả chi tiết chức năng quản lý tài liệu, mô tả - P005 56
Bảng 3-21 Bảng đặc tả chi tiết chức năng trò chuyện nhóm – P006 57
Bảng 3-22 Bảng đặc tả chi tiết chức năng quản lý tệp tin - P007 58
Trang 22Bảng 3-24 Bảng đặc tả chi tiết chức năng quản lý cột mốc - P009 60 Bảng 3-25 Bảng đặc tả chi tiết chức năng quản lý hoạt động - P010 61 Bảng 3-26 Danh sách các thuộc tính "User" 69 Bảng 3-27 Danh sách các thuộc tính của "Verify Code" 70 Bảng 3-28 Danh sách các thuộc tính của "Note" 70 Bảng 3-29 Danh sách các thuộc tính của "Category" 71 Bảng 3-30 Danh sách các thuộc tính của "Reminder" 71 Bảng 3-31 Danh sách các thuộc tính của "Project" 72 Bảng 3-32 Danh sách các thuộc tính của "Wiki" 73 Bảng 3-33 Danh sách các thuộc tính của "Activity" 73 Bảng 3-34 Danh sách các thuộc tính của "Milestone" 74 Bảng 3-35 Danh sách các thuộc tính của "File" 74 Bảng 3-36 Danh sách các thuộc tính của "Message" 75 Bảng 3-37 Danh sách các thuộc tính của "Task" 76 Bảng 3-38 Danh sách các thuộc tính của "Comment" 77 Bảng 3-39 Danh sách các thuộc tính của "Notification" 77 Bảng 3-40 Danh sách các thuộc tính của "Task Review" 78 Bảng 3-41 Danh sách các thuộc tính “Recommend Assignee” 79 Bảng 3-42 Danh sách các màn hình của ứng dụng 83 Bảng 3-43 Testcase chức năng "Đăng ký" 97 Bảng 3-44 Testcase chức năng "Đăng nhập" 99 Bảng 3-45 Testcase chức năng "Quên mật khẩu" 100 Bảng 3-46 Testcase chức năng "Tạo ghi chú" 102 Bảng 3-47 Testcase chức năng "Tạo reminder" 104 Bảng 3-48 Testcase chức năng "Tạo dự án" 105 Bảng 3-49 Testcase chức năng "Tạo công việc" 106
Trang 23DANH MỤC TỪ VIẾT TẮT
1 AI Artificial Intelligence
2 API Application Programming Interface
3 ChatGPT Chat Generative Pre-training Transformer
4 CDN Content Delivery Network
5 DB Database
6 DOM Document Object Model
7 ERD Entity Relationship Diagram
8 HTTP(s) Hypertext Transfer Protocol (security)
9 IDE Integrated Development Environment
10 JS JavaScript
11 LLMs Large Language Models
12 MST MobX State Tree
13 UML Unified Modeling Language
14 UC Usecase
15 UI /UX User Interface/User Experience
16 SQL Structured Query Language
17 SMTP Simple Mail Transfer Protocol
18 SDK Software Development Kit
19 SSL Secure Sockets Layer
20 TS Typescript
Trang 24TÓM TẮT KHOÁ LUẬN TỐT NGHIỆP
Với đề tài "Xây dựng ứng dụng ghi chú, quản lý tiến độ công việc cá nhân và nhóm", ứng dụng nhằm mục đích cung cấp một nền tảng cho người dùng ghi chú và quản lý công việc cá nhân cũng như công việc nhóm một cách dễ dàng và hiệu quả Người dùng có thể tạo ghi chú, thêm các công việc, đặt thời hạn, phân loại, thực hiện theo dõi tiến độ và chia sẻ công việc với các thành viên trong nhóm
Phía front-end, đề tài sử dụng Framework7, một framework di động được xây dựng dựa trên HTML, CSS và JavaScript Framework7 cung cấp các thành phần giao diện sẵn có và khả năng tương thích với React, một thư viện JavaScript phổ biến cho việc xây dựng giao diện người dùng tương tác Kết hợp giữa framework7 và React giúp tạo ra một giao diện thân thiện, trực quan và linh hoạt cho ứng dụng
Phía back-end, đề tài sử dụng Node.js, một môi trường chạy mã JavaScript phía máy chủ, và Express, một framework ứng dụng web để xây dựng các API và xử lý các yêu cầu từ phía máy khách Sử dụng Node.js và Express giúp xây dựng một cơ
sở dữ liệu và các API để quản lý ghi chú và công việc, lưu trữ thông tin và cung cấp chức năng tương tác với phía front-end
Tóm lại, đề tài nhằm xây dựng một ứng dụng di động ghi chú và quản lý công việc cá nhân và nhóm, sử dụng framework7 kết hợp React cho phần giao diện người dùng và Node.js kết hợp Express cho phần xử lý logic phía máy chủ Ứng dụng này giúp người dùng dễ dàng tạo, quản lý và chia sẻ công việc cá nhân và công việc nhóm
Trang 25Nội dung khoá luận tốt nghiệp được trình bày trong 4 chương:
- Chương 01: Tổng quan
Trình bày sơ lược và lý do thực hiện đề tài
Xác định phạm vi, mục tiêu mà đề tài hướng tới Trình bày hiện trạng, đưa ra giải pháp cũng như hướng giải quyết tối ưu
Trang 26CHƯƠNG 1 : TỔNG QUAN
1.1 Giới thiệu đề tài
Trong thời đại số hóa hiện nay, ghi chú đã trở thành một phần quan trọng của cuộc sống hàng ngày Tuy nhiên, việc quản lý và theo dõi ghi chú trên nhiều nền tảng
và thiết bị có thể trở nên khó khăn Mục tiêu của khoá luận này là xây dựng một hệ thống quản lý ghi chú đơn giản và linh hoạt, giúp người dùng tổ chức và truy cập ghi chú một cách hiệu quả, nhanh chóng thông qua chiếc smartphone của mình
Trong quá trình nghiên cứu, chúng em đã tiến hành các thử nghiệm Trước tiên, chúng em đã xem xét các ứng dụng và công cụ ghi chú hiện có trên thị trường để hiểu
rõ về các tính năng và ưu điểm của chúng Sau đó, phân tích các yêu cầu và nhu cầu của người dùng trong việc quản lý ghi chú
Dựa trên các nghiên cứu và phân tích trên, chúng em đã lên ý tưởng thiết kế và triển khai một hệ thống kết hợp các tính năng ghi chú với các tính năng quản lý công việc cho một nhóm, tổ chức thành một ứng dụng trên điện thoại di động giúp người dùng có thể linh hoạt quản lý được cả công việc cá nhân và nhóm trên cùng một hệ thống Ngoài ra, nó cũng cung cấp tính năng nhắc nhở và phân loại ghi chú để giúp người dùng tổ chức công việc một cách hiệu quả, duy trì sự sắp xếp trong cuộc sống hàng ngày
1.2 Lý do chọn đề tài
Ghi chú là một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Hầu hết mọi người sử dụng ghi chú để ghi lại thông tin quan trọng, tạo danh sách công việc hoặc ghi chú ý tưởng Từ đó, tạo ra một hệ thống quản lý ghi chú hiệu quả
có thể đáp ứng nhu cầu người dùng
Công nghệ thông tin đang phát triển mạnh mẽ và đã tạo ra nhiều công cụ và ứng dụng quản lý thông tin cá nhân Áp dụng công nghệ thông tin vào quản lý ghi chú có thể cung cấp một cách tiện lợi, linh hoạt và hiệu quả để tổ chức và truy cập ghi chú
Trang 27Mặc dù có nhiều ứng dụng ghi chú hiện có trên thị trường, nhưng vẫn còn những thiếu sót và hạn chế Một số ứng dụng quản lý ghi chú không đủ linh hoạt hoặc không cung cấp đầy đủ tính năng để đáp ứng nhu cầu đa dạng của người dùng Do đó, việc nghiên cứu và phát triển một hệ thống quản lý ghi chú tốt hơn có thể mang lại lợi ích cho người dùng
Và cuối cùng là sự kết hợp giữa quản lý và ghi chú, Quản lý ghi chú không chỉ đơn thuần là việc ghi lại thông tin, mà còn liên quan đến việc tổ chức, tìm kiếm và theo dõi các ghi chú Việc nghiên cứu cách kết hợp quản lý công việc và ghi chú trong một hệ thống có thể mang lại giá trị gia tăng cho người dùng Giúp người dùng vừa đạt được mục tiêu cá nhân mà bên cạnh đó cũng có thể theo dõi được tiến độ công việc của thành viên trong nhóm
1.3 Mục tiêu
Ứng dụng được xây dựng với mục tiêu tạo ra giao diện người dùng thân thiện
và dễ sử dụng dành cho hệ thống quản lý ghi chú Điều này giúp người dùng có thêm thiện cảm và tạo thói quen ghi chú công việc, bên cạnh đó cũng có thể quản lý công việc cùng nhau
Cung cấp tính năng linh hoạt và đa dạng, các tính năng như tạo danh sách công việc, tạo danh mục phân loại, đặt lịch nhắc nhở, quản lý các tài liệu, liên lạc trao đổi trực tiếp với nhau thông qua chatbot Điều này giúp người dùng tổ chức công việc, theo dõi tiến trình và tăng cường hiệu suất làm việc
Ngoài những mục tiêu về tính ứng dụng, việc nghiên cứu, thực hiện đề tài góp phần phát triển vào khả năng tự học, tự nghiên cứu, mong muốn được trau dồi thêm kiến thức mới, tiếp thu những tiến bộ về kỹ thuật, bắt kịp xu hướng công nghệ trong thời đại kỹ thuật 4.0 hiện nay
Trang 28- Project Management (Tìm kiếm, thêm, xoá, cập nhật):
+ Wiki Management (Thêm, xoá, cập nhật các mô tả, những thông tin, tài liệu cho dự án, nhập thông tin từ ghi chú có sẵn)
+ Task Management (Tìm kiếm, thêm, xoá, cập nhật, ghi nhận lịch sử thay đổi, lưu trữ thông tin tiến độ, có đề xuất thành viên phù hợp với công việc dựa vào chủ đề áp dụng Content-based Recommendation System)
+ Comment Management (Thêm, xoá, cập nhật, trao đổi thông tin trong mỗi task giữa các thành viên, tag tên và thông báo đến các thành viên)
+ Update History Management (Tự động lưu trữ các cập nhật khi các thông tin của task được thay đổi từ người dùng)
+ Member Management (Thêm, xoá, phân quyền cho các thành viên trong
dự án, giao việc cho thành viên, xem hồ sơ của thành viên)
+ Chat Group, Chatbot (Trò chuyện thời gian thực giữa các thành thành viên
và kết hợp chatbot OpenAI)
+ File Management (Thêm, xoá, cập nhật các file với nhiều định dạng khác nhau)
+ Weekly Report Management (Biểu đồ phân tích thống kê hoạt động của
dự án và các thành viên, từ những thông tin được lưu trữ thông qua tiến độ
Trang 29làm việc trên các task của các thành viên, tính toán thể hiển tổng quan tiến
độ hiện tại của các công việc và các thành viên có trong tuần, thông tin tiến
độ chi tiết của các thành viên)
- Personal Progress Management (Thống kê các công việc, các nhắc nhở hiện
có và đã hoàn thành trong tuần, hiển thị thời gian, tiến độ hiện tại)
- App Setting Management (Cập nhật thông tin cá nhân, cài đặt ghi nhớ tài khoản cho lần đăng nhập tới, cài đặt cho thông báo đến người dùng, tính năng
bị kế hoạch cho bước tiếp theo
- Áp dụng mô hình tiếp cận lặp (Iterative Model) trong quá trình thực hiện và xây dựng ứng dụng Một chuỗi quá trình thực hiện sẽ được lặp đi lặp lại từ lúc bắt đầu đến khi hoàn thành sản phẩm và báo cáo, sau mỗi chu kỳ sẽ có kết quả của quá trình đó, tiếp theo thực hiện review sau mỗi giai đoạn cho đến khi có sản phẩm cuối cùng
Trang 30- Biết sử dụng các công cụ để phát triển, hỗ trợ trong quá trình thực hiện dự án
- Ứng dụng có độ hoàn thiện cao, đáp ứng đủ các yêu cầu đã đề ra, người dùng
có thể sử dụng ngay lập tức
- Giao diện thân thiện, đem lại trải nghiệm tốt với người dùng, dễ sử dụng
- Tài liệu và quá trình làm việc được ghi lại đầy đủ và rõ ràng đáp ứng cho việc cải tiến và sửa lỗi sau này, có thể được kế thừa bởi những người sau
1.7 Hiện trạng bài toán
Hiện trạng của đề tài "Quản lý và ghi chú" là một lĩnh vực có nhiều ứng dụng
và công cụ hiện có Có rất nhiều ứng dụng di động và hay các phần mềm máy tính đã được phát triển để hỗ trợ quản lý ghi chú Một số ứng dụng phổ biến bao gồm Evernote, OneNote, Google Keep, Apple Notes hoặc kể đến các ứng đa nền tảng như Notion, Trello và còn nhiều ứng dụng khác
Các ứng dụng hiện có thường cung cấp các tính năng như tạo ghi chú văn bản, gắn kết hình ảnh và tệp tin, sắp xếp ghi chú theo danh sách hoặc thẻ, và đôi khi cung cấp tính năng đồng bộ hóa và chia sẻ Một số ứng dụng cũng cung cấp tính năng nhắc nhở và tích hợp với các công cụ khác như lịch và email
Tuy nhiên, mặc dù có nhiều ứng dụng hiện có, vẫn còn một số hạn chế và thiếu sót Một số ứng dụng có thể hạn chế tính linh hoạt trong việc tổ chức và phân loại ghi chú Ngoài ra, cũng có thể xảy ra vấn đề về bảo mật và quyền riêng tư của dữ liệu ghi chú khi sử dụng các ứng dụng của bên thứ ba
Do đó, việc nghiên cứu và phát triển một hệ thống quản lý ghi chú tốt hơn kết hợp với việc quản lý công việc theo nhóm trên cùng một ứng dụng mà không cần
Trang 31thông qua bất kỳ trung gian nào vẫn có thể tạo nên một giá trị tốt Mục tiêu là cung cấp một giải pháp linh hoạt, an toàn và dễ sử dụng hơn, đáp ứng các nhu cầu đa dạng của người dùng và giúp tăng cường hiệu suất làm việc và tổ chức thông tin cá nhân
Notion cho phép người dùng tạo ra các trang và bảng, tổ chức chúng vào danh mục và chủ đề khác nhau Có thể tạo ghi chú văn bản, bảng tính, danh sách công việc, sắp xếp hình ảnh và tệp tin, và thậm chí nhúng các nội dung từ các nguồn bên ngoài như video, trang web, hay file âm thanh Bên cạnh đó, có thể tạo các mục con, đặt thẻ, gắn kết liên kết giữa các trang và tạo mối liên kết logic giữa chúng Điều này giúp tạo ra một mô hình tổ chức thông tin phù hợp với nhu cầu cá nhân hoặc công việc
Notion cũng hỗ trợ tính năng chia sẻ và làm việc nhóm, cho phép mời thành viên khác tham gia và cùng chỉnh sửa nội dung Có thể tạo các dự án chung, giao nhiệm vụ, và theo dõi tiến trình làm việc
Tính linh hoạt và khả năng tùy chỉnh cao làm cho Notion trở thành một công cụ hữu ích cho nhiều mục đích, từ quản lý công việc cá nhân, ghi chú học tập, tới quản
Trang 321.7.1.2 Taio – Markdown Editor
Hình 1-2: Logo ứng dụng Taio [20]
Một ứng dụng hiện đại để xử lý văn bản (Markdown) trên iPhone, iPad và Mac, mang đến trải nghiệm liền mạch cho các quy trình công việc văn bản, chỉnh sửa đánh dấu và bảng tạm Mặc dù độ phổ biến của nó không được cao nhưng những tính năng
mà nó mang lại rất hữu ích cho một số ngành nghề đặc trưng
Ngoài ra Taio[20] còn có thể quản lý từ các file từ những file riêng lẻ cho đến thư mục giúp người dùng dễ dàng sắp xếp và quản lý ghi chú hiệu quả hơn Đối với phiên bản nâng cấp Taio sẽ cung cấp thêm nhiều dạng template và tính năng hữu ích hơn
để người dùng có thể sử dụng Taio như một ứng dụng ghi chú với các tính năng độc đáo nhất phù hợp với nhu cầu và tính chất công việc
1.7.1.3 Redmine - Flexible Project Management
Hình 1-3: Logo ứng dụng Redmine [25]
Redmine[25] là một hệ thống quản lý dự án mã nguồn mở và phần mềm theo hướng công nghệ thông tin Nó cung cấp một nền tảng linh hoạt và mạnh mẽ để tổ chức và quản lý các dự án, theo dõi công việc, quản lý tài liệu, và giao tiếp trong một môi trường làm việc tập trung
Trang 33Dưới đây là một số đặc điểm chính và tính năng của Redmine:
- Quản lý dự án: Redmine cho phép tạo và quản lý các dự án Có thể thiết lập lịch trình, quản lý thành viên, giao nhiệm vụ, và theo dõi tiến độ dự án
- Theo dõi công việc: Redmine cung cấp các công cụ để theo dõi và quản lý công việc Có thể tạo và gán công việc cho các thành viên trong nhóm, theo dõi tiến độ, đặt thời hạn và ưu tiên công việc
- Quản lý tài liệu: Redmine cho phép tạo và quản lý tài liệu trong các dự án Có thể tạo wiki, đính kèm tệp tin, và chia sẻ thông tin với thành viên khác trong
dự án
- Giao tiếp và phản hồi: Redmine cung cấp các công cụ giao tiếp và phản hồi bên trong dự án Có thể tạo cuộc thảo luận, bình luận và theo dõi lịch sử thay đổi
- Theo dõi vấn đề: Redmine cho phép theo dõi và quản lý các vấn đề và lỗi Có thể tạo và gán vấn đề, theo dõi tiến độ giải quyết, và giao tiếp với các thành viên khác trong nhóm
- Tính linh hoạt và tùy chỉnh: Redmine có một cấu trúc linh hoạt và cho phép tùy chỉnh các tính năng và giao diện theo nhu cầu cụ thể của dự án
Redmine đã trở thành một công cụ phổ biến trong việc quản lý dự án và phát triển phần mềm Nó có cộng đồng người dùng rộng lớn và liên tục được cập nhật và phát triển để đáp ứng nhu cầu của các dự án khác nhau
1.7.1.4 Backlog - Project Management
Hình 1-4: Logo backlog [12]
Backlog[12] là một ứng dụng quản lý dự án và công việc dành riêng cho hệ điều hành iOS Nó cung cấp một nền tảng để tổ chức, theo dõi và quản lý các nhiệm
Trang 34Dưới đây là một số đặc điểm và tính năng chính của Backlog iOS:
- Quản lý dự án: Backlog iOS cho phép tạo và quản lý các dự án Có thể đặt tên,
mô tả và thiết lập các thông số khác cho dự án của mình
- Tạo và giao nhiệm vụ: Có thể tạo và gán các nhiệm vụ cho thành viên trong
dự án Có thể đặt thời hạn, ưu tiên, gắn kết tệp tin và ghi chú cho từng nhiệm
vụ
- Theo dõi tiến độ: Backlog iOS cung cấp các công cụ và tính năng để theo dõi tiến độ công việc Cho phép thay đổi và cập nhật trạng thái của từng chi tiết công việc, đánh dấu và ghi lại thời gian đã dùng
- Giao tiếp và phản hồi: Backlog iOS cho phép gửi và nhận các bình luận, thông báo và phản hồi về công việc và dự án Điều này giúp tăng cường sự giao tiếp
và hợp tác giữa các thành viên trong nhóm
- Lịch trình và biểu đồ: Có thể xem lịch trình công việc và dự án trên Backlog iOS Nó hiển thị biểu đồ Gantt và các công cụ khác để giúp theo dõi tiến độ
và lập kế hoạch
- Tích hợp với phiên bản web: Backlog iOS có thể tích hợp và đồng bộ dữ liệu với phiên bản web của Backlog, cho phép truy cập và cập nhật công việc từ cả hai nền tảng
Backlog iOS là một công cụ hữu ích cho việc quản lý dự án và công việc trên các thiết bị di động iOS Nó cung cấp tính năng linh hoạt và tiện lợi để theo dõi và
tổ chức công việc, tăng cường giao tiếp và hợp tác giữa các thành viên trong dự án
1.7.2 Đánh giá hiện trạng và hướng giải quyết
Trang 35viên trong dự án Một số công cụ cũng cung cấp tính năng lập kế hoạch, biểu đồ Gantt, và tích hợp với các công cụ khác như email và lịch
Trong lĩnh vực quản lý ghi chú, có nhiều ứng dụng như Evernote, OneNote, Google Keep, Apple Notes và nhiều ứng dụng khác Các ứng dụng này cho phép tạo ghi chú văn bản, gắn kết hình ảnh và tệp tin, sắp xếp ghi chú theo danh sách hoặc thẻ,
và đôi khi cung cấp tính năng đồng bộ hóa và chia sẻ Một số ứng dụng cũng có tính năng nhắc nhở và tích hợp với các công cụ khác như lịch và email
Tuy nhiên, mặc dù có nhiều ứng dụng và công cụ hiện có, vẫn còn một số hạn chế và thiếu sót Một số ứng dụng có thể hạn chế tính linh hoạt trong việc tổ chức và phân loại công việc hoặc ghi chú Điều này tạo cơ hội cho việc nghiên cứu và phát triển các hệ thống quản lý công việc và ghi chú tốt hơn Tích hợp thêm các tính năng đáp ứng các nhu cầu đa dạng của người dùng, phù hợp với mục đích của từng ngành nghề và giúp tăng cường hiệu suất làm việc và tổ chức thông tin cá nhân
1.7.2.2 Hướng giải quyết
Để giải quyết thực trạng trong việc quản lý công việc và ghi chú, có một số hướng tiếp cận có thể được áp dụng như sau:
- Tiếp tục nghiên cứu và sử dụng các công cụ quản lý công việc và ghi chú hiện
có để tìm ra công cụ phù hợp với nhu cầu, song song đó xem xét các tính năng, khả năng tùy chỉnh và tích hợp để đem vào phát triển
- Tạo sự liên kết giữa các công cụ quản lý công việc và ghi chú khác nhau để tận dụng lợi ích của từng công cụ
- Nắm vững các phương pháp và kỹ thuật quản lý công việc và ghi chú hiệu quả
Trang 36CHƯƠNG 2 : KIẾN THỨC NỀN TẢNG
2.1 Công cụ quản lý và phát triển
2.1.1 Visual Studio Code
Hình 2-1: logo ứng dụng Visual Studio Code [21]
Trình soạn thảo mã nguồn mở Visual Studio Code[21] được phát triển bởi Microsoft Nó được thiết kế để hỗ trợ biên tập và soạn thảo mã nguồn cho các dự án phần mềm VS Code hỗ trợ nhiều ngôn ngữ lập trình và công nghệ, giúp người dùng tuỳ chỉnh môi trường làm việc theo nhu cầu của cá nhân
Tính năng nổi bật:
- Hỗ trợ đa nền tảng: giúp các lập trình viên có thể sử dụng trên hầu hết các hệ điều hành hiện có
- Tích hợp debug: Cung cấp các tính năng debug mạnh mẽ, cho phép theo dõi
và gỡ lỗi một cách hiệu quả
- Hỗ trợ Git: tích hợp sẵn với Git, quản lý mã nguồn với các lệnh thực thi Git một cách dễ dàng
- Syntax Highlighting: làm nổi bật cú pháp giúp lập trình viên nhận biết các thành phần khác nhau dễ dàng hơn
- Autocomplete: cung cấp tính năng tự động hoàn thành mã thông minh (IntelliSense) giúp giảm thời gian soạn thảo và giảm sau sót
- Snippets: là các đoạn mẫu có thể sử dụng nhanh chóng và tái sử dụng để tăng hiệu suất lập trình
- Tuỳ chỉnh chủ đề và phím tắt: cho phép thay đổi giao diện bằng cách chọn chủ
đề khác nhau, cá nhân hoá phím tắt để thích nghi với quy trình làm việc
Trang 37Nhờ vào tính linh hoạt và khả năng mở rộng thông qua các tiện ích và plugin,
VS Code đã trở thành một trong những trình soạn thảo mã phổ biến và được yêu thích trong cộng đồng lập trình viên
2.1.2 Xcode
Hình 2-2: Logo ứng dụng Xcode [19]
Xcode[19] là một môi trường phát triển tích hợp (IDE) do Apple cung cấp, được thiết kế đặc biệt để hỗ trợ lập trình viên trong việc phát triển các ứng dụng cho hệ điều hành của Apple, bao gồm macOS, iOS, tvOS và watchOS IDE này cung cấp một loạt các công cụ và tài nguyên phong phú, giúp nhà phát triển tạo ra các ứng dụng di động và máy tính các nhân với chất lượng cao và hiệu suất tối ưu
Xcode đi kèm với trình biên dịch Swift, ngôn ngữ lập trình chính được sử dụng
để phát triển ứng dụng trên các nền tảng của Apple Ngoài Swift, Xcode cũng hỗ trợ Objective-C, ngôn ngữ lập trình truyền thống của Apple
Xcode cung cấp giao diện người dùng trực quan và đa chức năng cho việc xây dựng ứng dụng, bao gồm trình soạn thảo mã, trình biên dịch, trình gỡ lỗi, quản lý phiên bản, và mô phỏng màn hình Nó cũng đi kèm với một bộ công cụ phong phú
để phân tích, kiểm tra và tối ưu hóa ứng dụng
Với Xcode, người dùng có thể phát triển ứng dụng di động, ứng dụng máy tính
cá nhân, ứng dụng đồng hồ thông minh và ứng dụng truyền hình Xcode hỗ trợ việc xây dựng giao diện người dùng bằng cách sử dụng Interface Builder và hỗ trợ tạo các chức năng phức tạp bằng việc sử dụng các framework của Apple
Tóm lại, Xcode là một IDE mạnh mẽ và linh hoạt cho phát triển ứng dụng trên các nền tảng của Apple, mang lại sự thuận tiện và hiệu quả cho nhà phát triển trong quá trình xây dựng ứng dụng chất lượng cao
Trang 382.1.3 Android Studio
Hình 2-3: Logo ứng dụng Android Studio [5]
Android Studio[5] là một Integrated Development Environment (IDE) phát triển ứng dụng di động chính thức dành cho nền tảng Android IDE này hỗ trợ và cung cấp nhiều công cụ cũng như có một lượng lớn tài nguyên phong phú, đáp ứng đầy đủ yêu cầu của một nhà phát triển ứng dụng di động
Ý tưởng của Android Studio bắt nguồn từ một IDE khá phổ biến dành cho JAVA
là IntelliJ IDEA Nhiều ngôn ngữ lập trình khác nhau được nó hỗ trợ bao gồm Java, Kotlin và C++ Nó cung cấp các tính năng nổi bật như trình gỡ lỗi (debugger), trình biên dịch (compiler), trình soạn thảo (editor), và một loạt các công cụ hữu ích khác trong việc phát triển ứng dụng android mạnh mẽ với đa dạng các tính năng
Android Studio dựa trên IntelliJ IDEA, một IDE phổ biến cho Java, và nó hỗ trợ nhiều ngôn ngữ lập trình khác nhau bao gồm Java, Kotlin và C++ Nó cung cấp trình biên dịch, trình gỡ lỗi, trình soạn thảo mã và một loạt các công cụ phát triển khác để tạo ra các ứng dụng Android đa dạng và mạnh mẽ
Một trong những tính năng nổi bật của Android Studio là Layout Editor, cho phép nhà phát triển giao diện người dùng trực quan thông qua kéo và thả các thành phần Nó cũng cung cấp các công cụ để kiểm tra và tối ưu hóa hiệu năng ứng dụng, cũng như quản lý phiên bản và tích hợp dễ dàng với các dịch vụ và thư viện của Google
Android Studio cũng hỗ trợ việc triển khai ứng dụng lên các thiết bị di động thông qua Android Emulator hoặc thiết bị thực Nó cung cấp môi trường phát triển toàn diện để phát triển và kiểm thử ứng dụng trước khi phát hành lên Google Play Store
Trang 39Tóm lại, Android Studio là một IDE mạnh mẽ và linh hoạt cho phát triển ứng dụng Android, cung cấp các công cụ và tài nguyên để tạo ra ứng dụng đa dạng, tối
ưu và tương thích trên nền tảng Android
2.1.4 Github
Hình 2-4: Logo Github [10]
GitHub[10] là một nền tảng dựa trên web được sử dụng rộng rãi cho việc lưu trữ
mã nguồn và quản lý phiên bản Nó cho phép làm việc cùng nhau trên dự án, theo dõi
sự thay đổi và kiểm soát phiên bản của mã nguồn
Trên GitHub, người dùng có lưu trữ mã nguồn của dự án thông qua ra các kho lưu trữ (repositories) Các kho lưu trữ này có thể được chia sẻ công khai hoặc riêng
tư và có thể được sao chép (fork) bởi người khác để đóng góp vào dự án
GitHub cung cấp các công cụ quản lý phiên bản linh hoạt, cho phép nhà phát triển theo dõi sự thay đổi của mã nguồn qua thời gian, xem lịch sử commit và hợp nhất (merge) các thay đổi từ các nhánh (branches) khác nhau Nó cũng hỗ trợ việc quản lý vấn đề (issue tracking) để theo dõi, báo cáo và giải quyết các vấn đề, lỗi hoặc yêu cầu tính năng
GitHub cũng là một cộng đồng, nơi người dùng có thể tương tác, thảo luận và đóng góp vào dự án của nhau thông qua các yêu cầu kéo (pull requests) Nó cung cấp một giao diện web thân thiện, cùng với các tính năng như wiki, dự án, và đám mây (cloud) để lưu trữ tài liệu và tệp tin
Tóm lại, GitHub là một nền tảng lưu trữ mã nguồn và quản lý phiên bản mạnh
mẽ và phổ biến, được sử dụng rộng rãi trong cộng đồng phát triển phần mềm để hỗ trợ việc làm việc nhóm, theo dõi và kiểm soát mã nguồn của dự án
Trang 40tư và hỗ trợ nhiều hệ thống quản lý phiên bản như Git và Mercurial
Bitbucket cung cấp các tính năng quản lý phiên bản mạnh mẽ, giúp theo dõi sự thay đổi của mã nguồn, tạo và quản lý nhánh (branches), hợp nhất (merge) các thay đổi và xem lịch sử commit Nó cũng hỗ trợ tính năng quản lý vấn đề (issue tracking)
để theo dõi, báo cáo và giải quyết các vấn đề và yêu cầu tính năng
Bitbucket cung cấp tính năng tích hợp liên tục (continuous integration) và liên tục triển khai (continuous deployment), cho phép kiểm tra, triển khai ứng dụng và tự động xây dựng từ mã nguồn Nó cũng cung cấp tính năng quản lý quyền truy cập và kiểm soát, cho phép người dùng quản lý quyền truy cập vào kho lưu trữ và các chức năng khác
Bitbucket là một công cụ phổ biến trong việc quản lý mã nguồn và làm việc nhóm, cung cấp các tính năng mạnh mẽ và linh hoạt cho quản lý phiên bản, tích hợp liên tục và quản lý vấn đề trong quá trình phát triển phần mềm