TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
XÂY DỰNG PRODUCT PULSELY
Công ty thực tập:
GEEK UP TECHNOLOGY JSC
Người phụ trách:
Nguyễn Minh Trung
Thực tập sinh:
Trương Hữu Minh Đức
MSSV:
18520626
TP Hồ Chí Minh, tháng 12 năm 2021
LỜI MỞ ĐẦU
Vào thế kỷ 21, Cuộc Cách mạng Công nghiệp 4.0 Internet nói chung và ngành cơng
nghiệp Phát triển Ứng dụng di động là một phần không thể thiếu của thế giới. Với tốc độ phát
triển vô cùng mạnh mẽ, ngành Phát triển Ứng dụng di động đã và đang nắm vai trò chủ chốt
trong nền kinh tế thế giới, và tiềm năng của ngành vẫn cịn có thể đi xa hơn trong tương lai khi
mọi người có thể thực hiện mọi thứ với chiếc điện thoại di động thông minh.
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 Ứng dụng di động của Việt Nam đang phát triển rất mạnh mẽ, đủ sức hòa
nhập, hợp tác với những công ty hàng đầu về xây dựng ứng dụng điện thoại trên thế giới.
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học Công
nghệ Thông tin chúng em đã được trang bị các kiến thức về chuyên môn và kỹ năng mềm. Với
mong muốn bổ sung thêm kinh nghiệm và các kỹ năng làm việc trong một môi trường chuyên
nghiệp, em lên kế hoạch cho một khóa thực tập trong học kỳ này. Sau khi tìm hiểu về lịch sử
phát triển và văn hóa thì 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, chuyên nghiệp - là nơi sẽ giúp em thực hiện hóa dự định này.
LỜI CẢM ƠN
Em xin chân thành cảm ơn nhà trường và quý thầy cô trường Đại học Công Nghệ Thông
Tin đã tận tâm hướng dẫn, giảng dạy cho em những kiến thức chuyên môn cũng như kỹ năng
mềm trong hơn 3 năm ngồi trên giảng đường đại học, từ đó đã xây dựng cho em nền tảng vững
chắc tạo giúp em thực hiện hóa ước mơ.
Trân trọng gửi lời cảm ơn Công ty Cổ phần Công nghệ Geek Up đã tạo điều kiện cho em
có cơ hội được thực tập tại công ty, cho em trải nghiệm một môi trường làm việc cực kỳ chuyên
nghiệp và hiệu quả. Cùng với các người đồng đội trong kỳ thực tập, em mong rằng chúng em đã
để lại một dấu ấn, những kỷ niệm đẹp trong kỳ thực tập vừa qua.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các anh chị hướng
dẫn, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được
một Trusted Product. Chân thành cảm ơn các anh chị trong nhóm hướng dẫn đã bỏ ra nhiều thời
gian, cơng sức để hướng dẫn chúng em hồn thành đợt thực tập này.
Bên cạnh kinh nghiệm quý báu về kỹ năng chuyên môn về Phát triển ứng dụng di động,
cịn có những kỹ năng về làm việc nhóm, quy trình làm việc chuyên nghiệp. Các anh chị hướng
dẫn đã dạy em những kỹ thuật cần thiết trong giao tiếp và truyền đạt cho em những kinh nghiệm
của anh chị trong quá trình làm việc, trao đổi với khách hàng và tinh thần trách nhiệm với công
việc và với đồng đội. Các anh chị đã tạo cho em nhiều cơ hội để ứng dụng những kiến thức đó
ngay vào thực tế để xây dự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!
Trương Hữu Minh Đức
TP.Hồ Chí Minh, tháng 12 năm 2021
NHẬN XÉT CỦA KHOA
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
MỤC LỤC
NỘI DUNG ................................................................................................................................................ 1
Chương 1: Giới thiệu công ty thực tập ....................................................................................................... 1
1. Giới thiệu công ty GeekUp................................................................................................................. 1
2. Sản phẩm của công ty ......................................................................................................................... 1
Chương 2: Nội dung thực tập ..................................................................................................................... 4
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty ...................................................................... 4
2. Nghiên cứu kỹ thuật ........................................................................................................................... 4
2.1. Git và các quy tắc sử dụng .......................................................................................................... 4
2.2. Tìm hiểu Docker, CI/CD ............................................................................................................. 6
2.3. Tìm hiểu về TypeScript và NestJs Framework ........................................................................... 6
3. Thực hiện project ................................................................................................................................ 7
4. Lịch làm việc ...................................................................................................................................... 7
Chương 3: Chi tiết về project ................................................................................................................... 11
1. Giới thiệu về Pulsely ........................................................................................................................ 11
2. Vì sao cần có Pulsely? ...................................................................................................................... 11
3. Cấu trúc của Pulsely ......................................................................................................................... 12
4. Mục tiêu của Pulsely ........................................................................................................................ 12
5. Các chức năng chính của Pulsely ..................................................................................................... 12
5.1. Chức năng tạo chủ đề (Tạo Pulse) ............................................................................................. 12
5.2. Chức năng tạo các câu hỏi ......................................................................................................... 13
5.3. Chức năng hiển thị chủ đề (Hiển thị Pulse) ............................................................................... 13
5.4. Chức năng trả lời câu hỏi .......................................................................................................... 14
5.5. Chức năng tổng hợp insight....................................................................................................... 15
5.6. Chức năng Live insight ............................................................................................................. 16
TỔNG KẾT .............................................................................................................................................. 17
1. Thành quả ............................................................................................................................................. 17
2. Cần cải thiện trong thời gian tới ........................................................................................................... 17
3. Cảm nhận của bản thân về công ty ....................................................................................................... 17
TÀI LIỆU THAM KHẢO ........................................................................................................................ 19
NỘI DUNG
Chương 1: Giới thiệu công ty thực tập
1. Giới thiệu cơng ty GeekUp
• 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ỉ:
o Trụ sở chính: 244/31 Huỳnh Văn Bánh, Phường 11, Quận Phú Nhuận, Thành phố
Hồ Chí Minh
o Chi nhánh: 27B / 9 Nguyễn Đình Chiểu, Phường Đa Kao, Quận 1, Thành phố Hồ
Chí Minh
• Trang web: www.geekup.vn
• Email:
• Đ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 các 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
o 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.
o Geeks Get it done: Ln cố gắng hồn thành cơng việc đạt kết quả mong đợi.
o High standard: Luôn thử thách bản thân để nâng cao trình độ chun mơn.
o 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.
2. Sản phẩm của công ty
TP BANK - Ngân hàng số hàng đầu Việt Nam
1
Nâng cao trải nghiệm người dùng cho Ngân hàng số tiên phong
Thiết kế giao diện, trải nghiệm người dùng cho hệ sinh thái các ứng dụng của TPBank,
ứng dụng TPBank đã được xếp hạng Top 1 lĩnh vực tài chính Việt Nam trên App Store/ Play
Store năm 2020.thương mại như Real Football, Asphalt và Cerebral Challenge.
The Coffee House - Chuỗi cà phê tăng trưởng nhanh số 1 tại Việt Nam
2
Nền tảng Loyalty platform đầu tiên cho chuỗi cafe hàng đầu Việt Nam
Hiện thực hóa chương trình khách hàng thân thiết của The Coffee House từ phiên bản
MVP kiểm thử đầu tiên, giúp họ chuyển đổi hoạt động kinh doanh từ offline sang online.
3
Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Xây dựng Product Pulsely” và mục tiêu là xây dựng server,
client trên nền tảng Web và Mobile (Android), đồng thời rèn luyện những kỹ năng mềm như
làm việc nhóm, thuyết trình, giao tiếp. Tại cơng ty, sinh viên có cơ hội được học tập, khám phá
và làm việc trong một mơi trường phát triển phần mềm chun nghiệp.
1. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian: 3 ngày
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về cơng ty, q trình thành lập và phát triển, quy
trình làm việc để deliver một sản phẩm, cách thức tổ chức của công ty, tinh thần của mọi người
trong cơng ty Geek Up, các vị trí hiện tại trong công ty, cách mọi người trong công ty làm việc
với nhau,...
Ngồi ra, thực tập sinh cịn được giới thiệu về cách thức làm việc trong công ty như thời
gian đi làm, các quy định cần phải tuân thủ, các bước cần thực hiện trước khi bắt đầu vào làm,
trong quá trình làm việc và khi kết thúc một ngày làm việc.
Tìm hiểu về các cơng cụ sẽ được sử dụng trong quá trình làm việc. Cũng trong thời gian
này, các anh chị hướng dẫn thực tập sinh tìm hiểu các cơng cụ phục vụ cho từng mục đích cụ
thể khi làm việc. Hầu hết các cơng cụ đều là sản phẩm lưu hành nội bộ công ty, ngồi ra cịn có
các ứng dụng, phần mềm hỗ trợ như Google Meet – phục vụ cho mục đích gặp và trao đổi trực
tiếp trong bối cảnh WFH, Zoom – phục vụ cho nhu cầu tham gia các buổi Workshop, Seminar
hay Meeting diễn ra thường xuyên và đều đặn trong công ty.
Kết quả: Hiểu thêm về công ty Geek Up, quá trình thành lập và phát triển cho đến hiện
tại. Cách vận hành trong công ty, cách phối hợp với nhau giữa các thành viên. Có thêm các kỹ
năng về việc quản lý dự án, tinh thần trách nhiệm, kỹ năng giao tiếp qua các công cụ do công ty
cung cấp.
2. Nghiên cứu kỹ thuật
2.1. Git và các quy tắc sử dụng
Thời gian: 0.5 ngày song song với thực hành trong suốt quá trình thực tập.
Nội dung: Được training về các kỹ thuật liên quan đến việc sử dụng Git một cách hiệu
quả.
4
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.
Ngồ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.
Cấu trúc branch:
• Main (main): là nhánh chính, chạy trên production.
• Development (dev): là nhánh replica cho nhánh main cộng với các nhánh feature
đang được phát triển
• Feature (feature/<feature-name>): đượ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 main
• Nhánh sửa lỗi (hotfix/<issue-name>): được tách từ nhánh dev, là nhánh dùng để
sửa các lỗi nếu có.
Thực hiện:
• Tham gia đầy đủ các buổi training của cơng ty.
• Áp dụng tốt vào q trình deliver dự án.
Kết quả:
• Hiểu và thành thạo kỹ năng sử dụng Git.
5
2.2. Tìm hiểu Docker, CI/CD
Thời gian: 0.5 ngày song song với thực hành trong suốt quá trình thực tập
Nội dung: Được training về các kỹ thuật liên quan đến việc sử dụng Docker để áp dụng
vào dự án một cách hiệu quả.
Thực hiện:
• Tham gia đầy đủ các buổi training của cơng ty.
• Tiến hành xây dựng một quy trình CI/CD đơn giản áp dụng cho dự án.
Kết quả:
• Có được những kiến thức quan trọng trong việc xây dựng quy trình CI/CD cho hệ
thống nói riêng và ngành DevOps nói chung.
• Hiểu và nắm được xu hướng containerization đang phát triển rất mạnh mẽ hiện
nay.
2.3. Tìm hiểu về TypeScript và NestJs Framework
Thời gian: 2 ngày song song với thực hành trong suốt quá trình thực tập
Nội dung: Được training các kiến thức cơ bản về TypeScript, NestJS Framework và kiến
trúc hệ thống trong việc xây dựng một ứng dụng phía server.
TypeScript là một dự án mã nguồn mở được phát triển bởi Microsoft, nó có thể được coi
là một phiên bản nâng cao của Javascript bởi việc bổ sung tùy chọn kiểu tĩnh và lớp hướng đối
tượng mà điều này khơng có ở Javascript.
NestJS là một framework Node.JS cho phép xây dựng ứng dụng phía server. Nest mở
rộng các framework Node.js như Express hay Fastify để bổ sung thêm nhiều module hay thư
viện hỗ trợ việc xử lý tác vụ. Đây là một framework mã nguồn mở, sử dụng TypeScript và rất
linh hoạt để xây dựng các hệ thống backend.
Hexagonal Architecture (tên gọi khác là ports and adapters architecture), là một mẫu kiến
trúc được dùng trong thiết kế phần mềm. Nó hướng tới việc xây dựng ứng dụng xoay quanh
business/application logic mà không ảnh hưởng hoặc phụ thuộc bởi bất kì thành phần bên ngồi,
mà chỉ giao tiếp với chúng qua ports/adapters.
Thực hiện:
• Tham gia đầy đủ các buổi trainning.
• Xây dựng ứng dụng bằng NestJs sử dụng TypeScript áp dụng kiến trúc Hexagon
6
• Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.
Kết quả :
• Nâng cao kỹ năng lập trình với ngơn ngữ TypeScript.
• Nắm và áp dụng được kiến trúc Hexagon vào dự án.
• Ngồi ra cịn được biết thêm một số quy tắc trong việc viết code sao cho đúng
• chuẩn, dễ đọc, dễ hiểu
3. Thực hiện project
Sau một tuần được training và thực hành, thực tập sinh đã nắm được những kiến thực cơ
bản về TypeScript, NestJs, Docker, Container, Git, và Agile. Trong thời gian còn lại, thực tập
sinh đã được hướng dẫn áp dụng những kiến thức đã học để cùng nhau deliver dự án.
Chi tiết dự án sẽ được nói ở phần sau.
4. Lịch làm việc
Tuần
1
2-3
(Iteration
1)
Cơng việc
- Tìm hiểu về cơng ty, cách tổ chức của công ty.
- Làm quen với cách làm việc theo mô hình Agile
của cơng ty.
- Làm quen với các cơng cụ làm việc trong công
ty (Phần mềm riêng chuyên dụng trao đổi thông
tin của công ty, Cổng lưu trữ các document của
squad, email của công ty,...).
- Cài đặt môi trường để chuẩn bị cho dự án.
- Học cách trao đổi, làm việc qua email.
- Tham gia các buổi gặp gỡ ngoài giờ cùng cơng
ty: Tuesday Workshop, Thursday Workshop,
Friday Meetup, MiniWorkshop
- Tìm hiểu về TypeScript, NestJs Framework
- Tìm hiểu Hexagon Architecture
- Tìm hiểu RESTful API.
- Tìm hiểu về Git và các tool liên quan.
- Cùng các thực tập sinh lập ra quy ước
chung khi sử dụng Git khi collab với nhau
- Phân tích và lên kế hoạch triển khai Pulsely
cùng các thực tập sinh. Chia nhỏ dự án Pulsely ra
thành các Iteration nhỏ và các backlog nhỏ trong
từng Iteration
- Thống nhất cách làm việc của squad trong quá
trình deliver Pulsely.
7
Người hướng dẫn
Chị Uyên Phan
Anh Nguyễn Minh
Trung
Anh Đặng Vũ Minh
Hiếu
Anh Đào Vũ Quốc
Trung
Chị Hoài Thương
Chị Thảo Đoàn
Anh Chris Nguyễn
Anh Nguyễn Minh
Trung
Anh Đặng Vũ Minh
Hiếu
Anh Đào Vũ Quốc
Trung
- Tham gia Daily Scrum mỗi ngày để trình bày
tiến độ công việc cho đồng đội, những dự định
tiếp theo trong ngày và những khó khăn gặp phải
Khi integrate với Mobile và Web để hoàn thành
các
chức năng cơ bản đầu tiên của dự án
- Cuối Iteration 1, dự án đã có thể sử dụng trên
main flow. Ở client Mobile đã có thể đăng nhập
bằng tài khoản, tham gia và trả lời các câu hỏi,
hoàn thành Pulse như mainflow
- Cùng squad thực hiện Iteration Review và
Iteration Retrospective để cùng nhìn lại trong 2
tuần đầu tiên thực hiện dự án, đã làm ra được sản
phẩm như thế nào, và team đã collab với nhau tốt
hay chưa
- Tham gia các buổi gặp gỡ ngồi giờ cùng cơng
ty: Tuesday Workshop, Thursday Workshop,
Friday Meetup, MiniWorkshop
4-5
(Iteration
2)
6-7
(Iteration
3)
- Tiếp tục phân tích và lên kế hoạch triển khai
Pulsely cùng các thực tập sinh trong giai đoạn
tiếp theo của dự án
- Tham gia Daily Scrum mỗi ngày để trình bày
tiến độ công việc cho đồng đội, những dự định
tiếp theo trong ngày và những khó khăn gặp phải
- Integrate với Mobile và Front-end để triển khai
các chức năng tiếp theo
- Trình bày sản phẩm cùng dự án, các kế hoạch
cho Project Owner
- Cuối Iteration 2, dự án đã hoàn thành mainflow
và fix tất cả các bug còn tồn đọng ở Iteration 1.
- Cùng squad thực hiện Iteration Review và
Iteration Retrospective để cùng nhìn lại sau 2 tuần
đầu tiên thì 2 tuần tiếp theo này đã thực hiện dự
án, đã làm ra được sản phẩm như thế nào, và team
đã collab với nhau tốt hay chưa, rút thêm kinh
nghiệm cùng nhau
- Tham gia các buổi gặp gỡ ngoài giờ cùng cơng
ty: Tuesday Workshop, Thursday Workshop,
Friday Meetup, MiniWorkshop
- Tìm hiểu về các chức năng nâng cao như
Notification, Login with Google, DeepLinking
- Tiếp tục phân tích và lên kế hoạch triển khai
Pulsely cùng các thực tập sinh trong giai đoạn
tiếp theo của dự án
8
Chị Uyên Phan
Anh Nguyễn Minh
Trung
Anh Đặng Vũ Minh
Hiếu
Anh Đào Vũ Quốc
Trung
Chị Hoài Thương
Chị Song Vân
Chị Uyên Phan
Anh Nguyễn Minh
Trung
Anh Đặng Vũ Minh
Hiếu
8-9
(Iteration
4)
10
- Tham gia Daily Scrum mỗi ngày để trình bày
tiến độ công việc cho đồng đội, những dự định
tiếp theo trong ngày và những khó khăn gặp phải
- Integrate với Server để triển khai các chức năng
tiếp theo
- Cuối Iteration 3, dự án đã hoàn thành các chức
năng quan trọng khác theo như kế hoạch
- Cùng squad thực hiện Iteration Review và
Iteration Retrospective để cùng nhìn lại sau 4 tuần
thì 2 tuần tiếp theo này đã thực hiện dự án, đã làm
ra được sản phẩm như thế nào, và team đã collab
với nhau tốt hay chưa, rút thêm kinh nghiệm cùng
nhau
- Tham gia các buổi gặp gỡ ngoài giờ cùng công
ty: Tuesday Workshop, Thursday Workshop,
Friday Meetup, MiniWorkshop
- Giai đoạn nước rút của dự án. Tìm kiếm và sửa
các lỗi cịn tồn đọng ở các Iteration trước. Triển
khai các kế hoạch improve product
- Tiếp tục phân tích và lên kế hoạch triển khai
Pulsely cùng các thực tập sinh trong giai đoạn
cuối của dự án
- Tham gia Daily Scrum mỗi ngày để trình bày
tiến độ cơng việc cho đồng đội, những dự định
tiếp theo trong ngày và những khó khăn gặp phải
- Integrate với Server để triển khai các chức năng
cuối cùng
- Cuối Iteration 4, dự án đã hoàn thành các chức
năng quan trọng khác theo như kế hoạch
- Cùng squad thực hiện Iteration Review và
teration Retrospective để cùng nhìn lại sau 6 tuần
thì 2 tuần cuối cùng này đã thực hiện dự án, đã
làm ra được sản phẩm như thế nào, và team đã
collab với nhau tốt hay chưa, rút thêm kinh
nghiệm cùng nhau
- Tham gia các buổi gặp gỡ ngoài giờ cùng công
ty: Tuesday Workshop, Thursday Workshop,
Friday Meetup, MiniWorkshop
Giai đoạn cuối:
- Trình bày sản phẩm cùng dự án cho Project
Owner
- Trình bày sản phẩm cho cả cơng ty GeekUp
xem trong 10 tuần vừa qua, các thực tập sinh đã
làm được những gì
- Thực hiện các bước cuối cùng để đóng project.
9
Anh Đào Vũ Quốc
Trung
Chị Hoài Thương
Chị Song Vân
Chị Uyên Phan
Anh Nguyễn Minh
Trung
Anh Đặng Vũ Minh
Hiếu
Anh Đào Vũ Quốc
Trung
Chị Hoài Thương
Chị Song Vân
Chị Uyên Phan
Anh Nguyễn Minh
Trung
Anh Đặng Vũ Minh
Hiếu
Anh Đào Vũ Quốc
Trung
Bàn giao project
- Tạm biệt mọi người. Gửi lời cảm ơn và tri ân
đến tồn thể cơng ty Geek Up
- Chuẩn bị tài liệu báo cáo thực tập. Củng cố kiến
thức qua đợt thực tập. Rút kinh nghiệm và tự
đánh giá bản thân.
10
Chị Hoài Thương
Chị Song Vân
Chương 3: Chi tiết về project
1. Giới thiệu về Pulsely
Pulsely là một Web kết hợp với App mobile để có thể tạo và trả lời các câu hỏi nhằm
mục đích thu thập insights. Web sử dụng cho Actor là Collector – Người có nhu cầu thu thập
insights, App mobile sử dụng cho Actor là Sponsor – Người có nhu cầu cung cấp insights cá
nhân cho Collector.
2. Vì sao cần có Pulsely?
Trong bất kỳ tổ chức nào cũng cần thu thập các insight của những người liên quan. Từ
các insight thu thập được, người thu thập sẽ take action dựa trên các insight đó. Q trình này
tạo ra một kết quả là: Action của tổ chức sẽ không phụ thuộc chủ quan vào một người, mà đó là
tổng hợp được từ những thành viên quan trọng, liên quan đến action đó. Từ đó có thể cải thiện
chất lượng của action đó của công ty, tạo ra các giá trị dương sau khi take action cho cơng ty.
Insight là gì? Insight ở đây có thể hiểu là các ý kiến, đóng góp, nhận xét, quan điểm về
một câu hỏi, một chủ đề nào đó, mà ở đây insight sẽ là từ góc nhìn của người có nhu cầu cung
cấp insight, khơng bị phụ thuộc vào người thu thập. Lưu ý rõ ràng: Insight không phải là một
câu trả lời cho một câu hỏi đúng sai, insight khơng có tính chất sai hay đúng, hiệu quả hay
khơng hiệu quả, insight là góc nhìn của người cung cấp insight cho một chủ đề được đưa ra.
Pulsely được ra đời từ nhu cầu cơ bản của Geek Up: Geek Up là một công ty được tổ
chức theo Mơ hình phẳng (Flat Company), nói rõ hơn thì có thể hiểu là khơng có ai đóng vai trị
sếp của bất kỳ ai, và khơng ai là cấp dưới của bất kỳ ai. Mọi người trong công ty sẽ đảm nhận
một vai trò khác nhau, và những người có vai trị tương tự nhau sẽ tập hợp lại thành Chapter.
Vậy, Pulsely ra đời là để các thành viên trong cơng ty có thể get insight của tất cả thành viên
trong Chapter, hoặc có thể là cả cơng ty. Từ đó đưa ra các quyết định, take action. Đối với
những cơng ty tổ chức theo Mơ hình cũ là Sếp – Nhân viên thì thường sẽ khơng có bước này.
Các quyết định sẽ dựa theo ý chí chủ quan của Sếp hoặc một vài thành viên cổ đông trong cơng
ty.
Ở Geek Up cịn áp dụng mơ hình Agile vào vận hành mọi product mà Geek Up tạo ra.
Một trong những tính chất quan trọng nhất tạo nên Agile đó là thời gian deliver một iteration
ngắn, từ đó trong quá trình deliver sẽ cần feedback nhanh, và Pulsely ra đời để phục vụ cho mục
đích này một cách hiệu quả nhất.
Từ những quan điểm trên, có thể thấy việc get insight của các thành viên trong tổ chức là
nhu cầu cực kỳ quan trọng đối với bất kỳ tổ chức nào, nhất là với tổ chức Geek Up – một tổ
chức mang tinh thần nhiệt huyết, sôi nổi và hiện đại. Hiểu được những nhu cầu đó, nhóm thực
tập sinh đã cùng nhau tạo nên product Pulsely để phục vụ một cách hiệu quả trong mọi vấn đề
về collect, get insight và take action.
11
3. Cấu trúc của Pulsely
Pulsely gồm có một Server và cũng đảm nhận vai trò là database của product, cùng với
một Client Web cho Collector và một Client Mobile cho Sponsor.
Collector: Người có nhu cầu get insight về một chủ đề nhất định và có nhu cầu take
action sau khi thu thập đủ insight
Sponsor: Người có nhu cầu give insight cho collector, đưa ra ý kiến đóng góp, quan điểm
cá nhân cho chủ đề mà collector quan tâm.
• Đầu tiên, Collector sử dụng Client Web để tạo các câu hỏi trong một chủ đề.
• Sponsor sử dụng Client Mobile để tham gia chủ đề và give insight.
• Sau khi có những insight từ sponsor, collector tiến hành tổng hợp, sắp xếp lại
insights.
• Collector take action dựa trên các insight đã tổng hợp được.
Ngồi ra, product cịn hỗ trợ tính năng Live insight. Tính năng này hỗ trợ collector có thể
đưa ra chủ đề trực tiếp, và sponsor sẽ give insight theo thời gian thực. Mục đích là để sponsor
có thể cùng nhau trải nghiệm give insight, collector có thể nhanh chóng thu thập và tạo ra tương
tác với sponsor.
4. Mục tiêu của Pulsely
• Có thể đáp ứng nhu cầu get insight và give insight của collector và sponsor
• Sau khi sponsor give insight, collector có thể tổng hợp lại được các insight đã thu
thập
• Quan trọng: Tạo được tinh thần tích cực, vui vẻ và tương tác tốt đối với sponsor.
Từ đó sponsor sẽ đưa ra được những insight chất lượng tốt hơn
5. Các chức năng chính của Pulsely
5.1. Chức năng tạo chủ đề (Tạo Pulse)
Collector ở Client Web sẽ tạo chủ đề chung cho bộ câu hỏi.
12
5.2. Chức năng tạo các câu hỏi
Collector tạo các câu hỏi trong cùng chủ đề.
5.3. Chức năng hiển thị chủ đề (Hiển thị Pulse)
Sponsor sử dụng Client Mobile để theo dõi danh sách chủ đề để trả lời câu hỏi
13
5.4. Chức năng trả lời câu hỏi
Sponsor sử dụng Client Mobile để tham gia và trả lời câu hỏi
14
5.5. Chức năng tổng hợp insight
Collector sử dụng Client Web để tổng hợp lại insight đã thu thập
15
5.6. Chức năng Live insight
Collector có thể xem trực tiếp theo thời gian thực các insight được đóng góp của Sponsor
16
TỔNG KẾT
1. Thành quả
Trải nghiệm thực tế Mơ hình phẳng (Flat Company) và Quy trình Agile.
Phối hợp trong một team lớn (13 thành viên) để cùng nhau xây dựng nên một product với
đầy đủ cả Server, Client Web và Client Mobile chạy ổn định.
Học hỏi và phát triển rất nhiều về kiến thức lẫn kỹ năng trong lập trình ứng dụng phía
server. Hiểu và áp dụng tốt được SOLID Principles, Git.
Đó là các kiến thức cực kỳ chủ chốt trong chun mơn phát triển ứng dụng di động. Bên
cạnh đó, khả năng tư duy trong lập trình, các logic và kỹ năng xử lý tình huống được cải thiện
rõ rệt sau khi tham gia thực tập.
Hiểu được quá trình xây dựng một product “thật”, có người sử dụng là như thế nào. Từ
việc lên các ý tưởng, xây dựng concept, lên kế hoạch cho đến các công việc hằng ngày, trao đổi
giữa các thành viên, rút kinh nghiệm sau mỗi giai đoạn ngắn. Từ những bước nhỏ nhưng không
thể thiếu đó, các sinh viên đã cùng nhau tạo nên một product thật sự hồn chỉnh.
Áp dụng tốt Quy trình Agile, có kinh nghiệm làm việc nhóm một cách hiệu quả. Nâng
cao kỹ năng giao tiếp của bản thân.
Biết được cách quan tâm tới “sức khỏe" của product hơn. Nâng cao kỹ năng lập trình
như: cách tổ chức code, áp dụng các pattern, kiểm tra code trước khi commit,...
2. Cần cải thiện trong thời gian tới
Sau khi hoàn thành kỳ thực tập, tự bản thân em và các anh chị trong cơng ty đánh giá là
có kiến thức cơ bản tốt về lập trình back-end nhưng cần phải rèn luyện thêm, học thêm nhiều
công nghệ mới cũng như nghiệp vụ để xây dựng nền tảng vững chắc tạo bàn đạp để phát triển
cho tương lai.
Kỹ năng làm việc nhóm tốt nhưng chưa thực sự quan tâm tới các thành viên trong team
nên cần phải cải hiện hơn.
3. Cảm nhận của bản thân về công ty
Các anh chị luôn luôn quan tâm, lắng nghe và chia sẻ cho thực tập sinh từ những điều
nhỏ nhặt nhất. Đánh giá từng cá nhân một cách tổng thể và toàn diện. Em cảm thấy thật sự may
mắn khi được thực tập ở GeekUp, GeekUp mang đếm cho em cảm giác cực kỳ thú vị và những
kiến thức mới mẻ đến từ những buổi Sharing và WorkShop. Hy vọng sắp tới em có thể đến văn
phịng và thực sự làm việc và trở thành một thành viên trong đại gia đình GeekUp.
17
18
TÀI LIỆU THAM KHẢO
/>
/>
Các tài liệu nội bộ của GeekUp
19