LỜI CẢM ƠNEm xin chân thành cảm ơn ban giám hiệu và quý thầy cô của trường Đại học Công nghệthông tin, đặc biệt là các thầy cô trong khoa Công nghệ phần mềm đã giúp đỡ và tư vấncho em tr
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Công ty thực tập : Công ty TNHH KMS Technology
Người quản lý : Anh Phạm Minh Chánh
Thực tập sinh : Phạm Ngọc Thịnh
TP Hồ Chí Minh, tháng 12 năm 2021
Trang 2LỜI MỞ ĐẦU
Hiện tại, chúng ta đang ở trong thời kỳ mà công nghệ thông tin đang phát triểnbùng nổ và được ứng dụng hầu hết các lĩnh vực trong cuộc sống Điều này dẫn đến cáchàng loạt trang web lớn nhỏ ra đời nhằm phục vụ và nâng cao chất lượng đời sống củacon người Với khả năng phát triển vô cùng mạnh mẽ như vậy, ngành phát triển ứng dụngweb đang là một trong những ngày thúc đẩy sự phát triển hàng đầu của ngành công nghệthông tin trong thị trường Việt Nam
Sau khoảng thời gian ba năm học tập và trau dồi kiến thức tại trường, em nhậnthấy mình có sở thích học hỏi và mong muốn có thêm nhiều kinh nghiệm cần thiết tronglĩnh vực mình đang học, cũng như trau dồi thêm kiến thức thực tế từ các công việc bênngoài, em đã quyết định xin đi thực tập doanh nghiệp trong kỳ này Trong suốt quá trìnhtìm kiếm, em thấy Công ty TNHH KMS Technology khá phù hợp với định hướng pháttriển của em, không những thế môi trường làm việc tại đây rất trẻ trung và năng động,nên em quyết định chọn Công ty TNHH KMS Technology là nơi thực tập đầu tiên củamình
Trang 3LỜI CẢM ƠN
Em xin chân thành cảm ơn ban giám hiệu và quý thầy cô của trường Đại học Công nghệthông tin, đặc biệt là các thầy cô trong khoa Công nghệ phần mềm đã giúp đỡ và tư vấncho em trong suốt quá trình tìm kiếm công ty, quá trình em thực tập và hỗ trợ em trongviệc làm bài báo cáo này
Em xin cảm ơn Công ty TNHH KMS Technology đã tạo điều kiện cho em có cơ hộiđược tham gia thực tập tại công ty Không những thế, còn cung cấp cho em rất nhiều kiếnthức quan trọng và bổ ích trong quá trình em thực tập Bên cạnh đó, cảm ơn công ty đãtin tưởng và cho em cơ hội để được tham gia vào một dự án thực tế, điều này đã giúp emrất nhiều trong việc bổ sung thêm kinh nghiệm thực tế, đồng thời nắm được những tháchthức và khó khăn trong quá trình phát triển phần mềm Giúp em làm quen và hiểu đượcmôi trường làm việc, cũng như nâng cao khả năng giao tiếp với mọi người xung quanhđặc biệt là đồng nghiệp Em xin chân thành cảm ơn
Phạm Ngọc Thịnh
TP Hồ Chí Minh, ngày 20 tháng 12 năm 2021
Trang 4NHẬN XÉT CỦA KHOA
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 5MỤC LỤC
2.1 Quy trình phát triển phần mềm được áp dụng trong dự án: 9
Trang 62.2.5 UC 07: Delete Production Collections: 12
Trang 7Chương 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1 Giới thiệu công ty
Công ty TNHH KMS Technology được thành lập vào năm 2009, tính tới nay KMS
đã hoạt động được 12 năm KMS đã xây dựng được một đội ngũ hơn 1000 nhân viên tại
Mỹ và Việt Nam KMS là một công ty chuyên về lĩnh vực phát triển sản phẩm và giacông phần mềm, tư vấn triển khai các giải pháp công nghệ
Thuộc top 4 công ty IT tại Việt Nam, KMS Technology luôn được đánh giá caovới môi trường làm việc năng động và thân thiện hàng đầu cùng những cơ hội phát triểnphù hợp nhất với năng lực của mỗi cá nhân Đội ngũ lãnh đạo tại KMS luôn tập trungxây dựng chính sách đãi ngộ tốt nhất, đa dạng hoá các chương trình đào tạo kết hợp vớivui chơi giải trí thường xuyên trong công ty nhằm tạo điều kiện tốt nhất để phát huy điểmmạnh của mỗi nhân viên
Tầm nhìn của KMS là trở thành một trong những công ty công nghệ hàng đầu thếgiới, nổi tiếng với những cách tiếp cận sáng tạo trong việc giải quyết các bài toán phứctạp của doanh nghiệp, được khách hàng và đối tác trân trọng bởi sự chính trực và hếtmình cho thành công của khách hàng
KMS luôn đi đầu trong việc ứng dụng công nghệ mới, những phương pháp pháttriển và kiểm thử phần mềm mới nhất để mang lại giá trị nhiều nhất cho khách hàng VớiAgile và Scaled Agile, KMS rất thành công với những nhóm dự án từ 10 đến 100 người
Bí quyết thành công của KMS là cam kết phát triển công ty dựa hoàn toàn vào việcmang lại thành công cho nhân viên và khách hàng và sự chính trực trong việc thực hiệncam kết của mình
Dịch vụ KMS cung cấp:
Người hướng dẫn: Phạm Minh Chánh SV thực hiện: Phạm Ngọc Thịnh
Trang 8- Dịch vụ phát triển sản phẩm phần mềm:
o Kiểm thử phần mềm (Software Testing)
o Triển khai quá trình liên tục (Continuous Delivery)
o Phát triển ứng dụng trên nền tảng di động và website (Mobile and WebDevelopment)
o Triển khai quy trình DevOps (DevOps Consulting)
- Dịch vụ tư vấn các giải pháp công nghệ: KMS cung cấp các giải pháp chuyểnđổi số, hỗ trợ các công ty tại Việt Nam và khu vực Châu Á với các dịch vụ tưvấn và triển khai phần mềm trong các lĩnh vực:
o Quản lý chuỗi cung ứng
o Phân tích dữ liệu doanh nghiệp
- UpStar Labs là nhánh đầu tư và ươm tạo khởi nghiệp của KMS Technology.UpStar Labs xây dựng các sản phẩm phần mềm cho thị trường toàn cầu với chính độingũ kỹ sư công nghệ tại Việt Nam, đồng thời đầu tư vào các công ty khởi nghiệp có ảnhhưởng lớn tại Hoa Kỳ và Việt Nam Danh mục sản phẩm và đầu tư bao gồm:QASymphony, Kobiton, Katalon, Christian’s, Cypress.io, Izenda và nhiều công ty khác
- Hợp tác chặt chẽ với các công ty phần mèm có danh tiếng hàng đầu thế giới,KMS mang những giải pháp phần mềm tiên tiến và sáng tạo đến Châu Á
3 Thành tựu
Người hướng dẫn: Phạm Minh Chánh SV thực hiện: Phạm Ngọc Thịnh
Trang 9-Sao Khuê 2011-2014, 2016-2018 do VINASA bình chọn
- 100 Nơi làm việc tốt nhất Việt Nam (Anphabe và Nielsen tổ chức)
- Top 5000 công ty tư nhân phát triển nhanh nhất tại Hoa Kỳ 2014-2019 (Tạp chíInc.)
- Top 50 doanh nghiệp CNTT hàng đầu Việt Nam 2014-2018 do VINASA bìnhchọn
- Giải Thưởng TOP ICT Việt Nam 2018 do Hội tin học TP Hồ Chí Minh tổ chức
- Vietnam: Sao Khuê, Top ICT Việt Nam, Nơi làm việc tốt nhất Việt NamAnphabe
- Liên tiếp 2 năm liền (2015 và 2016) KMS Technology có mặt trong danh sách
100 nơi đáng làm việc nhất Việt Nam do Anphabe và Nielsen bình chọn dựa trên nhữngtiêu chí lương, thưởng, phúc lợi; cơ hội phát triển; đội ngũ lãnh đạo; văn hóa và giá trị;chất lượng công việc và cuộc sống; danh tiếng công ty
- KMS Technology 9 năm liền nhận Danh hiệu Sao Khuê cho hạng mục “Dịch vụgia công xuất khẩu phần mềm xuất sắc” và liên tiếp nằm trong danh sách 50 DoanhNghiệp CNTT hàng đầu Việt Nam Bên cạnh dịch vụ chất lượng cao, KMS Technologycòn được bình chọn là một trong những nơi làm việc tốt nhất tại Việt Nam và Mỹ, vớimột môi trường làm việc năng động, chuyên nghiệp, sáng tạo, nhiều cơ hội học hỏi vànâng cao năng lực cho đội ngũ kỹ sư và lập trình viên Việt Nam
- Nhiều năm liên tiếp nhận giải thưởng Sao Khuê, Top 50 Doanh Nghiệp CNTThàng đầu Việt Nam, KMS là thành viên tích cực của hiệp hội phần mềm Việt NamVINASA Gia nhập thị trường Đà Nẵng, KMS Technology là thành viên chính thức củaHiệp Hội Doanh Nghiệp phần mềm Đà Nẵng (DSA) từ tháng 12/2019
Người hướng dẫn: Phạm Minh Chánh SV thực hiện: Phạm Ngọc Thịnh
Trang 10Chương 2: NỘI DUNG THỰC TẬP
1 Giới thiệu chung
Kế hoạch thực tập tại Công ty TNHH KMS Technology được xác định vàchia rõ thành ba giai đoạn chính:
- Giai đoạn làm quen công ty
- Giai đoạn trau dồi kiến thức
- Giai đoạn tham gia dự án thực tế
Với những lộ trình được chia rất rõ ràng như vậy, thực tập sinh được đào tạo bàibản các kỹ năng cần phải có trong quá trình làm việc bao gồm kỹ năng mềm và kỹnăng chuyên môn Thực tập sinh được huấn luyện các kỹ năng cần có khi làm việcnhóm như thuyết trình, báo cáo công việc, giao tiếp đồng nghiệp, quản lý công việc
và thời gian,… Bên cạnh đó, thực tập sinh còn được trau dồi các kiến thức chuyênmôn từ cơ bản đến nâng cao để chuẩn bị đủ kiến thức cho giai đoạn tham gia dự ánthực tế
1.1 Giai đoạn làm quen công ty:
Thực tập sinh sẽ được hướng dẫn các thông tin cần thiết về công ty, giới thiệu vềvăn hoá công ty, nội quy của công ty mà thực tập sinh phải tuân theo
1.2 Giai đoạn trau dồi kiến thức:
Thực tập sinh sẽ được người quản lý của mình training những kiến thức về côngnghệ, những quy tắt cho việc tham gia coding, các phần mềm sử dụng trong quá trìnhphát triển dự án Bên cạnh đó, thực tập sinh phải tham gia những buổi training chungđược tổ chức cho các nhóm thực tập sinh để trau dồi thêm kiến thức từ cơ bản đến nângcao các công nghệ được sử dụng trong dự án tham gia Và cuối cùng, thực tập sinh sẽphải hoàn thành khóa học của mình về công nghệ đó, khóa học sẽ được công ty cung cấp.Sau khi học xong, thực tập sinh phải làm một phần mềm nho nhỏ được gợi ý trong khoá
Người hướng dẫn: Phạm Minh Chánh SV thực hiện: Phạm Ngọc Thịnh
Trang 115học để đảm bảo đã tiếp thu và nắm được đủ kiến thức cho giai đoạn tham gia dự án thựctế.
1.3 Giai đoạn tham gia dự án thực tế:
Thực tập sinh sẽ nhận tài liệu giới thiệu về dự án bao gồm giới thiệu tổng quan về
dự án, tài liệu phân tích yêu cầu, tài liệu các nghiệp vụ,…Thực tập sinh cần đọc qua vànắm được các thông tin về dự án thực tế tham gia
Song với đó, thực tập sinh sẽ được tham gia vào nhóm dự án Thực tập sinh sẽ làmquen với những người trong nhóm dự án và làm quen với quy trình làm việc, báo cáo tiến
độ, thời gian họp định kỳ của nhóm dự án, cũng như tìm hiểu được dự án đã đi tới đâu vànắm được hướng phát triển và xây dựng tiếp theo của dự án
Thực tập sinh trong quá trình phát triển dự án sẽ phải báo cáo tiến độ công việcmỗi ngày vào khung giờ mà nhóm dự án đề ra Sau khi hoàn thành tính năng nào đó, thựctập sinh sẽ báo cáo tiến độ cho Product Manager, sau đó sẽ tiến hành demo tính năng đócho QA/QC cùng với Business Analyst của dự án Nếu tất cả mọi người đều không cóthay đổi hay bổ sung gì tính năng đó sẽ được chính thực tập sinh demo trực tiếp vớikhách hàng
2 Chi tiết quá trình thực tập
2.1 Giai đoạn làm quen với công ty (1 tuần)
Trong giai đoạn làm quen với công ty, thực tập sinh sẽ làm việc chủ yếu với HR(chị Trần Quỳnh Anh) và người quản lý của mình (anh Phạm Minh Chánh) Trong giaiđoạn này thực tập sinh có trách nhiệm phải tham gia và hoàn thành các nội dung:
- Tham gia buổi training về văn hóa làm việc tại công ty KMS (giờ giấc, nội quytrong giờ làm việc, nội quy trong phòng làm việc,….)
- Hoàn thành khóa học kỹ năng an toàn lao động (phòng cháy chữa cháy tại nơilàm việc, cách giải quyết các tai nạn trong quá trình làm việc,…)
- Hoàn thành khóa học trách nhiệm và nghĩa vụ của nhân viên về vấn đề bảo mật(bảo mật thông tin công ty, bảo mật thông tin các dự án tham gia,…)
Người hướng dẫn: Phạm Minh Chánh SV thực hiện: Phạm Ngọc Thịnh
Trang 126Sau khi trải qua 1 tuần đầu tiên, thực tập sinh dần quen và nắm được các nội quycủa công ty, hiểu được các quy trình và kiến thức đầy đủ của công ty.
2.2 Giai đoạn trau dồi kiến thức (3 tuần)
Thực tập sinh sẽ trải qua 3 tuần để tìm hiểu, học và trau dồi kiến thức về Angular.Trong giai đoạn này thực tập sinh có trách nhiệm và bổn phận phải hoàn thành các nộidung:
- Tự ôn tập lại các kiến thức sẵn có của mình về Front End (HTML, CSS, )
- Tham gia một khóa Udemy về Angular (Angular – The Complete Guide)
- Làm một dự án giống như trong khóa học nói trên (Ứng dụng Website xây dựngbằng Angular cho quản lý trường học cơ bản)
- Tham gia training về viết Unit Test cho AngularJS (áp dụng viết Unit Test cho dự
án trong khóa học)
2.2.1 Tìm hiểu về Angular:
- Angular: Angular là một Javascript Framework, được cung cấp và hỗ trợ bởiGoogle Ý tưởng chính của Angular thực chất là build các component của ứng dụng Cáccomponent có thể là template hoặc là HTML code
● TS cung cấp public và private cho class
- Các Life Cycle của Angular:
+ ngOnChanges+ ngOnInit+ ngDoCheck+ ngAfterContentInit+ ngAfterContentChecked+ ngAfterViewInit
+ ngAfterViewCheckedNgười hướng dẫn: Phạm Minh Chánh SV thực hiện: Phạm Ngọc Thịnh
Trang 137+ ngOnDestroy
- Directive: Directive là một khái niệm trong Angular Framework, nó là nhữngthành phần mở rộng cho các thẻ html dùng bổ trợ các thuộc tính nâng cao cho các thẻHTML Với directive, Angular compiler sẽ render ra html mà trình duyệt hiểu được dựavào attribute html, từ comment hay từ một tag bất kỳ nào được đặt lên trang
VD: *ngif, [ngStyle]="{backgroundColor: getColor()}", *ngFor="let server of servers", [ngClass]="{online: serverStatus === 'online'}",…
- Data binding: Data binding dùng để giao tiếp giữa code TS và template HTML
Vì cần sử dụng một số kết quẩ từ code TS VD: fetch data, calculator,…
+ Hiển thị data (code TS – template HTML): string interpolation, propertybinding
+ Đón các event của người dùng: event binding.
+ Two-way binding: [(ngModel)]=”something”.
2.2 Giai đoạn tham gia dự án thực tế (8 tuần)
Thực tập sinh sẽ được tham gia vào dự án thực tế trong suốt thời gian còn lại củaquá trình thực tập Sau 2 giai đoạn trên kéo dài 4 tuần, thực tập sinh dần nắm được các kỹnăng và kiến thức cần thiết để bắt đầu vào giai đoạn tham gia dự án thực tế Trong giaiđoạn này, thực tập sinh sẽ tiến hành tham gia vào team dự án (Levels Beyond)
- Thực tập sinh sẽ được cung cấp các công cụ đầy đủ trong quá trình tham gia dự ánthực tế (tài khoản Github, tài khoản Dev Azure, và các tài khoản liên quan của dự
án thực tế,…)
- Thực tập sinh có trách nhiệm phải đọc qua Product Requirement của dự án để hiểu
và nắm được các yêu cầu của dự án
- Thực tập sinh sẽ có 2 ngày để đọc và làm quen với source code hiện tại của dự án
- Thực tập sinh sẽ làm quen với các Coding Convention: quy định khi code trong dự
án như đặt tên biến, tên hàm,…
Người hướng dẫn: Phạm Minh Chánh SV thực hiện: Phạm Ngọc Thịnh
Trang 14Chương 3: Chi tiết về dự án thực tế
1 Giới thiệu dự án và các công cụ sử dụng
● Phân loại các loại tài nguyên của mình
● Chia sẻ tài nguyên của mình cho những người dùng khác trong team
● Truy cập vào các tài nguyên nhanh chóng
● Tìm kiếm tài nguyên của mình trên hệ thống
● Chỉnh sửa các tài nguyên của mình
● …
- Dự án Levels Beyond được chia thành 3 SOW chính:
● Levels Beyond SOW1 (đã hoàn thành): Quản lý các người dùng của hệ thống
● Levels Beyond SOW2 (đang xây dựng): Quản lý các tài nguyên của ngườidùng
● Levels Beyond SOW3 (chưa triển khai): Hệ thống chỉnh sửa, edit video cho cácnhà làm phim
- Dự án được trình bày trọng báo cáo là Levels Beyond SOW2 – Quản lý các tàinguyên của người dùng
- Người sử dụng: Đối tượng sử dụng là Khách hàng của Khách hàng
Người hướng dẫn: Phạm Minh Chánh SV thực hiện: Phạm Ngọc Thịnh
Trang 151.2 Công cụ sử dụng trong quá trình phát triển dự án:
● Visual Studio Code: Cài đặt các tính năng, code, chạy Unit Test
● Git: Quản lý source code của dự án
● Github: Lưu trữ source code của ứng dụng
● Dev Azure: Quản lý công việc, giao task, phân task
● Slack: Trao đổi giữa team KMS với khách hàng
● Discord: Trao đổi nội bộ trong team dự án
● Skype: Team Dev trao đổi và thảo luận
● Zoom: Tổ chức các buổi meeting hằng ngày, meeting estimation, và các cuộc họpcần thiết
2 Quy trình và nội dung công việc chi tiết:
2.1 Quy trình phát triển phần mềm được áp dụng trong dự án:
- Nhóm dự án bao gồm tổng cộng 12 thành viên, gồm các chức vụ như sau:
Trang 16● 2 Intern Developer
-Dự án sử dụng quy trình Agile là quy trình phát triển phần mềm của dự án:
● Toàn bộ thành viên của dự án sẽ tham gia báo cáo tiến độ vào đúng10h15 mỗi ngày Mỗi thành viên sẽ báo cáo những nội dung liên quan tớitiến độ công việc như là ngày hôm qua đã làm gì, hôm nay sẽ làm gì, cógặp trở ngại gì trong công việc hay không
● Thành viên trong team Dev sẽ họp Dev Meeting sau khi kết thúc buổidaily meeting để báo cáo những vấn đề mình gặp phải trong quá trìnhphát triển dự án Cuộc họp giúp cho những vấn đề được giải quyết nhanhnhất tránh mất quá nhiều thời gian cho những vấn đề gặp phải
● Sau 3 tuần, toàn bộ team dự án sẽ meeting để estimate cho Sprint tiếptheo Các thành viên sẽ đánh giá mức độ của những công việc tiếp theonhằm đưa ra độ khó để phân chia công việc hợp lý cho mọi người trongnhóm
● Vào mỗi thứ 5 cách 2 tuần thì nguyên team dự án sẽ có một cuộc họp vớibên khách hàng để báo cáo tiến độ cho khách hàng và demo những tínhnăng đã phát triển thành công
2.2 Nội dung công việc chi tiết:
Các tính năng đã hiện thực trong quá trình thực tập:
● UC 1.1: Create Collections on Sidebar
● UC 07: Create Private Collections
● UC 23: Collections Navigation (sidebar)
● UC 20: Search Collections
● UC 14: Delete Production Collections
2.2.1 UC 1.1: Create Collections on Sidebar:
Mô tả tóm tắt: UC này cho phép người dùng có thể tạo 1 collections trên sidebar
Công việc đã làm:
● Đã implements tất cả các requirements trong UC (UI + Logic + Check cácđiều kiện khi create)
● Viết Unit Test cho UC
Người hướng dẫn: Phạm Minh Chánh SV thực hiện: Phạm Ngọc Thịnh