ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
THỰC TẬP TỐT NGHIỆP
ĐỀ TÀI: Xây dựng công cụ hỗ trợ quản lý khối lượng công việc
Công ty thực tập: GEEK UP TECHNOLOGY JSC
Lớp: SE501.M21
Sinh viên thực hiện: Hà Minh Quang – 18521293
TP. Hồ Chí Minh, ngày 15 tháng 06 năm 2022
Hà Minh Quang
Báo cáo thực tập
NHẬN XÉT CỦA KHOA
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
2
Hà Minh Quang
Báo cáo thực tập
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
7
1. Giới thiệu chung về công ty
7
2. Cơ cấu tổ chức
8
3. Tổng quan việc kinh doanh
9
4. Văn hóa công ty
12
5. Một số hình ảnh công ty
13
CHƯƠNG 2: NỘI DUNG THỰC TẬP
1.
Công nghệ, giải pháp và quy trình áp dụng
16
1.1.
Giới thiệu về Git
16
1.2.
Giới thiệu về Visual Studio Code
19
1.3.
Giới thiệu về mô hình làm việc Agile – Scrum
20
1.4.
Tìm hiểu về RESTful API
25
1.5.
Tìm hiểu về NodeJS
26
1.6.
Tìm hiểu về NestJS
27
1.7.
Tìm hiểu về ReactJS
28
1.8.
Tìm hiểu về Redux
28
1.9.
Redux Saga
30
Tìm hiểu về Ant Design
31
1.10.
2.
16
Dự án O-Geek
32
2.1.
Bối cảnh ra đời của O-Geek
32
2.2.
Nhiệm vụ của sinh viên được giao
32
2.3.
Ý nghĩa tên của Website – O-Geek
33
2.4.
Mục tiêu xây dựng O-Geek
33
CHƯƠNG 3: NHẬT KÝ THỰC TẬP
35
CHƯƠNG 4: KẾT QUẢ ĐẠT ĐƯỢC QUA ĐỢT THỰC TẬP
38
1. Kết quả thu được
38
2. Các điểm yếu của bản thân
38
3. Gợi ý cho chương trình học
39
4. Cảm nhận về công ty
39
3
Hà Minh Quang
Báo cáo thực tập
LỜI NÓI ĐẦU
Ngày nay, ngành công nghiệp phát triển ứng dụng web là một bộ phận không
thể thiếu của ngành công nghiệp phần mềm. Với tốc độ phát triển vô cùng mạnh mẽ,
ngành phát triển ứng dụng web đã và đang là nhân tố kích thích sự phát triển của công
nghệ thông tin thế giới, cả về phần cứng và phần mềm.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ.
Ngành công nghiệp phát triển web non trẻ tại Việt Nam đã và đang phát triển mạnh
mẽ, để hòa nhập với những công ty hàng đầu về xây dựng nền tảng web trên thế giới.
Bên cạnh sự phát triển của web thì những ngành nghề được tiếp cận người dùng một
cách nhanh chóng như những gì ta có thể thấy là mạng xã hội hay những website bán
hàng trực tuyến cũng đang rất thịnh hành trên cả thế giới lẫn Việt Nam.
Sau gần bốn năm học tập trên trường, với mong muốn trau dồi kinh nghiệm
thực tế, cũng như tìm hiểu và bổ sung kiến thức trong một môi trường làm việc
chuyên nghiệp, em dự định sẽ thực tập trong học kỳ. Vì vậy, em quyết định chọn
Công ty Cổ phần Công nghệ GEEK Up - một môi trường lý tưởng, hiện đại và chuyên
nghiệp - đây là nơi sẽ giúp em thực hiện dự định này.
4
Hà Minh Quang
Báo cáo thực tập
LỜI CẢM ƠN
Em xin chân thành cảm ơn ban giám hiệu và quý Thầy Cô trường Đại học
Công nghệ Thông tin đã cung cấp và bồi dưỡng cho em những kiến thức cơ bản trong
suốt 4 năm ngồi trên giảng đường đại học, để từ đó em có nền tảng áp dụng vào đợt
thực tập một cách hiệu quả nhất có thể.
Em xin gửi lời cảm ơn Quý Công ty Cổ phần Công nghệ GEEK Up đã tạo điều
kiện cho em thực tập tại công ty cũng như cung cấp, bổ sung cho em những kiến thức
mà em còn thiếu sót. Quý công ty đã hỗ trợ em rất nhiều trong suốt thời gian thực tập
vừa qua, dạy em những kỹ năng cần thiết, truyền đạt cho em những kinh nghiệm mà
các anh chị đã trải qua trong quá trình làm việc, trao đổi với khách hàng, tác phong và
tinh thần trách nhiệm trước công việc được giao, những suy nghĩ tích cực. Các anh chị
cũng đã tạo cho em nhiều điều kiện để ứng dụng những kiến thức đã học vào thực tế
để xây dựng những dự án thực tiễn đi từ lúc ban đầu, nâng cao trình độ, cũng như tốc
độ lập trình và trí thức thêm một bậc. Em xin chân thành cảm ơn.
Vì kiến thức bản thân còn hạn chế cũng như là lần đầu tiên được va chạm và
tiếp xúc với thực tế, áp dụng lý thuyết vào công việc nên bản thân còn bỡ ngỡ và lúng
túng, không tránh khỏi những thiếu sót, mong Quý Thầy Cô có thể đóng góp ý kiến để
em có thể hoàn thiện hơn.
Em xin chân thành cảm ơn!
Hà Minh Quang
TP. Hồ Chí Minh, ngày 15 tháng 06 năm 2022
5
Hà Minh Quang
Báo cáo thực tập
DANH MỤC CÁC CỤM TỪ VIẾT TẮT
PP
API
: People Operation
: Application Programming Interface
6
Hà Minh Quang
Báo cáo thực tập
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
I.
Giới thiệu chung về công ty
Tên đơn vị: Công ty Cổ phần Công nghệ GEEK Up (GEEK UP TECHNOLOGY
JSC).
Lĩnh vực hoạt động: Xuất bản phần mềm.
Địa chỉ: Văn phòng: 244/31 Huỳnh Văn Bánh, Phường 11, Quận Phú Nhuận, TP. Hồ
Chí Minh.
Chi nhánh: 27B / 9 Nguyễn Đình Chiểu, Phường Đa Kao, Quận 1, TP. Hồ Chí Minh.
Trang web: www.geekup.vn
Email:
[email protected]
Điện thoại: (+84) 28 6262 4400
Thời gian làm việc: Thứ 2 đến thứ 6: 08h30 - 17h30
Slogan: “Insightful development”
Sứ mệnh: Xây dựng sản phẩm phần mềm mang lại nhiều giá trị cho người dùng
Giá trị cốt lõi:
● Honesty: sống hết mình với đam mê, là chính mình và phấn đấu hướng tới
những giá trị chung.
● Geeks Get it done: luôn cố gắng hoàn thành công việc đạt kết quả mong đợi.
● High Standard: luôn thử thách bản thân để nâng cao trình độ chuyên môn.
● Stay Hungry Stay Foolish: không dừng lại với khả năng hiện tại, luôn tiếp tục
trau dồi học hỏi.
7
Hà Minh Quang
Báo cáo thực tập
Hình 1.1: Logo Công ty Cổ phần Công nghệ Geek Up
GEEK Up là công ty tư vấn, xây dựng và cung cấp sản phẩm công nghệ phần
mềm tối ưu nhất cho cộng đồng, doanh nghiệp và cá nhân: đối tác của công ty bao
quát từ các công ty khởi nghiệp cho đến các doanh nghiệp lớn. Mục tiêu của công ty
là tạo ra những giá trị tích cực cũng như những sản phẩm đẳng cấp phù hợp với các
tiêu chuẩn quốc tế. GEEK Up không ngừng gia tăng giá trị cộng đồng bằng khả năng
cung cấp cho khách hàng những sản phẩm và dịch vụ chất lượng cao nhất trong các
lĩnh vực phát triển phần mềm. Công ty sẽ phát triển và cung cấp phần mềm đúng thời
gian, trong phạm vi ngân sách và chất lượng cao nhất đem đến cho khách hàng sự hài
lòng tuyệt đối, lợi nhuận tối đa, sự phát triển mạnh mẽ của thương hiệu sản phẩm.
Nắm bắt nhu cầu và thường xuyên cập nhật xu hướng trong ngành, mỗi một
thành viên của công ty luôn không ngừng nâng cao khả năng của bản thân để mang
đến giá trị tích cực cho khách hàng.
II.
Cơ cấu tổ chức
GEEK Up được tổ chức theo mô hình phẳng. Một thành viên sẽ đóng các vai
trò linh hoạt trong các nhóm tổ chức khác nhau:
●
Squad: các thành viên trong cùng một nhóm cùng nhau thực hiện các
công việc cần thiết để đạt được mục tiêu (goal) chung của dự án.
●
Chapter: các thành viên trong cùng một nhóm có chung chuyên môn
(expertise), mục đích là hỗ trợ nhau về mặt chuyên môn, cùng nhau trưởng thành
về mặt chuyên môn.
8
Hà Minh Quang
●
Báo cáo thực tập
Guild: các thành viên trong cùng một nhóm có chung một sở thích
(interest), mối quan tâm nào đó, mục đích là cùng tham gia các hoạt động thuộc
về sở thích, các mối quan tâm ngoài công việc.
Hình 1.2: GEEK Up Organization Chart
III. Tổng quan việc kinh doanh
GEEK Up là công ty phần mềm được thành lập từ năm 2014, với đội ngũ hơn
100 thành viên của GEEK Up đã phát triển hơn 300 dự án phần mềm, tạo ra hơn 480
sản phẩm phần mềm mang lại giá trị cao về kinh doanh cho những khách hàng lớn
trên thế giới như SMRT (Singapore), Nikkei (Nhật), D2O (Mỹ). Riêng ở Việt Nam,
GEEK Up là đối tác tin cậy số 1 trong các dự án chuyển đổi số (digital
transformation) cho các doanh nghiệp hàng đầu như: ACB, TPBank, Heineken, FPT,
Viettel, ELSA….
Một số sản phẩm GEEK Up đã xây dựng và được ứng dụng trên thị trường Việt
Nam hiện tại:
9
Hà Minh Quang
Báo cáo thực tập
1. The Coffee House - Chuỗi cà phê tăng trưởng nhanh số 1 tại Việt Nam
Hình 1.3. UI Design - The Coffee House - Loyalty Application
2. Wall Street English application - Simple & fun booking app for English
class
Visit site: http://wallstreetenglish.edu.vn/ung-dung-dien-thoai.html
10
Hà Minh Quang
Báo cáo thực tập
Hình 1.4. UI Design - Wall Street English - Class booking application
3. Wumbo – A high-level project management solution
Visit site: https://www.wewumbo.io/feature.html
Hình 1.5. UI design – Wumbo – A project management solution
11
Hà Minh Quang
Báo cáo thực tập
Bên cạnh việc phát triển sản phẩm phần mềm, GEEK Up đã đầu tư và kinh
doanh GEEK Hub - Cafeteria & Workspace, một không gian học tập, làm việc và trao
đổi kiến thức.
IV. Văn hóa công ty
Văn hóa ở GEEK Up được xây dựng theo các giá trị cốt lõi:
●
“Awesome Comrade”: Luôn luôn ủng hộ và sẵn sàng nỗ lực hơn nữa để giúp
nhóm và đồng đội của mình tiến về phía trước.
●
“Commitment”: Giữ lời hứa, sẵn sàng thực hiện lời hứa bằng mọi giá.
●
“Contribution”: Đóng góp phát triển nhóm ngay cả khi không thuộc trách
nhiệm của bạn.
●
“Ownership”: Suy nghĩ, quan tâm và hành động, vì quyền lợi nhóm cũng là
quyền lợi của cá nhân.
Thời gian làm việc từ thứ 2 đến thứ 6: 08h30 – 17h30.
Thời gian nghỉ trưa từ 11:30 PM đến 1:30 PM, tất cả nhân viên có thể ăn trưa
và nghỉ ngơi trước khi bắt đầu công việc vào buổi chiều.
Nhân viên được khuyến khích sử dụng tiếng Anh khi giao tiếp. Nhân viên công
ty sau mỗi giờ làm việc đều phải ghi rõ thời gian thực hiện các "task" của dự án, để
đảm bảo rằng dự án đang được thực hiện. Đồ ăn nhẹ, trà, cà phê, trái cây miễn phí cho
tất cả nhân viên vào thời gian nghỉ ngơi.
Vào cuối ngày làm việc thứ 3 và thứ 5, công ty tổ chức Workshop về những
kinh nghiệm trong công việc cũng như trong cuộc sống, giúp trau dồi những kiến thức
chuyên môn cũng như những kỹ năng mềm cho nhân viên công ty.
Thứ 6 sẽ diễn ra "Friday Meetup" là nơi nhân viên công ty bày tỏ lòng cảm ơn
với những đồng đội của mình trong tuần vừa qua. Kết thúc là một bữa tiệc nhẹ cho
cuối tuần và không gian tự do để mọi người chia sẻ với nhau.
12
Hà Minh Quang
V.
Báo cáo thực tập
Một số hình ảnh công ty
Hình 1.6: Tầng trệt của công ty GEEK Up.
Hình 1.7: Buổi Thursday Workshop về kỹ năng mềm.
13
Hà Minh Quang
Báo cáo thực tập
Hình 1.8: Buổi Friday Meetup - Nơi bày tỏ lòng biết ơn với những đồng đội trong suốt
tuần vừa qua.
Hình 1.9: Phòng làm việc của thực tập sinh.
14
Hà Minh Quang
Báo cáo thực tập
Hình 1.10: Cuộc họp của bộ phận Design.
15
Hà Minh Quang
Báo cáo thực tập
CHƯƠNG 2: NỘI DUNG THỰC TẬP
I.
Công nghệ, giải pháp và quy trình áp dụng
1. Giới thiệu về Git
Hình 2.1: Mô hình công cụ Git.
Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed
Version Control System – DVCS) là một trong những hệ thống quản lý phiên bản
phân tán phổ biến nhất hiện nay. DVCS nghĩa là hệ thống giúp mỗi máy tính có thể
lưu trữ nhiều phiên bản khác nhau của một mã nguồn được nhân bản (clone) từ một
kho chứa mã nguồn (repository), mỗi thay đổi vào mã nguồn trên máy tính sẽ có thể
ủy thác (commit) rồi đưa lên máy chủ nơi đặt kho chứa chính. Và một máy tính khác
(nếu họ có quyền truy cập) cũng có thể clone lại mã nguồn từ kho chứa hoặc clone lại
một tập hợp các thay đổi mới nhất trên máy tính kia. Trong Git, thư mục làm việc trên
máy tính gọi là Working Tree.
16
Hà Minh Quang
Báo cáo thực tập
Hình 2.2: Sơ đồ liên hệ giữa các máy tính.
Ngoài ra, có một cách hiểu khác về Git đơn giản hơn đó là nó sẽ giúp bạn lưu
lại các phiên bản của những lần thay đổi vào mã nguồn và có thể dễ dàng khôi phục
lại dễ dàng mà không cần copy lại mã nguồn rồi cất vào đâu đó. Và một người khác
có thể xem các thay đổi của bạn ở từng phiên bản, họ cũng có thể đối chiếu các thay
đổi của bạn rồi gộp phiên bản của bạn vào phiên bản của họ. Cuối cùng là tất cả có thể
đưa các thay đổi vào mã nguồn của mình lên một kho chứa mã nguồn.
Cơ chế lưu trữ phiên bản của Git là nó sẽ tạo ra một “ảnh chụp” (snapshot) trên
mỗi tập tin và thư mục sau khi commit, từ đó nó có thể cho phép bạn tái sử dụng lại
một ảnh chụp nào đó mà bạn có thể hiểu đó là một phiên bản. Đây cũng chính là lợi
thế của Git so với các DVCS khác khi nó không “lưu cứng” dữ liệu mà sẽ lưu với
dạng snapshot.
17
Hà Minh Quang
Báo cáo thực tập
Hình 2.3: Sơ đồ cơ cấu của Git.
-
Master: là nhánh chính, chạy trên môi trường production.
-
Dev: là nhánh replica cho nhánh master kết hợp với các nhánh feature đang
được phát triển.
-
Feature: được tách từ nhánh dev, chức năng sau khi được phát triển sẽ được
merge vào dev trước khi merge vào master.
18
Hà Minh Quang
Báo cáo thực tập
Hình 2.4: Git branching.
2. Giới thiệu về Visual Studio Code
Hình 2.5: Chương trình Visual Studio Code
Visual Studio Code là sản phẩm của Microsoft, ra mắt vào tháng 4 năm 2015
ở hội nghị Build. Đặc điểm nổi bật là đơn giản, gọn nhẹ, dễ dàng cài đặt. Visual
Studio Code có thể cài đặt được trên cả Windows, Linux và Mac OS và hỗ trợ nhiều
ngôn ngữ khác nhau.
19
Hà Minh Quang
Báo cáo thực tập
Hình ảnh giao diện ban đầu của VSCode như sau:
Hình 2.6: Giao diện ban đầu của Visual Studio Code.
Khi nhìn sang thanh sidebar, chúng ta thấy 4 biểu tượng, đầu tiên là hai tờ giấy
xếp chồng lên nhau, đây là cây thư mục chứa những file mà nhà phát triển đang làm
việc. Hình chiếc kính lúp hỗ trợ chức năng tìm kiếm. Một điểm đặc biệt là Visual
Studio Code được tính hợp luôn Git, rất tiện cho việc quản lý code.
Biểu tượng thứ 4 là diệt con bọ, chính là chức năng hỗ trợ fix bug. Hình vuông
cuối cùng cho phép nhà phát triển cài đặt thêm extension mà Microsoft và cộng đồng
nhà phát triển trên thế giới viết thêm nhằm hỗ trợ quá trình code thuận tiện hơn.
3. Giới thiệu về mô hình làm việc Agile – Scrum
● Tại sao cần Agile?
Sự khác nhau giữa phương pháp làm việc truyền thống-Waterfall và Agile có thể
tổng kết trong 2 từ: cứng nhắc và linh hoạt. Trong khi Waterfall là 1 process khá cứng
nhắc và nguyên tắc, thì Agile lại rất linh hoạt và không ngừng thay đổi sao cho phù
hợp với thời đại và ý kiến của khách hàng . Chi tiết hơn về sự khác nhau như sau:
20