1. Trang chủ
  2. » Giáo Dục - Đào Tạo

KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG MÔI TRƯỜNG PHÁT TRIỂN SẢN PHẨM CÔNG NGHỆ THÔNG TIN

166 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 166
Dung lượng 6,51 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TÓM TẮT KHÓA LUẬN Khóa luận với đề tài Xây dựng công cụ quản lý sản phẩm trong công nghệ thông tin dùng Java Spring framework và ReactJS được xây dựng trên hệ thống website, giúp người q

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 3

DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN

Hội đồng chấm khóa 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

1 - Chủ tịch

2 - Thư ký

3 - Ủy viên

4 - Ủy viên

Trang 4

ĐẠI HỌC QUỐC GIA 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

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP

CỦA CÁN BỘ HƯỚNG DẪN

Tên khóa luận:

XÂY DỰNG MÔI TRƯỜNG PHÁT TRIỂN SẢN PHẨM CÔNG NGHỆ THÔNG TIN

Đánh giá Khóa luận

1 Về cuốn báo cáo:

Trang 5

4 Về thái độ làm việc của sinh viên:

………

………

Đánh giá chung: ………

………

Điểm từng sinh viên: Nguyễn Duy Tân /10

Trần Thị Thu Tình /10

Người nhận xét

(Ký tên và ghi rõ họ tên)

Trang 6

ĐẠI HỌC QUỐC GIA 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

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP

CỦA CÁN BỘ HƯỚNG DẪN

Tên khóa luận:

XÂY DỰNG MÔI TRƯỜNG PHÁT TRIỂN SẢN PHẨM CÔNG NGHỆ THÔNG TIN

Đánh giá Khóa luận

5 Về cuốn báo cáo:

Trang 7

4 Về thái độ làm việc của sinh viên:

………

………

Đánh giá chung: ………

………

Điểm từng sinh viên: Nguyễn Duy Tân /10

Trần Thị Thu Tình /10

Người nhận xét

(Ký tên và ghi rõ họ tên

Trang 8

LỜI CẢM ƠN

Đầu tiên, với tất cả lòng biết ơn và sự kính trọng, chúng em xin trân trọng cảm ơn quý thầy,

cô khoa Công Nghệ Phần Mềm, cũng như các thầy, cô đang công tác tại trường Đại học Công

nghệ Thông tin – ĐHQG-HCM đã dùng tất cả tri thức và tâm huyết để truyền đạt những kiến

thức, kinh nghiệm quý báu cho chúng em trong suốt quá trình học tập và rèn luyện tại ngôi

trường này Đặc biệt, chúng em xin gửi lời tri ân chân thành và sâu sắc đến Ths Nguyễn Công

Hoan – người thầy hướng dẫn đã hết sức tận tâm, nhiệt tình hỗ trợ và hết lòng giúp đỡ cho

nhóm chúng em trong suốt quá trình thực hiện đồ án Những định hướng, bổ sung, góp ý của

thầy là nguồn cảm hứng và nền tảng cơ sở góp phần giúp chúng em có những nghiên cứu

đúng đắn, đạt được kết quả tốt nhất trong việc xây dựng, phát triển ứng dụng và hoàn thiện

khóa luận tốt nghiệp.Tiếp theo, chúng em xin được phép gửi lời cảm ơn đặc biệt đến gia đình

và người thân Gia đình luôn là chỗ dựa tinh thần vững chắc, là nguồn động lực lớn giúp

chúng em vượt qua mọi khó khăn, phấn đấu hoàn thành tốt

Cuối cùng, nhóm chúng em xin gửi lời cảm ơn đến các anh, chị và các bạn sinh viên trường

Đại học Công nghệ Thông tin đã nhiệt tình hỗ trợ, chia sẻ ý kiến, góp ý giúp chúng em trong

suốt thời gian thực đồ án Một lần nữa, chúng em xin chân thành cảm ơn và xin gửi lời chúc

sức khỏe đến quý thầy, cô

TP Hồ Chí Minh, ngày 15 tháng 1 năm 2021

Nhóm tác giả

Trang 9

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

ĐỀ CƯƠNG CHI TIẾT KHÓA LUẬN TỐT NGHIỆP

Tên đề tài: Xây dựng môi trường phát triển sản phẩm công nghệ thông tin (Building tool for product

workspace)

Cán bộ hướng dẫn: ThS Nguyễn Công Hoan

Thời gian thực hiện: Từ ngày 7/09/2020 đến ngày 20/12/2020

Sinh viên thực hiện:

1 Nguyễn Duy Tân - 16521075

2 Trần Thị Thu Tình - 16521250

Nội dung đề tài:

Mục tiêu: Đề tài hướng đến xây dựng một môi trường phát triển sản phẩm công nghệ thông tin cho các công ty

có quy mô vừa và nhỏ Với mục tiêu tạo ra một công cụ quản lý sản phẩm theo lộ trình Cho phép tạo ra một kế hoạch chi tiết về chiến lược sản phẩm và theo dõi các tính năng của sản phẩm trong suốt vòng đời phát triển sản phẩm Đồng thời công cụ tạo ra một cái nhìn tổng quan toàn diện về các sản phẩm, đặt các mốc quan trọng khác nhau cho các nhóm, tìm nguồn ý tưởng từ các thành viên trong nhóm, tạo ra một quy trình làm việc cho các phương pháp agile/scrum Giúp cho người quản lý sản phẩm (Product manager) tạo ra được một sản phẩm có chất lượng, và đáp ứng được nhu cầu của khách hàng

Đối tượng: Các công ty có quy mô vừa và nhỏ

Phương pháp thực hiện: Làm việc nhóm với 2 thành viên, phân chia công việc phù hợp với năng lực và kinh

nghiệm của từng người, thực hiện khóa luận theo lượng công việc và thời gian đã được lập kế hoạch chi tiết Các vấn đề liên quan đến khóa luận đều được trao đổi trực tiếp giữa các thành viên

Kết quả mong đợi: Hoàn thiện một công cụ hoạt động tốt với đầy đủ các chức năng đã được lập trình, giao diện thân thiện và mang lại trải nghiệm tốt nhất cho người dùng

Kế hoạch thực hiện: (thời gian thực hiện trong 15 tuần)

công Phase 1: Phân tích và tìm hiểu 1 tuần

1 Sprint 1: Phân tích đề tài và nghiên cứu kỹ thuật 1 tuần

Trang 10

1.1 Khảo sát, tìm hiểu yêu cầu của hệ thống

Tuần 1 (7/9/2020 - 14/9/2020)

Cả nhóm 1.2 Phân tích, thiết kế hệ thống:

1.2.4 Lựa chọn công nghệ, kỹ thuật phù hợp cho dự án Cả nhóm

2 Sprint 2: Nghiên cứu và xây dựng khung ứng dụng 1 tuần

2.1 Tìm hiểu và xây dựng framework cho web server Tuần 2

(14/09/2020 – 21/09/2020)

Tân

3

Sprint 3: Xây dựng chức năng đăng nhập, đăng ký,

đăng ký package, tạo workspace và product 1 tuần

3.1 Xây dựng chức năng đăng nhập, đăng ký Tuần 3

Cài đặt giao diện và thực hiện chức năng đăng ký gói

4 Sprint 4: Xây dựng chức năng tạo chiến lược 5 tuần

(28/09/2020 – 5/10/2020)

Tân 4.2 Cài đặt giao diện và hiện thực chức năng quản lý vision Tình 4.3 Xây dựng chức năng quản lý model

Tuần 5 (5/10/2020 – 12/10/2020)

Tân 4.4 Cài đặt giao diện và hiện thực chức năng quản lý model Tình

4.6 Cài đặt và hiện thực chức năng quản lý positioning Tình 4.7 Xây dựng chức năng quản lý personal Tuần 6

(12/10/2020 – 19/10/2020)

Tân Cài đặt và hiện thực chức năng quản lý personal

Trang 11

4.9 Xây dựng chức năng quản lý competitors Tân 4.10 Cài đặt và hiện thực chức năng quản lý competitors Tình 4.11 Xây dựng chức năng quản lý mục tiêu Tuần 7

(19/10/2020 – 26/10/2020)

Tân 4.12 Cài đặt giao diện và hiện thực chức năng quản lý mục tiêu Tình

4.13 Xây dựng chức năng quản lý sáng kiến

Tuần 8 (26/10/2020 – 1/11/2020)

Tân

4.14 Cài đặt giao diện và hiện thực chức năng quản lý sáng kiến Tình

5 Sprint 5: Xây dựng chức năng quản lý release 1 tuần

5.1 Xây dựng chức năng quản lý release Tuần 9

(1/11/2020 – 8/11/2020)

Tân

5.2 Cài đặt giao diện và thực hiện chức năng quản lý release Tình

6 Sprint 6: Xây dựng chức năng quản lý feature 1 tuần

6.1 Xây dựng chức năng quản lý feature Tuần 10

(8/11/2020 – 15/11/2020)

Tân 6.2 Cài đặt giao diện và hiện thực chức năng quản lý feature Tình

7 Sprint 7: Xây dựng chức năng quản lý roadmaps 1 tuần

7.1 Xây dựng chức năng quản lý roadmaps Tuần 11

(15/11/2020 – 22/11/2020)

Tân 7.2 Cài đặt giao diện và hiện thực chức năng quản lý roadmaps Tình

8 Sprint 8: Xây dựng chức năng quản lý idea 1 tuần

(22/11/2020 – 29/11/2020)

Tân 8.2 Cài đặt giao diện và thực hiện chức năng quản lý idea Tình

9 Sprint 9: Xây dựng chức năng xem thông tin chung 1 tuần

9.1 Xây dựng chức năng xem thông tin của workspace

Tuần 13 (29/11/2020 – 06/12/2020)

Xây dựng chức năng hiển thị danh sách công việc của user

9.4

Cài đặt giao diện và hiện thực chức năng hiển thị danh sách

Tình

Trang 12

Phase 3: Quản trị hệ thống

10

Sprint 10: Xây dựng chức năng phân quyền hệ thống và

(06/12/2020 – 13/12/2020)

Tình

Phase 4: Kiểm thử, sửa lỗi và đóng gói 1 tuần

11 Sprint 11: Kiểm thử và sửa lỗi

1/2 tuần (13/12/2020- 17/12/2020) Cả nhóm

(17/12/2020 – 20/12/2020)

Cả nhóm

Xác nhận của CBHD (Ký tên và ghi rõ họ tên)

TP HCM, ngày 15 tháng 1 năm 2021

Sinh viên (Ký tên và ghi rõ họ tên)

Trang 13

MỤC LỤC

Trang 14

Chương 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 29

3.4.4.3 Đặt tả use case “Quản lý user, phân quyền user” 46

3.4.4.16 Đặc tả use case “Quản lý roadmap strategy” 83

Trang 16

4.2.7 Giao diện quản lý competitors 127

Trang 17

DANH MỤC HÌNH VẼ

Hình 1.1 Giới thiệu về cơ sở dữ liệu PostgreSQL 23

Hình 4.1 Màn hình đăng nhập 115

Hình 4.2 Màn hình đăng ký 116

Hình 4.3 Màn hình đăng ký package 117

Hình 4.4 Màn hình tạo workspace 117

Hình 4.5 Màn hình danh sách workspace 118

Hình 4.6 Màn hình danh sách workspace products 118

Hình 4.7 Popup tạo product 119

Hình 4.8 Màn hình thêm vision khi chưa có vision được tạo 119

Hình 4.9 Màn hình quản lý vision 120

Hình 4.10 Màn hình hiển thị thông tin chi tiết component của vision 121

Hình 4.11 Màn hình thêm model khi chưa có model nào được tạo 121

Hình 4.12 Popup chọn template model 122

Hình 4.13 Màn hình hiển thị layout component của model 122

Hình 4.14 Màn hình thông tin chi tiết của model 123

Hình 4.15 Màn hình thông tin chi tiết component model 123

Hình 4.16 Màn hình thêm positioning khi chưa có positioning nào được tạo 124

Hình 4.17 Màn hình hiển thị layout positioning 124

Hình 4.18 Màn hình cập nhật component positioning 125

Hình 4.19 Màn hình cập nhật positioning 125

Hình 4.20 Màn hình thêm personas khi chưa có personas nào được thêm 126

Hình 4.21 Màn hình thông tin chi tiết personas 126

Hình 4.22 Màn hình cập nhật personas 127

Hình 4.23 Màn hình thêm competitor khi chưa có competitor nào được tạo 127

Hình 4.24 Màn hình thông tin chio tiết competitor 128

Hình 4.25 Màn hình cập nhật competitor 128

Hình 4.26 Màn hình thêm goal khi chưa có goal nào được tạo 129

Hình 4.27 Màn hình thông tin chi tiết goal 129

Hình 4.28 Màn hình cập nhật goal 130

Hình 4.29 Màn hình cập nhật release trong goal 130

Hình 4.30 Màn hình cập nhật feature trong goal 131

Hình 4.31 Màn hình thêm initiative khi chưa có initiative được tạo 131

Hình 4.32 Màn hình thông tin chi tiết, cập nhật initiative 132

Hình 4.33 Màn hình cập nhật goal trong initiative 132

Hình 4.34 Màn hình cập nhật release trong initiative 133

Hình 4.35 Màn hình cập nhật feature trong initiative 133

Hình 4.36 Màn hình hiển thị danh sách initiative workflow 134

Hình 4.37 Màn hình cập nhật initiative trong workflow 134

Hình 4.38 Màn hình tổng quan ideas 135

Hình 4.39 Popup thêm idea 135

Trang 18

Hình 4.41 Màn hình danh sách ideas 136

Hình 4.42 Màn hình gantt releases 137

Hình 4.43 Popup thêm release 137

Hình 4.44 Màn hình cập nhật feature trong gantt release 138

Hình 4.45Màn hình cập nhật release trong gantt release 138

Hình 4.46 Màn hình thêm release khi chưa có release nào được tạo 139

Hình 4.47 Màn hình thêm feature 139

Hình 4.48 Màn hình danh sách các feature 140

Hình 4.49 Màn hình cập nhật thông tin future 140

Hình 4.50 Form thêm requirement 141

Hình 4.51 Màn hình danh sách epics 141

Hình 4.52 Màn hình cập nhật epic 142

Hình 4.53 Màn hình thêm user story map khi chưa có user story map nào được tạo 142

Hình 4.54 Màn hình layout user story map 143

Hình 4.55 Màn hình cập nhật epic trong user story map 143

Hình 4.56 Màn hình cập nhật feature trong user story map 144

Hình 4.57 Màn hình cập nhật release trong user story map 144

Hình 4.58 Màn hình roadmap strategy 145

Hình 4.59 Màn hình cập nhật initiative trong roadmap 145

Hình 4.60 Màn hình cập nhật release trong roadmap 146

Hình 4.61 Màn hình danh sách release, feature 146

Hình 4.62 Màn hình cập nhật release 147

Hình 4.63 Màn hình cập nhật feature 147

Hình 4.64 Màn hình thông tin chung product 148

Hình 4.65 Màn hình cập nhật thông tin cá nhân 149

Hình 4.66 Màn hình danh sách users 149

Hình 4.67 Màn hình phân quyền, edit, xóa user 150

Hình 4.68 Màn hình danh sách package 150

Hình 4.69 Popup thêm, cập nhật package 151

Hình 4.70 Màn hình report income, sold out của một package 151

Hình 4.71 Form thêm todo 152

Hình 4.72 Form cập nhật todo 152

Hình 4.73 Thêm comment 152

Hình 4.74 Popup file preview 153

Hình 4.75 Popup chọn file 153

Trang 19

DANH MỤC SƠ ĐỒ

Sơ đồ 3.1 Sơ đồ kiến trúc hệ thống 30

Sơ đồ 3.2 Sơ đồ phân rã chức năng 31

Sơ đồ 3.3 Sơ đồ use case 32

Sơ đồ 3.4 Mô hình dữ liệu PostgreSQL 90

Trang 20

DANH MỤC BẢNG

Bảng 3.1 Danh sách các Actor 33

Bảng 3.2 Danh sách các Use Case 34

Bảng 3.3 Đặc tả chức năng đăng nhập 39

Bảng 3.4 Đặc tả chức năng đăng ký 40

Bảng 3.5 Đặc tả chức năng đăng xuất 41

Bảng 3.6 Đặc tả chức năng tạo workspace 42

Bảng 3.7 Đặc tả chức năng upgrade workspace 43

Bảng 3.8 Đặc tả chức năng tạo product 44

Bảng 3.9 Đặc tả chức năng xóa product 45

Bảng 3.10 Đặc tả chức năng cập nhật product 46

Bảng 3.11 Đặc tả chức năng thêm user đến workspace 46

Bảng 3.12 Đặc tả chức năng cập nhật permission user 48

Bảng 3.13 Đặc tả chức năng xóa user ra khỏi workspace 49

Bảng 3.14 Đặc tả chức năng thêm vision 50

Bảng 3.15 Đặc tả chức năng cập nhật thông tin vision 50

Bảng 3.16 Đặc tả chức năng thêm component vision 51

Bảng 3.17 Đặc tả chức năng cập nhật vision component 52

Bảng 3.18 Đặc tả chức năng xóa vision component 52

Bảng 3.19 Đặc tả chức năng thêm model 53

Bảng 3.20 Đặc tả chức năng cập nhật model 54

Bảng 3.21 Đặc tả chức năng xóa model 55

Bảng 3.22 Đặc tả chức năng thêm component cho model 55

Bảng 3.23 Đặc tả chức năng thêm component cho model 56

Bảng 3.24 Đặc tả chức năng Cập nhật layout cho model 56

Bảng 3.25 Đặc tả chức năng xóa component cho model 58

Bảng 3.26 Đặc tả chức năng thêm positioning 58

Bảng 3.27 Đặc tả chức năng cập nhật positioning 59

Bảng 3.28 Đặc tả chức năng cập nhật layout component cho positioning 60

Bảng 3.29 Đặc tả chức năng thêm component cho positioning 60

Bảng 3.30 Đặc tả chức năng cập nhật component cho positioning 61

Bảng 3.31 Đặc tả chức năng xóa component cho positioning 62

Bảng 3.32 Đặc tả chức năng xóa positioning 62

Bảng 3.33 Đặc tả chức năng thêm personas 63

Bảng 3.34 Đặc tả chức năng cập nhật personas 64

Bảng 3.35 Đặc tả chức năng xóa personas 64

Bảng 3.36 Đặc tả chức năng thêm competitor 65

Bảng 3.37 Đặc tả chức năng cập nhật competitor 66

Bảng 3.38 Đặc tả chức năng xóa competitor 67

Bảng 3.39 Đặc tả chức năng thêm goal 67

Bảng 3.40 Đặc tả chức năng cập nhật goal 68

Trang 21

Bảng 3.42 Đặc tả chức năng thêm initiative 69

Bảng 3.43 Đặc tả chức năng cập nhật initiative 70

Bảng 3.44 Đặc tả chức năng xóa initiative 71

Bảng 3.45 Đặc tả chức thêm idea 71

Bảng 3.46 Đặc tả chức năng cập nhật idea 72

Bảng 3.47 Đặc tả chức năng xóa idea 73

Bảng 3.48 Đặc tả chức thêm feature 74

Bảng 3.49 Đặc tả chức năng cập nhật feature 74

Bảng 3.50 Đặc tả chức năng xóa feature 75

Bảng 3.51 Đặc tả chức thêm epic 76

Bảng 3.52 Đặc tả chức năng cập nhật epic 77

Bảng 3.53 Đặc tả chức năng xóa epic 77

Bảng 3.54 Đặc tả chức thêm release 78

Bảng 3.55 Đặc tả chức năng cập nhật release 79

Bảng 3.56 Đặc tả chức năng xóa release 79

Bảng 3.57 Đặc tả chức thêm user story map 80

Bảng 3.58 Đặc tả chức năng cập nhật user story map 81

Bảng 3.59 Đặc tả chức năng cập nhật layout của một user story map 82

Bảng 3.60 Đặc tả chức năng xóa user story map 82

Bảng 3.61 Đặc tả chức năng xem roadmap strategy 83

Bảng 3.62 Đặc tả chức năng thêm todo 84

Bảng 3.63 Đặc tả chức năng cập nhật todo 84

Bảng 3.64 Đặc tả chức năng xóa todo 85

Bảng 3.65 Đặc tả chức năng thêm comment 86

Bảng 3.66 Đặc tả chức năng xóa comment 87

Bảng 3.67 Đặc tả chức năng thêm package 87

Bảng 3.68 Đặc tả chức năng cập nhật package 88

Bảng 3.69 Đặc tả chức năng xem thống kê packages 89

Bảng 3.70 Bảng package 91

Bảng 3.71 Bảng package_code 92

Bảng 3.72 Bảng permission 92

Bảng 3.73 Bảng workspace 93

Bảng 3.74 Bảng workspace_config 94

Bảng 3.75 Bảng product 94

Bảng 3.76 Bảng user_profile 95

Bảng 3.77 Bảng user_config 96

Bảng 3.78 Bảng vision 97

Bảng 3.79 Bảng vision_component 97

Bảng 3.80 Bảng model 98

Bảng 3.81 Bảng thông tin thuê phòng 98

Bảng 3.82 Bảng position 99

Bảng 3.83 Bảng position_component 100

Trang 22

Bảng 3.85 Bảng competitor 101 Bảng 3.86 Bảng goal 102 Bảng 3.87 Bảng initiative 103 Bảng 3.88 Bảng release 103 Bảng 3.89 Bảng release_phase 105 Bảng 3.90 Bảng release_layout 105 Bảng 3.91 Bảng feature 106 Bảng 3.92 Bảng requirement 107 Bảng 3.93 Bảng epic 108 Bảng 3.94 Bảng user_story 109 Bảng 3.95 Bảng idea 109 Bảng 3.96 Bảng history 110 Bảng 3.97 Bảng watcher 111 Bảng 3.98 Bảng comment 111 Bảng 3.99 Bảng todo 112 Bảng 3.100 Bảng todo_assign 113

Trang 24

TÓM TẮT KHÓA LUẬN

Khóa luận với đề tài Xây dựng công cụ quản lý sản phẩm trong công nghệ thông tin dùng Java Spring framework và ReactJS được xây dựng trên hệ thống website, giúp người quản

lý dễ dàng hơn và tốn ít chi phí hơn trong công việc

Công cụ quản lý sản phẩm trong công nghệ thông tin áp dụng cho các công ty loại vừa và nhỏ Khi mà công việc quản lý ngày trở nên càng nhiều, để hỗ trợ và làm đơn giản quá trình quản lý product Hệ thống được thiết kế nhẹ và giao diện thân thiện, giúp người dùng dễ sử dụng

Về mặt nghiệp vụ, tool đã xây dựng mô hình quản lý product, giúp người quản lý có thể đưa

ra tầm nhìn và chiến lực để phát triển sản product

Khóa luận sử dụng và kết hợp nhiều loại công nghệ mới, giúp kết nối hài hòa và đem lại lợi ích và hiệu quả tốt nhất cho ứng dụng Như Servlet, Spring framework, Postgresql, Redis, ReactJS, Redux-observable, Docker

Sau đây, nhóm xin vào nội dung mở đầu và quá trình tìm hiểu cũng như xây dựng tool quản

lý product

Trang 25

MỞ ĐẦU

Hiện nay, với sự phát triển mạnh mẽ của công nghệ thông tin, nhiều công ty công nghệ ra đời, đồng nghĩa với việc những sản phẩm công nghệ ngày càng nhiều Trong thế giới sản phẩm kỹ thuật số được nhiều người tiêu dùng lựa chọn, chi phí chuyển đổi thấp, chia sẻ xã hội, xếp hạng, đánh giá và đề xuất Vì vậy mà việc tạo ra các sản phẩm tuyệt vời trở nên quan trọng hơn bao giờ hết để thu hút sự chú ý của người dùng Điều đó đặt ra bài toán cần một công cụ hỗ trợ quản lý quá trình phát triển sản phẩm của công ty Tuy nhiên, trên thị trường hiện nay, các phần mềm quản lý phát triển sản phẩm công nghệ thông tin vẫn còn đắt

đỏ và thiếu đi một số tính năng tiện dụng Do đó, việc phát triển một công cụ mới, nhanh hơn, giao diện thân thiện hơn và dễ dàng mở rộng các tính năng hơn là một ưu tiên không thể thiếu trong bối cảnh hiện nay

Đối với mục tiêu của đề tài, về mặt sản phẩm, đề tài nhắm đến việc xây dựng một hệ thống quản lý môi trường phát triển sản phẩm, nhắm đến đối tượng là các startup nhỏ, có vốn đầu

tư mức thấp Ứng dụng sẽ trở thành trung tâm trong việc tạo ra môi trường phát triển sản phẩm của công ty một cách hiệu quả từ đó tạo ra những sản phẩm có chất lượng Ngoài ra, công cụ cũng là nơi để các thành viên trong team đóng góp ý tưởng vào việc phát triển sản phẩm Về mặt kỹ thuật mục tiêu của đề tài sẽ sử dụng các công nghệ mới , đã được thế giới công nhận và sử dụng nhiều nhưng lại còn khá mới mẻ với các lập trình viên và các công ty trong nước từ đó chứng minh được tính khả thi của công nghệ này Cũng như qua đó cố gắng giải quyết được bài toán tối ưu hóa một công nghệ mới như trên

Đối với phạm vi nghiên cứu, về mặt nghiệp vụ, đối tượng nghiên cứu và tìm hiểu là các nghiệp vụ phát triển sản phẩm, đảm bảo ứng dụng có thể hoạt động đúng quy trình, hạn chế tối đa các ngoại lệ không thể xử lý trong quá trình vận hành Phạm vi nghiên cứu, các nghiệp

vụ của hệ thống phát triển sản phẩm công nghệ thông tin sẽ chỉ bao gồm việc quản lý các product workspace và cung cấp môi trường phát triển sản phẩm công nghệ thông tin cho khách hàng Về mặt kỹ thuật đề tài sẽ tập trung nghiên cứu về việc xây dựng một ứng dụng web với Spring Framework cùng PostgreSQL, Microservice, Redis, Docker, ReactJS và Redux-observable

Trang 26

Chương 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Nhu Cầu thực tế của đề tài

- Trên thực tế, khi ngày càng có nhiều công ty chú trọng đến sự đổi mới, vai trò của Product Management đã trở thành một yếu tố then chốt trong sự thành công của các tổ chức đó

- Dù là sản phẩm hay dịch vụ nào đi nữa, nếu chúng ta lập trình các tính năng hoặc chức năng sai thì cũng dẫn đến thất bại Theo nghiên cứu từ CB Insights, 42% số lượng startups không hiểu nhu cầu thị trường

- Hầu hết các tổ chức chỉ đầu tư thời gian và tiền bạc mà không theo dõi tác động của quá trình lập trình sẽ không thể thấy được bức tranh lớn Sự cải tiến đòi hỏi tinh thần tập trung và khả năng bảo tồn các nguồn lực

- Nhằm khuyến khích việc đưa ra sản phẩm nhanh, chu trình cải thiện ngắn và liên tục, để

có thể tìm hiểu và bắt nhịp thị trường nhanh chóng thì cần có một công cụ hỗ trợ cho các Product manager thực hiện tốt công việc của mình

Trang 27

7 Quản lý product workspace

8 Hiển thị nhiệm vụ của user

9 Quản lý packages

1.3 Phương pháp nghiên cứu

Đồ án sử dụng các phương pháp nghiên cứu hướng đến thực tiễn để phát triển và hoàn thiện ứng dụng:

- Phân tích, khảo sát hiện trạng về nhu cầu thực tế của người quản lý sản phẩm công nghệ thông tin thông qua tài liệu quản lý sản phẩm và ứng dụng quản lý hiện có trên thị trường hiện nay

- Thu thập thông tin, tìm hiểu và nghiên cứu về các kỹ thuật, công nghệ cần thiết để hỗ trợ cho việc xây dựng ứng dụng đáp ứng yêu cầu được đưa ra

- Xây dựng ứng dụng dựa trên những kỹ thuật và công nghệ trên, tiến hành kiểm thử dự

án song song với quá trình xây dựng ứng dụng

- Đánh giá và so sánh kết quả đạt được với mục tiêu ban đầu đưa ra Điều chỉnh và khắc phục các sự cố

- Hoàn thiện ứng dụng, tiến hành khảo sát, thu thập ý kiến, đánh giá của người dùng 1.4 Cấu trúc

Báo cáo này được trình bày với cấu khúc khóa luận như sau:

- Chương 1: Giới thiệu tổng quan về đề tài, phạm vi nghiên cứu và phương pháp nghiên cứu

- Chương 2: Giới thiệu về các công nghệ, kỹ thuật ứng dụng trong đề tài xây dựng và phát triển công cụ quản lý sản phẩm trong công nghệ thông tin

- Chương 3: Đưa ra các đặc tả yêu cầu và phân tích hệ thống, thiết kế các kiến trúc và mô hình cần thiết cho toàn bộ hệ thống

- Chương 4: Trình bày tổng quan về công cụ quản lý sản phẩm công nghệ thông tin, giới thiệu giao diện ứng dụng và cách cài đặt sử dụng ứng dụng

- Chương 5: Tổng kết về khóa luận, nêu những việc đã đạt được qua quá trình xây dựng

và phát triển đề tài Bên cạnh đó nêu ra những thiếu sót của nhóm Từ đó đưa ra các giải quyết và hướng phát triển tiếp theo

Trang 28

Chương 2: CƠ SỞ LÝ THUYẾT

2.1 Servlet

2.1.1 Giới thiệu về Servlet

- Công nghệ Servlet được sử dụng để tạo ra ứng dụng web (nằm ở phía máy chủ và tạo

- được sử dụng phổ biến như một ngôn ngữ lập trình phía máy chủ

2.1.2 Tại sao nên sử dụng servlet

- Servlet là một công nghệ java web với ưu điểm lớn là khả năng scale mạnh mẽ, xử lý tốt một lượng lớn request từ client, rất phù hợp với dự án

- Các servlet Java đã được tạo ra và biên dịch giống như các lớp Java khác Sau khi cài đặt gói servlet và thêm chúng vào Classpath của máy tính, bạn có thể biên dịch các servlet bằng trình dịch Java của JDK hoặc bất kỳ trình biên dịch hiện tại nào khác

- Được ứng dụng để tạo server trung gian giữa database và UI, giúp xử lý các api được gửi từ UI và thao tác đến cơ sở dữ liệu phù hợp

2.2 GRPC

2.2.1 Giới thiệu về GRPC

- GRPC là một framework RPC Open source đa ngôn ngữ được Google phát triển dựa trên Protobuf và giao thức HTTP/2 Sử dụng Servlet, bạn có thể thu thập thông tin đầu

Trang 29

vào từ người dùng thông qua các trang web, hiển thị các bản ghi từ một cơ sở dữ liệu hoặc một nguồn khác.

- Trong gRPC một ứng dụng client có thể gọi trực tiếp các method trên một ứng dụng server khác máy chủ giống như là cuộc gọi ở local Điều này giúp việc phát triển các ứng dụng, dịch vụ phân tán dễ dàng hơn gRPC dựa trên ý tưởng xác định các dịch vụ, chỉ định các method có thể gọi từ xa với các tham số và kiểu dữ liệu trả về của chúng

2.3.1 Giới thiệu về redis

- Redis là một công cụ hỗ trợ server giải quyết bài toán caching, không những vậy Redis

có thể được sử dụng như một database được lưu trữ trong ram để tăng tốc độ xử lý, nhưng đó cũng là một nhược điểm của Redis, khi mà cúp điện đồng nghĩa với mất dữ liệu, mặc dù redis có hỗ trợ backup và restore data từ ổ cứng theo chu kì và điều đó là không hoàn hảo

- Redis hỗ trợ lưu data dưới dạng Key Value, value đó có thể là một chuỗi, số, danh sách, danh sách được sắp xếp hay thậm chí là một tài liệu dạng từ điển (hash)

2.3.2 Tại sao nên sử dụng redis

- Redis hỗ trợ thêm mới, cập nhật, xóa dữ liệu một cách nhanh chóng

- Lưu trữ dữ liệu dạng KEY-VALUE

Trang 30

- Dữ liệu được lưu trữ trên RAM giúp việc truy xuất dữ liệu một cách nhanh chóng Ngoài ra bạn có thể cấu hình để Redis có thể lưu trữ dữ liệu trên ổ cứng

- Bạn có thể cấu hình cho key tự động xóa trong khoảng thời gian nhất định(expire)

- Hỗ trợ nhiều loại kiểu dữ liệu khác nhau

- Hỗ trợ Queue(hàng đợi) thông qua cơ chế PUB/SUB, chúng ta có thể dùng Redis để làm hệ thống queue cho website xử lý tuần tự từng request

- Bạn có thể dùng redis để caching mọi thứ bạn muốn, từ kết quả của một câu query trong database, một profile của user, profile cửa hàng Và khi cache phải chắc chắn những gì được cache là mới nhất vì nếu data cũ thì sẽ rất ảnh hưởng đến client

- Redis hỗ trợ Transaction, hỗ trợ Pub/Sub vì vậy nó cũng được sử dụng làm hệ thống Message Broker, kinh điển là RabbitMQ sử dụng Redis là core của hệ thống

Trong hệ thống, redis được sử dụng để lưu trữ những dữ liệu tạm, được sử dụng nhiều lần, giúp giảm số lần truy xuất xuống cơ sở dữ liệu, tăng hiệu suất ứng dụng

2.4 PostgreSQL

2.4.1 Giới thiệu về PostgreSQL

Hình 0.1 Giới thiệu về cơ sở dữ liệu PostgreSQL

- PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ miễn phí và nguồn mở (RDBMS) tập trung vào khả năng mở rộng và tuân thủ các tiêu chuẩn kỹ thuật Nó được thiết kế để xử lý một loạt các khối lượng công việc lớn, từ các máy tính cá nhân đến kho

Trang 31

dữ liệu hoặc dịch vụ Web có nhiều người dùng đồng thời.

- PostgreSQL bắt đầu từ năm 1986 như một phần của dự án POSTGRES tại Đại học California tại Berkeley Đây là cơ sở dữ liệu mặc định cho macOS Server, và cũng có các bản phân phối cho Linux, FreeBSD, OpenBSD và Windows

2.4.2 Tại sao nên sử dụng PostgreSQL

- Đầy đủ tính năng và dễ dàng mở rộng:

• PostgreSQL sở hữu các bộ tính năng mạnh mẽ bao gồm kiểm soát truy cập đồng thời nhiều phiên bản, phục hồi điểm thời gian, điều khiển truy cập hạt, không gian bảng, sao chép không đồng bộ, các giao dịch lồng nhau, sao lưu trực tuyến, một kế hoạch truy vấn , tối ưu hóa Nó hỗ trợ bộ ký tự quốc tế, mã hóa nhiều byte, Unicode, và nó

dễ dàng nhận dạng địa phương trong việc sắp xếp tìm kiếm PostgreSQL có khả năng

mở rộng cao cả về số lượng dữ liệu mà nó có thể quản lý và số lượng người dùng đồng thời có thể đáp ứng

- Độ tin cậy và tuân thủ các tiêu chuẩn

• PostgreSQL là một cơ sở dữ liệu với khả năng chịu lỗi cao Cơ sở đóng góp mã nguồn

mở của nó cho phép nó xây dựng mạng hỗ trợ cộng đồng PostgreSQL tuân thủ ACID

và hỗ trợ đầy đủ các khóa ngoại, tham gia, chế độ xem, trình kích hoạt và thủ tục lưu trữ bằng nhiều ngôn ngữ khác nhau Nó bao gồm hầu hết các kiểu dữ liệu SQL, bao gồm INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL

và TIMESTAMP Nó cũng hỗ trợ lưu trữ các đối tượng nhị phân lớn, bao gồm hình ảnh, âm thanh hoặc video

2.4.3 Áp dụng PostgreSQL

- Với khả năng mở rộng tốt, PostgreSQL được sử dụng làm cơ dữ liệu chính của hệ thống, giúp lưu trữ lượng dữ liệu khổng lồ của hệ thống Giải quyết vấn đề scale database, đáp ứng yêu cầu ứng dụng

Trang 32

2.5 ReactJS

2.5.1 Giới thiệu về reactJS

- React là một thư viện UI phát triển tại Facebook để hỗ trợ việc xây dựng những thành phần (components) UI có tính tương tác cao, có trạng thái và có thể sử dụng lại được React được sử dụng tại Facebook trong production, và www.instagram.com được viết hoàn toàn trên React

- Các thành phần cơ bản của ReactJS:

thông tin cần thiết để tạo ra một DOM, nó sẽ giúp tối ưu hóa việc re-render DOM tree thật bằng cách tính toán sự thay đổi giữa object và tree thật khi dữ liệu thay đổi

trong Javascript Với các ưu điểm:

các đoạn mã này được thực hiện nhanh hơn sơ với viết trực tiếp bằng Javascript

giống như Java, C++ (statically-typed) giúp phát hiện lỗi ngay trong quá trình biên dịch, bên cạnh đó nó còn có tính năng gỡ lỗi khi biên dịch rất tốt

Javascript dễ dàng sử dụng

• Components: Khác với các framework khác, React không sử dụng template mà được xây dựng xung quanh các component Trong React, để xây dựng trang web chúng ta sử dụng những component, có thể tái sử dụng một component ở nhiều nơi với các trạng thái hoặc thuộc tính khác nhau và một component có thể chứa thành phần khác Mỗi component có một trạng thái riêng, có thể thay đổi và React

sẽ thực hiện cập nhật component dựa trên những thay đổi của trạng thái

props à trả thuộc tính mô tả những gì component con sẽ render Đặc tính của Prop

là bất biến

Trang 33

• State: Thể hiện trạng thái của ứng dụng Khi state thay đổi thì component đồng thời render lại để cập nhật UI

2.5.2 Tại sao nên sử dụng reactJS

thực sự tồn tại trên đó Điều này sẽ giúp cải thiện hiệu suất rất nhiều Reactjs cũng tính toán những thay đổi nào cần cập nhật lên DOM và chỉ thực hiện chúng Điều này giúp Reactjs tránh những thao tác cần trên DOM mà nhiều chi phí Chúng ta có thể viết một

ví dụ đơn giản về ReactJS như sau

- 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ể thêm 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

- Nó có 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 dùng 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 dùng 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ề

- 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.5.3 Áp dụng reactJS

- ReactJS là một thư viện cực được đánh giá cực kì hiệu quả khi xây dựng các ứng dụng đòi hỏi về tối ưu tốc độ cũng như hiệu quả truy xuất Vì là một thư viện nên React có

Trang 34

thể tích hợp các công cụ hỗ trợ và custom khi sử dụng một cách linh hoạt

trong những tính năng không chỉ làm cho ReactJS dễ dàng mà còn thú vị hơn Developer giờ đây có thể tạo nên một tính năng mới và có thể xem nó xuất hiện ngay trong thời gian thực, giúp Developer có thể được đưa trực tiếp các đoạn HTML vào JavaScript

- Cho phép Developer phá vỡ những cấu tạo UI phức tạp thành những component độc lập,

ý tưởng này làm cho ReactJS trở nên độc đáo Thay vì phải lo lắng về tổng thể ứng dụng web, giờ đây Developer dễ dàng chia nhỏ các cấu trúc UI/UX phức tạp thành từng component đơn giản hơn Điều này làm cho mọi thứ trở nên trực quan và dễ hình dung

so với trước đây

- Ứng dụng HTML và CSS: Tất cả mọi thứ trong ReactJS đều là JavaScript Mỗi cấu trúc HTML trong ReactJS sẽ được thể hiện qua JSX, ngoài ra xu hướng mới muốn đưa cả CSS vào trong JS

2.6 Redux-observable

2.6.1 Giới thiệu về redux-observable

- Redux-Observable cho phép chúng ta đưa các khái niệm của RxJS vào trong Redux Nó

sẽ tạo ra các Observable lắng nghe action, xào nấu trước khi dispatch một action khác

đến reducer Nó được gọi một cái tên là Epic

- Redux-observable là code cực kỳ xúc tích và nó là Declarative, hơn thế nữa nếu dùng Observable thì việc transfer giữa các nền tảng (front-end) là rất tốt

- Redux- Observable có thể sử dụng các toán tử của rxjs thao tác trên tập dữ liệu ,cho phép hủy action một cách dễ dàng , xử lý lỗi dễ dàng và triệt để kèm theo đó là khả năng thao tác dễ dàng với các tác vụ bất đồng bộ

Trang 35

2.7 Docker

2.7.1 Giới thiệu về docker

- Docker là một dự án mã nguồn mở giúp tự động triển khai các ứng dụng Linux và Windows vào trong các container ảo hóa

- Docker cung cấp một lớp trừu tượng và tự động ảo hóa dựa trên Linux Docker sử dụng những tài nguyên cô lập của Linux như cgroups, kernel, quản lý tệp để cho phép các container chạy độc lập bên trong một thực thể Linux

- Docker sẽ hạn chế được sự sai khác nhất định giữa thành viên cùng phát triển một dự án trong môi trường

- Ngoài ra, docker còn giúp đóng gói sản phẩm đã được phát triển, giúp cho quá trình triển khai sản phẩm trễ nên dễ dàng hơn

Trang 36

Chương 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3.1 Mô tả lại bài toán

Bài toán đặt ra ở đây, là xây dựng một công cụ quản lý và phát triển sản phẩm công nghệ thông tin dành cho các công ty loại vừa và nhỏ, giúp Product Manager quản lý sản phẩm một cách dễ dàng hơn, xác định được tầm nhìn của sản phẩm, tạo ra một lộ trình phát triển sản phẩm để tạo ra những sản phẩm có chất lượng mang tính cạnh tranh cao Bao gồm những tính năng chính như sau:

- Quản lý chiến lược phát triển product

- Quản lý user, phần quyền user

- Quản lý product workspace

- Tạo user story map

Trang 37

3.2 Kiến trúc hệ thống

Sơ đồ 0.1 Sơ đồ kiến trúc hệ thống

Trang 38

3.3 Mô hình phân rã chức năng

- Mô hình phân rã chức năng cho phép xác định phạm vi các chức năng được xây dựng và phát triển trong ứng dụng, cho phép người sử dụng có một cái nhìn tổng thể về các chức năng có trong ứng dụng thông qua việc biểu diễn phân rã có thứ bậc đơn giản các chức năng của ứng dụng

3

Sơ đồ 0.2 Sơ đồ phân rã chức năng

Trang 39

3.4 Mô hình usecase

3.4.1 Sơ đồ usecase

Sơ đồ 0.3 Sơ đồ use case

Trang 40

3.4.2 Danh sách các actor

Bảng 0.1 Danh sách các Actor

1 Owner - Là người có quyền cao nhất nắm quyền sở hữu

workspace, được phép truy cập vào tất cả các product trong workspace

- Có quyền thêm, xóa sửa thông tin product trong workspace

- Có quyền thêm, xóa user tham gia vào workspace

- Có quyền chỉnh sửa thông tin product, hoặc xóa product

- Có tất cả các quyền của Contributor, Reviewer, Viewer

2 Contributor - Là người được thêm vào product bởi owner

- Được phép truy cập vào product tham gia

- Được phép tham gia quản lý những chiến lược phát triển product(vision, feature, release, user story map, roadmap…)

- Tạo, chỉnh sửa to do

- Có tất cả quyền của Reviewer, Viewer

3 Reviewer - Là người được thêm vào product bởi Owner

hoặc Contributor

- Được phép truy cập vào product tham gia

- Chỉ được phép tạo todos và comment trên product

- Có tất cả quyền của Viewer

4 Viewer - Là người được thêm vào product bởi Owner

Ngày đăng: 05/09/2021, 20:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w