1 ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦM MỀM BÁO CÁO THỰC TẬP DOANH NGHIỆP Công Ty TNHH Giải Pháp Phần Mềm Tường Minh (TMA Solutions) LỚP KTPM 2019 Người phụ tr[.]
ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦM MỀM - BÁO CÁO THỰC TẬP DOANH NGHIỆP Công Ty TNHH Giải Pháp Phần Mềm Tường Minh (TMA Solutions) LỚP KTPM 2019 Người phụ trách: Võ Đình Thiên Sinh viên thực hiện: Trương Công Hưng - 19521588 LỜI CẢM ƠN Trong thời gian tham gia thực tập Công Ty TNHH Giải Pháp Phần Mềm Tường Minh (TMA) - khoảng thời gian quý báu mà sinh viên trải nghiệm đào tạo môi trường làm việc chuyên nghiệp với hỗ trợ lớn từ anh/chị hướng dẫn công ty Đây hội tốt cho sinh viên vận dụng kiến thức học trường Đại học Công Nghệ Thông Tin thành phố Hồ Chí Minh mơi trường lý tưởng cho sinh viên có hội trải nghiệm với cơng việc, quy trình thực tế mơi trường doanh nghiệp giúp sinh viên bổ sung kiến thức cịn thiếu nâng cao kiến thức chun mơn Là lần tham gia tiếp xúc với quy trình mơi trường thực tế ngồi sư phạm, sinh viên khơng thể tránh thiếu sót bỡ ngỡ với hướng dẫn tận tình giảng viên bảo tận tình anh/chị công ty hỗ trợ nhiều cho sinh viên trình làm quen với quy trình làm việc văn hóa cơng ty giúp đỡ sinh viên công việc, nhiệm vụ trao trình thực tập quý công ty Nhờ kiến thức mà giảng viên khoa KTPM nói riêng giảng viên trường Đại học Cơng Nghệ Thơng Tin nói chung hướng dẫn cho sinh viên có kiến thức để từ sinh viên có tiền đề để tiếp cận vào công việc trình thực tập cơng việc tương lai Đặc biệt, sinh viên xin cám ơn quý Công Ty TNHH Giải Pháp Phần Mềm Tường Minh (TMA) giúp đỡ, hướng dẫn công việc tạo điều kiện để sinh viên tham gia hồn thành khóa thực tập Cám ơn anh chị Quản lý hỗ trợ giải đáp thắc mắc, khó khăn kịp thời cho sinh viên cám ơn tất anh chị nhân viên công ty tận tình hướng dẫn cơng việc tạo điều kiện tốt để sinh viên hồn thành tốt cơng việc, nhiệm vụ giao trình thực tập cơng ty Vì điều kiện thời gian kinh nghiệm thực tế cịn hạn chế nên khơng thể tránh thiếu báo cáo tránh khỏi, sinh viên mong nhận đánh giá, góp ý q báu q thầy thơng cảm cho thiếu sót cịn thiếu báo cáo để sinh viên hồn thiện cho báo cáo sau có hội củng cố, rút kinh nghiệm kiến thức để phục vụ cho công việc sau Lời cuối, sinh viên xin chúc q thầy có thật nhiều sức khỏe thành công công tác sống Sinh viên xin chân thành cảm ơn! TP HCM, ngày … tháng … năm 2022 Sinh viên thực Trương Công Hưng ĐÁNH GIÁ KẾT QUẢ THỰC TẬP CỦA KHOA TP HCM, ngày … tháng … năm 2022 Giảng viên MỤC LỤC CHƯƠNG TỔNG QUAN VỀ CƠ SỞ THỰC TẬP 1.1 Tổng quan công ty - Công ty TNHH Giải Pháp Phần Mềm Tường Minh 1.2 Sơ đồ tổ chức 1.3 Lĩnh vực hoạt động CHƯƠNG 2: TỔNG QUAN VỀ KHÓA THỰC TẬP 2.1 Thông tin chung 2.2 Mục tiêu thực tập CHƯƠNG KIẾN THỨC – KỸ NĂNG ĐƯỢC TẬP HUẤN 3.1 Typescript 3.2 Angular 3.3 TailwindCSS 3.4 Làm quen với công cụ, mail, training skill công ty cấp 3.4 Cách làm việc theo quy trình Scrum phần mềm Jira 3.5 Làm việc với GIT 10 CHƯƠNG 4: TÓM TẮT QUÁ TRÌNH THỰC TẬP 12 4.1 Quy trình hoạt động trình thực tập .12 4.2 Lịch thực tập 12 4.3 Bảng chi tiết công việc 12 4.4 Các công cụ sử dụng trình làm việc .15 CHƯƠNG 5: MÔ TẢ DỰ ÁN THỰC TẬP 16 5.1 Thông tin chung 16 5.1 Cấu trúc thư mục 16 CHƯƠNG ĐÁNH GIÁ & NHẬN XÉT 17 6.1 Kết đạt .17 6.2 Khó khăn & hạn chế .17 6.3 Bài học kinh nghiệm 17 6.4 Quy trình cơng việc hoạt động tương lai 18 TÀI LIỆU THAM KHẢO 19 CHƯƠNG TỔNG QUAN VỀ CƠ SỞ THỰC TẬP 1.1 Tổng quan công ty - Công ty TNHH Giải Pháp Phần Mềm Tường Minh Công ty TNHH Giải Pháp Phần Mềm Tường Minh (còn biết đến với TMA Solutions) thành lập vào tháng năm 1997 để cung cấp chất lượng dịch vụ gia công phần mềm cho công ty hàng đầu tồn giới Đây cơng ty gia cơng phần mềm lớn thành phố Hồ Chí Minh với khoảng gần 4,000 kỹ sư (thống kê năm 2022) TMA cung cấp đầy đủ dịch vụ phần mềm, từ kiểm tra bảo dưỡng để phát triển chu kỳ đầy đủ giải pháp kết thúc Sức mạnh TMA khả xử lý dự án lớn phức tạp với chất lượng phù hợp - Hiện tại, TMA có 12 trụ sở thành phố lớn giới có trụ sở thành phố Hồ Chí Minh (trụ sở đặt địa 111 Nguyễn Đình Chính, Quận Phú Nhuận, TP Hồ Chí Minh) chi nhánh nước Cannada, Mỹ, Nhật Bản, Úc, - Quy trình quản lý chất lượng đạt chuẩn: ISO 9000 (năm 2005), TL 9000, CMMI-Level (năm 2006), CMMI-Level (năm 2011) Agile (năm 2012) - Công ty DNTN Dịch vụ Tường Minh (TMA Solution) thành lập vào tháng năm 1997 phòng khách nhà bà Bùi Ngọc Anh với kỹ sư - Đến cơng ty gồm 10 trụ sở, trụ sở 111, Đường Nguyễn Đình Chính, Quận Phú Nhuận, Thành Phố Hồ Chí Minh, Việt Nam Hình 1: Hình ảnh cơng ty TMA Solution Hình 2: Biểu đồ nhân lực công ty từ lúc thành lập đến 1.2 Sơ đồ tổ chức CEO/ Chairman • Delivery • Business/ IT • CDF • Finance/ Legal • TMA Overseas • QMS/PMO • HR/ Admin Support Chú thích từ ngữ sử dụng: + Board of Advisors: Cố vấn cho công ty + CEO: Giám đốc điều hành công ty + Delivery Centers: Trung tâm chuyển giao sản phẩm cho khách hàng + TMA Mobile Solutions (TMS): Phát triển ứng dụng di động, thử nghiệm tạo dịch vụ điện thoại di động, giá trị gia tăng ứng dụng cho nhà khai thác di động, cung cấp nội dung doanh nghiệp + ICT R&D Center (iRDC - Information and Communications Technology Research & Development Center): Trung tâm nghiên cứu phát triển công nghệ thông tin truyền thông + TMA Training Center (TTC): Trung tâm đào tạo nhân lực + Student Development Center (SDC): Có nhiệm vụ liên kết với sinh viên, nhận sinh viên thực tập công ty nhằm thu hút bồi dưỡng nhân tài + Business Development: Tăng cường quan hệ với khách hàng tạo thêm mối quan hệ với khách hàng khác 1.3 Lĩnh vực hoạt động Hình 3: Các lĩnh vực hoạt động cơng nghệ cơng ty CHƯƠNG 2: TỔNG QUAN VỀ KHĨA THỰC TẬP 2.1 Thơng tin chung • Thời gian thực tập: tháng • Người hướng dẫn (mentor): Võ Đình Thiên 2.2 Mục tiêu thực tập ❖ Trong giai đoạn thực tập, thực tập sinh đào tạo kiến thức sau: • Trong giai đoạn đầu thực tập sinh đào tạo kiến thức nâng cao • Tìm hiểu mảng Backend (tuần đầu) Frontend (các tuần sau) Các kiến thức tảng yêu cầu thiết yếu phải nắm bắt giai đoạn • Trong giai đoạn thực tập sinh phải nắm bắt cách làm việc theo nhóm, theo phận dự án Sử dụng thành thạo cơng cụ hỗ trợ làm việc nhóm quản lý code GIT, Jira,… • Luyện tập phương thức giao tiếp thơng qua Skype • Giai đoạn thực tập sinh tham gia trực tiếp vào dự án thực tế, giai đoạn nhóm phân công vào sản phẩm thực tế công ty, giai đoạn thực tập sinh phải tìm hiểu số framework cụ thể phục vụ cho dự án (Ở Angular dành cho Frontend) • Thực tập sinh phải nắmm kiến thực học giai đoạn trước sử dụng để hoàn thành nhiệm vụ giao giai đoạn làm dự án ❖ Kiến thức kỹ mềm: • Được đào tạo kỹ mềm phân tích nghiệp vụ quy trình làm việc • Ngồi kỹ thuyết trình, giao tiếp, xưng hơ, làm việc nhóm, trình bày ý kiến, dần phát triển trình đào tạo CHƯƠNG KIẾN THỨC – KỸ NĂNG ĐƯỢC TẬP HUẤN 3.1 Typescript TypeScript dự án mã nguồn mở phát triển Microsoft, coi phiên nâng cao Javascript việc bổ sung tùy chọn kiểu tĩnh lớp hướng đối tượng mà điều khơng có Javascript TypeScript sử dụng để phát triển ứng dụng chạy client-side (Angular2) server-side (NodeJS) Tuy đời sau TypeScript nhận đón nhận từ lập trình viên ❖ Những ưu điểm Typescript: • Dễ phát triển dự án lớn: Với việc sử dụng kỹ thuật lập trình hướng đối tượng nên TypeScript giúp phát triển dự án lớn cách dễ dàng • Nhiều Framework lựa chọn: Hiện Javascript Framework dần khuyến khích nên sử dụng TypeScript để phát triển, ví dụ Ionic 2.0 đặc biệt Angular • Hơ trợ tính Javascript phiên nhất: TypeScript đảm bảo việc sử dụng đầy đủ kỹ thuật Javascript, ví dụ version ECMAScript 2015 (ES6) • Là mã nguồn mở: TypeScript mã nguồn mở nên bạn hồn tồn sử dụng mà khơng phí, bên cạnh cịn cộng đồng hỗ trợ đơng đảo • TypeScript Javscript: Bản chất TypeScript biên dịch tạo đoạn mã Javascript nên bạn chạy đâu miễn có hỗ trợ biên dịch Javascript Ngồi bạn sử dụng trộn lẫn cú pháp Javascript vào bên TypeScript, điều giúp lập trình viên tiếp cận TypeScript dễ dàng 3.2 Angular Angular javascript framework google phát triển để xây dựng Single Page Application (SPA) JavaScript , HTML TypeScript Angular cung cấp tính tích hợp cho animation, http service có tính auto-complete, navigation, toolbar,menus,… Code viết TypeScript , biên dịch thành JavaScript hiển thị tương tự trình duyệt ❖ Ưu điểm Angular: • Custom Components: Angular cho phép người dùng xây dựng component riêng họ đóng gói chức với logic kết xuất thành phần tái sử dụng Nó hoạt động tốt với component web • Data Binding: Angular cho phép người dùng dễ dàng di chuyển liệu từ mã JavaScript sang view phản hồi với kiện người dùng mà không cần phải viết mã theo cách thủ cơng • Dependency Injection: Angular cho phép người dùng viết service mô-đun đưa chúng vào nơi họ cần Điều cải thiện khả kiểm tra khả tái sử dụng service giống • Testing: Bạn dễ dàng Unit test phần ứng dụng • Comprehensive: Angular full-fledged Framework cung cấp giải pháp tiện ích cho giao tiếp máy chủ, định tuyến ứng dụng bạn • Browser Compatibility: Angular cung cấp đa tảng tương thích với nhiều trình duyệt Một ứng dụng Angular thường chạy tất trình duyệt (Ví dụ: Chrome, Firefox) hệ điều hành, chẳng hạn Windows, macOS Linux ❖ Nhược điểm Angular: Ưu điểm Angular nhược điểm Angular viết Typescript, thế, ta muốn dùng Angular, ta cần phải học Typescript 3.3 TailwindCSS Là utility-first CSS framework, giống Bootstrap, Tailwind có class built-in mà dùng Tailwind CSS có nhiều class bao gồm thuộc tính CSS khác quan trọng, dễ dàng mở rộng tạo class class Một số ưu điểm bật Tailwind CSS: • Xây dựng giao diện cần khai báo class file html • Chỉ xuất file css chứa class sử dụng giao diện • Dễ dàng thiết lập Responsive file html • Hỗ trợ tương tác hover, focus… class html • Tối ưu cấu trúc html css có tính lặp lại • Định nghĩa thêm class phối hợp class có sẵn tailwind • Dễ dàng mở rộng, chỉnh sửa biến đổi • Tăng tốc độ code với Extension thông minh Visual Studio Code ❖ Nhược điểm: • Khá khó khăn cho người cần phải nắm css • Khi sử dụng tailwind ta phải sử dụng số class nhiều, số class tương ứng với với số thuộc tính mà bạn muốn cài đặt 3.4 Làm quen với công cụ, mail, training skill công ty cấp Hình 4: webmail dùng để nhận thơng báo Hình 5: Trang dùng để training kỹ mềm, văn hóa cơng ty 3.4 Cách làm việc theo quy trình Scrum phần mềm Jira Jira ứng dụng theo dõi quản lý công việc dự án, phát triển công ty phần mềm Atlassian Australia Cách thức hoạt động JIRA dựa vào trọng tâm kết cơng việc, sử dụng linh hoạt sử dụng ❖ Các tính bản: • Quản lý, theo dõi tiến độ dự án • Quản lý tasks, bugs, cải tiến, tính mới,… • Tạo lưu lại lọc có cấu hình cao (dynamic queries) xuyên suốt vấn đề hệ thống; chia sẻ lọc với người sử dụng khác, đăng ký nhận kết qua hệ thống thư điện tử định kỳ • Xây dựng quy trình làm việc tương thích với yêu cầu dự án • Bảng dashboard cung cấp cho người dùng không gian riêng để xem thông tin liên quan đến cá nhân • Cung cấp nhiều loại báo cáo thống kê với nhiều loại biểu đồ khác phù hợp với nhiều loại hình dự án đối tượng người dùng Hình 6: Trang dashboard Jira ❖ Các công việc ngày tương tác với Jira: Hình 7: Task trạng thái “In review” Khi task duyệt sang “Done” 3.5 Làm việc với GIT GIT hệ thống quản lý phiên phân tán (Distributed Version Control System – DVCS), hệ thống quản lý phiên phân tán phổ biến GIT cung cấp cho lập trình viên kho lưu trữ (repository) riêng chứa toàn lịch sử thay đổi VCS viết tắt Version Control System hệ thống kiểm soát phiên phân tán mã nguồn mở Các VCS lưu trữ tất file toàn dự án ghi lại toàn lịch sử thay đổi file Mỗi thay đổi lưu lại thành version (phiên bản) VCS nghĩa hệ thống giúp lập trình viên lưu trữ nhiều phiên khác mã nguồn nhân (clone) từ kho chứa mã 10 nguồn (repository), thay đổi vào mã nguồn local ủy thác (commit) đưa lên server nơi đặt kho chứa ❖ Quy trình làm việc với GIT: Khởi đầu, ta cần clone code theo cú pháp : git clone -b [branch name] [url] Khi bắt đầu tạo branch, ta cần chắn checkout từ branch develop pull code nhất, ta sử dụng: git checkout develop git pull Sau nhận task Jira với mã task (VD: CRM-123) Sử dụng: git checkout -b feature/CRM-123 - để tạo branch cho task CRM-123 Sau code xong, sử dụng câu lệnh: git commit –am “comment” để add vào stage commit code thay đổi vào local Sau push lên repository câu lệnh: git push set-upstream origin feature/CRM-123 Hình 8: Gitlab cơng ty 11 CHƯƠNG 4: TĨM TẮT Q TRÌNH THỰC TẬP 4.1 Quy trình hoạt động q trình thực tập ❖ Trong trình thực tập, công việc thực theo quy định sau: • Thực cơng việc theo quy trình Scrum, cơng việc Manager tạo Jira • Nhận cơng việc Jira ước lượng thời gian hoàn thành task (story point) • Chuyển status task Jira thành “In Progress” thực task phân cơng • Nếu có khó khăn, hỏi trợ giúp từ người có chức vụ khả cao team • Task sau hồn thành tạo branch tạo pull request lên GitLab • Mỗi pull request tạo assignee cho thành viên nhóm để review code cho • Sau approve pull request merge code vào branch develop chuyển trạng thái task Jira sang “QA” (manager) • Có daily meeting để thực báo cáo tiến độ công việc ngày Skype chung (Nếu off chat tóm tắt tiến độ) • Sau sprint (2 tuần), có buổi retro cơng việc hoàn thành, cần phải cố gắng cải thiện nhược điểm khắc phục 4.2 Lịch thực tập Hình thức thực tập: part-time Trong tuần: Thứ 3, chiều thứ 4, thứ chiều thứ Trong ngày: sáng từ 8:30 đến 12:00 chiều từ 13:30 đến 18:00 4.3 Bảng chi tiết công việc STT THỜI GIAN Tuần 1(15/8-19/8) NỘI DUNG GHI CHÚ • Tìm hiểu quy định cơng ty • Nhận máy tính 12 • Nhận thẻ internship - Cài đặt phần mềm cần thiết • -Tham gia “Information Security Awareness Training” • Học Java Springboot mơ hình MVC Tuần 2(22/8-26/8) • Chuyển sang Front end • Tìm hiểu Angular • Cài đặt mơi trường cho Angular • Tìm hiểu TypeScript • Tìm hiểu TailwindCSS Tuần 3(29/9-1/9 • Tiếp tục học Angular nghỉ lễ 2/9) • Thực hành kiến thức học thơng qua tạo form đơn giản web Tuần (5-9 -9/9) • Tiếp tục học Angular • Học cách sử dụng gitlab • Học cách sử dụng Jira, giao tiếp qua Skype • Tham gia dự án • Implement date picker components 13 Tuần (12/9-16/9) • Forgot password UI • Implement date picker components Tuần 6(19/9-23/9) • Implement PathView UI component • Create primary button Tuần (26/9-30/9) • Implement Structural Drawing Component • Implement Events Component Tuần (3/10-7/10) • Implement Notification Component Tuần (10/1014/10) • Integrate Contract Summary API • Integrate Contract General Info API 10 Tuần 10(17/1021/10) • Implement CustomerDetails-Card-IncludeEditing UI • Integrate Comment APIs 11 Tuần 11 (24/1028/10) • Bug: Integrate Comment APIs • Bug: Can upload comment when leaving comment as blank 12 Tuần 12(1/114/11) • Bug: The UI is not showed the nested comment on all pages(Product, Customer, Contract) 14 • Update: Integrate Comment APIs 13 Tuần 13(7/1111/11) • Integrate User-ID/Passport manage APIs • Load events from APIs and integrate to events card 4.4 Các cơng cụ sử dụng q trình làm việc Các cơng cụ sử dụng q trình thực tập cơng ty bao gồm: + Trình soạn thảo/ biên tập code: Visual Studio Code + Phần mềm hỗ trợ tương tác API: Postman, Swagger, ModHeader + Công cụ quản lý công việc: Jira + Kênh trao đổi công việc: Skype + Kênh nhận thông tin, mail cá nhân: Webmail.tma.com.vn + Hệ thống quản lý mã nguồn: GitLab +Design UI: Zeplin, Figma 15 CHƯƠNG 5: MÔ TẢ DỰ ÁN THỰC TẬP 5.1 Thông tin chung Mô tả dự án: Dự án quản lý quan hệ khách hàng (CRM) Giúp doanh nghiệp tiếp cận giao tiếp với khách hàng cách có hệ thống 5.1 Cấu trúc thư mục Hình 9: Cấu trúc thư mục dự án 16 ... 19 CHƯƠNG TỔNG QUAN VỀ CƠ SỞ THỰC TẬP 1.1 Tổng quan công ty - Công ty TNHH Giải Pháp Phần Mềm Tường Minh Công ty TNHH Giải Pháp Phần Mềm Tường Minh (còn biết đến với TMA Solutions) thành... tiền đề để tiếp cận vào công việc q trình thực tập cơng việc tương lai Đặc biệt, sinh viên xin cám ơn quý Công Ty TNHH Giải Pháp Phần Mềm Tường Minh (TMA) giúp đỡ, hướng dẫn công việc tạo điều kiện... gia thực tập Công Ty TNHH Giải Pháp Phần Mềm Tường Minh (TMA) - khoảng thời gian quý báu mà sinh viên trải nghiệm đào tạo mơi trường làm việc chun nghiệp với hỗ trợ lớn từ anh/chị hướng dẫn công