1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo thực tập ứng dụng hỗ trợ tuyển dụng TALARIA

41 18 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

Tiêu đề Báo Cáo Thực Tập Ứng Dụng Hỗ Trợ Tuyển Dụng Talaria
Tác giả Nguyễn Minh Trung, Đặng Vũ Minh Hiếu, Trần Minh Khôi
Người hướng dẫn Nguyễn Minh Trung, Đặng Vũ Minh Hiếu
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
Thể loại báo cáo thực tập
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 41
Dung lượng 40,16 MB

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

Nội dung

Những gì chúng ta đang làm, sản phẩm ta phát triển, nó có thực sự tạo ra một sự tác động tích cựcnào đó cho khách hàng tiêu thụ.. Lưu ý“Thông Tin Bảo Mật” bao gồm toàn bộ thông tin và dữ

Trang 1

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

ỨNG DỤNG HỖ TRỢ TUYỂN DỤNG TALARIA

Công ty thực tập Công ty cổ phần và công nghệ Geek Up

● Đặng Vũ Minh Hiếu

TP Hồ Chí Minh, tháng 12 năm 2021

Trang 2

Lời mở đầu

Một mô hình kinh doanh, tồn tại được trên thị trường một phần không nhỏ đóng góp đến

từ tập khách hàng mục tiêu Ông bà ta hay có câu: “khách hàng là thượng đế” cho thấy

tầm quan trọng của khách hàng và việc một ý tưởng kinh doanh có thành công hay khôngđến từ việc chúng ta mang lại bao nhiêu giá trị cho khách hàng mục tiêu? Những gì

chúng ta đang làm, sản phẩm ta phát triển, nó có thực sự tạo ra một sự tác động tích cựcnào đó cho khách hàng tiêu thụ

Phần mềm là sản phẩm của sự tiến bộ, đóng vai trò ngày càng quan trọng trong đời sốngmỗi con người Mọi người thời đại này kết nối với nhau dễ dàng hơn thông qua phầnmềm Lấy ví dụ như một công ty, không cần biết vị trí địa lý xa hay gần, chỉ cần một cáiwebsite là mọi người đều có thể truy cập và cập nhật thông tin về công ty này Ở góc độmột công ty tổ chức, phần mềm mang lại giá trị cho khách hàng Giải pháp cho một vấn

đề nan giải nào đấy có thể được đóng gói chỉ bằng một phần mềm, thật là một ý tưởngtuyệt vời

Thấu hiểu được tầm quan trọng của phần mềm, em quyết định đây là thời điểm để mangnhững kiến thức đã tiếp thu trong trường áp dụng vào thực tiễn Vậy nên em chọn Geek

Up là môi trường để học hỏi và cọ xát

Trang 3

Lời cảm ơn

Em xin trân trọng cảm ơn phía công ty đã tạo ra một chương trình thực tập, tạo điều kiệnhọc hỏi và cọ sát thực tế cho sinh viên Đây là một chương trình rất có ý nghĩa và emcũng hiểu rằng phía công ty đã rất nỗ lực đầu tư và duy trì một chương trình nhằm giúpcác bạn sinh viên có cơ hội phát triển và chứng tỏ năng lực

Chương trình thực tập, xây dựng product thực chiến trong 10 tuần là một trải nghiệm thật

sự rất khác, nằm ngoài mong đợi Xuyên suốt chương trình, em được tiếp xúc với nhiềuanh chị có rất nhiều kinh nghiệm trong việc phát triển sản phẩm số, tham gia workshopchia sẻ và kiến thức Sau chương trình em đã tiếp thu được những kiến thức nền tảng nhất

để phát triển và triển khai một sản phẩm phần mềm

Đặc biệt cảm ơn anh Nguyễn Minh Trung và Đặng Vũ Minh Hiếu đã luôn túc trực và tíchcực giải đáp những câu hỏi, thắc mắc Cảm ơn team GA (Geek Acquisition), đặc biệt làchị Uyên Phan đã luôn theo dõi, quan tâm và nhắc nhở team logwork mỗi ngày Cảm ơntribe Geek Up đã tạo ra một môi trường làm việc văn minh, nơi mọi người đều có tiếngnói và quyền quyết định

Trần Minh Khôi

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

Trang 4

Lưu ý

“Thông Tin Bảo Mật” bao gồm toàn bộ thông tin và dữ liệu về tổ chức, điều hành, nhân

sự, tài chính, kinh doanh, chiến lược, chính sách, khoa học, kỹ thuật, công nghệ, kinh tế,thương mại, bán hàng, và tất cả các thông tin liên quan đến hoạt động vận hàng của Công

Ty, khách hàng của Công Ty mà không được phổ biến ra công chúng một cách tự do,được lưu trữ dưới bất kỳ hình thức nào và được Công Ty cung cấp cho Thực Tập Sinhhoặc Thực Tập Sinh bằng cách khác có được trong khi thực hiện công việc, nhiệm vụ củamình cho và tại Công Ty

Em đã cam kết bảo mật các Thông Tin Bảo Mật được quy định cũng như sẽ không đề cấpđến bất kỳ chi tiết nào liên quan đến product concept

Trang 5

Nhận xét của khoa

Trang 6

Lời mở đầu 1

Trang 8

1 Giới thiệu công ty

1.1 Giới thiệu chung

● Tên đơn vị: Công ty cổ phần công nghệ Geek Up

● Trụ sở, chi nhánh

○ 244/31 Huynh Van Banh, Phu Nhuan District, Ho Chi Minh City

○ 27B/9 Nguyen Dinh Chieu, Dakao Ward, District 1, Ho Chi Minh City

● Thông tin liên hệ

Một số partner nổi bật của Geek Up có thể kể đến như: Viettel, Mobifone, FPT,

Heineken, waitrr, TPBank, TheCoffeeHouse, ACB, SSI… và nhiều hơn thế Partner vớiGeek Up sẽ là một trải nghiệm rất khác, nơi mọi người thật sự ngồi lại và cùng nhau phântích và đưa ra giải pháp có thể mang lại những giá trị thật

Trang 9

1.2 Văn hóa

Ở Geek Up có một nét văn hóa rất khác biệt, còn được biết đến là Flat Structure Một vănhóa phẳng với slogan là “không có sếp”, không ai có quyền độc tài đưa ra quyết định mà

đó phải là tiếng nói chung của cả team Quyết định và giải pháp được thống nhất dựa trên

sự tổng hợp quyết định của các thành viên và dựa trên những dữ liệu có thật Môi trườnglàm việc ở đây không khuyến khích cái tôi cá nhân mà đề cao những giá trị đoàn kết, đềcao tính hợp tác cùng nhau giải quyết vấn đề

Geek Up không chia theo phòng, không có phòng ban cụ thể như các cách tổ chức truyềnthống Ở đây tồn tại một cách thức tổ chức rất hiện đại và văn minh

Tribe Toàn bộ thành viên của Geek Up, gắn bó và đoàn kết nhau như

sinh sống trong bộ lạc

Guild Các thành viên trong nhóm có cùng sở thích ngoại khóa Hiện

tại em biết được có 2 guild hoạt động tích cực nhất là

Trang 10

Các chapter trong geekup

Trang 11

Geek Up tồn tại 4 giá trị cốt lõi, được define cụ thể và dán lên tường như là một lời nhắcnhở các thành viên trong tribe

Geeks Get It Done Hoàn tất công việc đạt tiến độ bằng mọi resource có

thể có

High Standard Tiêu chuẩn cao, luôn tìm kiếm một chuẩn mực cao

hơn trong những việc mình làm

Stay Hungry Stay Foolish Bắt đầu với mindset như một beginner, trong tâm thế

sẵn sàng học hỏi và tiếp thu tri thức

Ngoài 4 giá trị cốt lõi, còn có những giá trị khác, được xây dựng theo thời gian, xuyênsuốt quá trình deliver nhiều dự án khác nhau Có thể kể đến một số giá trị như

Awesome Comrade: một người đồng đội tốt hơn, nỗ lực thêm một chút để cover

cho đồng đội

● Commitment: cam kết với dự án, không bỏ dở.

● Ownership: có quyền sở hữu với product đang phát triển, nghiên cứu và tìm cách

để làm product tốt hơn standard

● Contribution: đóng góp và tận tụy với dự án Ngay cả khi đó không phải trách

nhiệm của mình

Trang 12

Geek Up định kỳ mỗi tuần đều host các buổi workshop, nơi mọi người chia sẻ kiến thức

và kinh nghiệm sau quá trình deliver Vào mỗi thứ 6 còn có friday meetup, nơi mọi ngườibày tỏ sự biết ơn, nói lời cảm ơn đến những đồng đội trong team Sau đây là một số hìnhảnh về những buổi workshop diễn ra tại Geek Up

Một buổi Thursday Workshop hàng tuần Đôi khi người chia sẻ là một người ngoài tribe,người có background và câu chuyện ý nghĩa muốn chia sẻ cho mọi người

Trang 13

Một buổi Monday Workshop chia sẻ về tư duy phản biện Thông thường workshop thứ 2ngắn gọn và súc tích hơn, chia sẻ về một số kinh nghiệm trong quá trình làm việc cũngnhư key takeaway.

Trang 14

Tuesday Workshop, nơi mọi người trong tribe chia sẻ về kiến thức chuyên môn Một dịp

để ôn lại những gì đã tiếp thu sau một khoảng thời gian

Trang 15

Friday Meetup, nơi mọi người bày tỏ sự biết ơn Dành lời khen, cảm ơn đến những ngườiđồng đội của mình Cuối buổi được thoải mái uống bia ăn uống, vui chơi giải trí.

Trang 16

Ở Geek Up có cơ chế lên level, mọi member sau một thời gian log work và tích điểm sẽđược thăng hạng, đánh dấu một cột mốc trong hành trình làm việc tại Geek Up.

Trang 17

1.3 Một số sản phẩm của công ty

Waitrr - Ứng dụng đặt đồ ăn

https://geekup.vn/works/food-beverage/mobile-payment-ordering-platform-disrupting-singapore-f-b-market

Trang 18

The Coffee House - Ứng dụng chăm sóc khách hàng

https://geekup.vn/insights/casestudy-the-coffee-house

Trang 19

TPBank - Ứng dụng tài chính

https://geekup.vn/insights/tpbank

Trang 20

2 Nội dung thực tập

Quá trình thực tập trong 10 tuần, với mục tiêu xây dựng và phát triển ứng dụng hỗ trợteam GA (team HR) tuyển dụng thành viên mới cho tribe

2.1 Tìm hiểu chuyên môn

2.1.1 Scrum & Agile

Một số lợi ích nền tảng Agile mang lại cho tổ chức, có thể kế đến như

● Đi nhanh hơn: không hẳn là áp dụng agile sẽ đi nhanh hơn Đây hoàn toàn không

phải là hiệu ứng, một trong những đặc tính của mô hình agile là cho phép chúng tathay đổi định hướng nhanh Trong một mô hình tổ chức agile được xây dựng trêntinh thần minh bạch và tiếng nói chung thì agile mang lại khả năng có thể thíchnghi với thay đổi nhanh hơn

● Năng suất cao: hiệu suất luôn là bài toán hàng đầu cần phải giải quyết trong các

mô hình quản lý dự án Khi nói về hiệu suất, ta mong chờ hoàn thành được nhiều

Trang 21

thứ hơn với cùng lượng nhân sự và resource ta có Các nguyên tắc agile liên hệchặt chẽ đến việc giao tiếp và phối hợp trong một team dự án Trong rất nhiềutrường hợp, việc dev code một đằng, business goals và user needs một nẻo đãkhông mấy xa lạ và việc này làm giảm hiệu suất trong team rất nhiều Agile đòihỏi sự alignment giữa team dev và các stakeholders, đảm bảo những gì mình làmalign đúng với business goal và user needs.

4 giá trị cốt lõi của agile

● Xem trọng con người hơn các quy trình và công cụ Sự giao tiếp là điều rất quantrọng trong một team dự án

● Sản phẩm chạy được hơn là tài liệu toàn diện Trong nhiều trường hợp, đã cónhững dự án với một khối lượng tài liệu được viết rất nhiều và dày đặc Điều này

vô hình chung làm chậm tiến độ dự án Agile không bỏ việc ghi chép tài liệu,nhưng tài liệu chỉ ở mức vừa đủ, cho các developer có thể thấu hiểu user stories vàtiến hành công việc

● Hợp tác với khách hàng hơn là đàm phán hợp đồng Khách hàng là một phần trong

dự án, giao tiếp và tương tác với khách hàng giúp cho những bước phát triển đầutiên đáp ứng đúng yêu cầu

● Phản hồi với thay đổi hơn là làm theo đúng kế hoạch ban đầu Nói như vậy không

có nghĩa là agile không rũ bỏ bước lập kế hoạch, chỉ là khi có những dữ kiện,những sự thay đổi nào đó Hãy cân nhắc và xem xét, sự thay đổi này có thật sựgiúp ích cho khách hàng và khách hàng có thật sự cần nó hay không Không phải

sự thay đổi nào chúng ta cũng apply

12 nguyên tắc agile

● Sự hài lòng của khách hàng ngay cả ở những giai đoạn đầu của dự án Khách hàng

sẽ rất vui khi được cập nhật tiến độ thường xuyên

● Đáp ứng với sự thay đổi yêu cầu trong quá trình phát triển

● Thường xuyên và một cách tịnh tiến, làm cho phần mềm tốt hơn theo thời gian

● Sự phối hợp giữa stakeholder và team dev trong suốt quá trình dự án

● Hỗ trợ, tin tưởng và động viên đồng đội trong team

● Tương tác trực tiếp Sự giao tiếp sẽ tốt hơn rất nhiều nếu các thành viên có dùngđịa điểm làm việc

● Một phần mềm hoạt động tốt chính là sự đánh giá tốt nhất cho một quá trình hoạtđộng

● Giữ vững tốc độ deliver dự án

Trang 22

● Chú ý đến các yếu tố chuyên môn, gần như đây là thứ quyết định tốc độ deliver dự

án Những vấn đề ta đã giải quyết, đã gặp qua một lần thì document lại cho teambiết Sau này gặp lại vấn đề này thì có nhiều materials hơn để xử lý

● Sự đơn giản, deliver đủ để hoàn thành công việc

● Các thành viên trong team có quyền quyết định lên dự án, điều này giúp thúc đẩy

sự sáng tạo Các thành viên có nhiều ownership hơn với dự án

● Review và nhận xét bản thân, làm thế nào để trở nên tốt hơn

Scrum là một framework ứng dụng agile, được phát triển đầu những năm 1990s và chođến tận ngày nay Những người góp phần tạo ra scrum vẫn liên tục cập nhật và đổi mớiframework Đây cũng là một điểm khác biệt lớn giữa scrum và những framework khác,

nó không chỉ là một cái proposal hay một presentation, framework scrum bản thân nóthay đổi và phát triển theo thời gian

Nền tảng của scrum đến từ việc chia dự án theo từng giai đoạn (sprint) với thời giantimebox (2 tuần) Để thực thi scrum, đòi hỏi người quản lý dự án phải nuôi dưỡng mộtvăn hóa, nơi mà mọi người…

● Chia vấn đề phức tạp thành các Product Backlog

● Team sẽ lựa chọn các Backlog và tiến hành thực hiện trong một sprint

● Cuối sprint, team và stakeholders ngồi lại với nhau để phân tích kết quả Địnhhướng cho sprint tiếp theo

● Lặp lại quy trình

Các scrum events xuyên suốt dự án

● Sprint Planning: team thực hiện lên kế hoạch đầu mỗi sprint Chọn ra những

backlog để process trong sprint

Trang 23

● Daily Scrum: diễn ra mỗi ngày, team chọn một giờ cố định trong ngày lúc mọi

người đều available Team nhìn lại các backlog, hôm qua làm gì, hôm nay sẽ làm

gì, làm thế nào để làm tốt hơn

● Sprint Review: diễn ra vào cuối sprint, team nhìn nhận và đánh giá khách quan dự

án sau sprint vừa rồi Dự án có đạt được sự tăng trưởng nào không

● Sprint Retrospective: diễn ra vào cuối sprint, team nhìn nhận và đánh giá quy

trình làm việc, giải quyết xích mích mâu thuẫn Có thể cải thiện được gì trongnhững, làm sao để làm việc nhanh hơn trong những sprint tiếp theo

● Nắm bắt được workflow trong team

● Nâng cao hiệu quả làm việc nhóm

Trang 24

2.1.2 Github

Thời gian

● 1 ngày

Nội dung

Làm việc trong team dev, chúng ta luôn cần một cách thức để quản lý source code dự án

và github là một công cụ đã không mấy xa lạ với các lập trình viên Nói về quản lý sourcecode, trong lập trình đây luôn là một đề tài nóng Mỗi người trong team dev không thểcùng code trên một mã nguồn, nó phải có sự tách biệt nhất định theo một cách nào đó.Khi sử dụng git, mỗi thành viên khi implement chức năng mới đều phải tạo một nhánhriêng (branch) để code và test Sau khi implement và test đầy đủ các chức năng, ta tiếnhành merge các nhánh lại thành một nhánh chính, và các chức năng mới sau này đều sẽđược tách từ nhánh chính này

Trang 25

Công việc sẽ xúc tiến nhanh hơn nếu có workflow rõ ràng Làm việc với git cũng vậy,chúng ta cũng define một workflow rõ ràng trong teams

Master Nhánh chính, dùng để kiểm thử ứng dụng Chỉ chạy trên môi

trường dev

Hotfix Nhánh được dùng khi fix bug Khi chức năng nào đấy có bug,

tiến hành tách nhánh hotfix để cài đặt vá lỗi

Feature Nhánh chức năng, tách nhánh mới mỗi khi cài đặt chức năng mới

Release Nhánh release, dùng demo ứng dụng Được setup để chạy trên

môi trường production

Trang 26

Ngoài ra, github ngoài quản lý source code còn tích hợp với nhiều nền tảng như là

Jenkins, giúp tự động deploy ứng dụng mỗi khi có commit mới trên nhánh release Bêncạnh đó, còn có thể tích hợp với các platform quản lý dự án như jira, các thông tin nhưissue, conflict, sơ đồ nhánh đều được nhúng trong phần mềm quản lý Quản lý dự án trởnên dễ dàng hơn rất nhiều

Thực hiện

● Tham gia training đầy đủ

● Áp dụng git, tách nhánh mới khi code chức năng

● Xử lý conflict khi merge

● Integrate với các nền tảng nội bộ

Kết quả

● Hiểu biết và vận dụng github trong phát triển ứng dụng

Trang 27

NestJS về cơ bản thực hiện các kết nối HTTP bằng một framework khác hoạt động bêndưới là ExpressJS Về cơ bản NestJS không tập trung nghiên cứu sâu tầng network màtập trung giải quyết bài toán về kiến trúc ứng dụng (Application architecture) Frameworkcung cấp nhiều mức độ trừu tượng khác nhau, cho phép các developer xây dựng ứngdụng với kiến trúc hợp lý một cách dễ dàng và mang tính mở rộng cao.

Trang 28

Một số component cơ bản của NestJS

Controller

Lớp controller để expose API endpoints, dùng trong xử lý request ra vào ứng dụng Hỗtrợ cơ chế routing, khai báo chuỗi string để định tuyến đường dẫn vào các class xử lý.Ngoài ra hỗ trợ nhiều decorator rất tiện dụng cho việc lập trình như redirection, header,statuscode, wildcards (routing pattern), cast payload ra typescript interface đã được khaibáo trước

Provider

Một trong những điểm nổi bật của framework NestJS đó chính là support cơ chế

dependency injection Thay vì phải tạo thủ công instance của một class, NestJS hỗ trợmột lớp trừu tượng là provider, chỉ cần khai báo tên class vào dependency, NestJS tựđộng inspect với một instance của class đó Giữ cấu trúc code được clean và gọn gànghơn

Trang 29

Đúng như tên gọi, đây là component được thực thi ở giữa, trước khi request đi vào cáccontroller Điều này rất đặc biệt hữu ích, ta có thể thoải mái cài đặt một hoặc nhiều lớpbảo mật mà không ảnh hưởng nhiều đến những đoạn mã nguồn cũ Chỉ cần cài đặt mộtlớp middleware và inspect dữ liệu từ header + cache, ta đã tích hợp được thêm 1 lớp bảomật mà không yêu cầu chỉnh sửa mã nguồn quá nhiều

Thực hiện

● Tham gia training đầy đủ

● Sử dụng NestJS, xây dựng tầng interface cho ứng dụng

● Cài đặt lớp truy vấn dữ liệu, làm provider cho các lớp trên

Thay vì phải tự viết truy vấn SQL và xử lý chuỗi để tách dữ liệu Chúng ta có một

options khác là sử dụng ORM hỗ trợ truy vấn dữ liệu từ cơ sở dữ liệu mà không cần phải

tự xử lý chuỗi Việc tích hợp một ORM vào dự án là tăng thêm một lớp trừu tượng, codeviết dễ đọc dễ hiểu hơn, chúng ta có nhiều thời gian hơn để tập trung vào product thay vìlăn tăn với mấy câu truy vấn

TypeORM là một ORM tuyệt vời cho các ứng dụng NodeJS Hỗ trợ casting dữ liệu ratypescript interface Một điểm rất mạnh của ORM này là nó có thể sync từ một schemaobject typescript sang schema cứng trong database

Ngày đăng: 10/03/2022, 20:35

TỪ KHÓA LIÊN QUAN

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

w