Telecom Finance & Insurance E-Commerce, Retail & Distribution Media & Publishing Logistics & Transportation Chương 2: Nội dung thực tập Với nội dung thực tập được xây dựng dựa t
Trang 1BÁO CÁO THỰC TẬP
XÂY DỰNG PHẦN MỀM QUẢN LÝ CÔNG
VIỆC THEO NHÓM
Trang 2LỜI MỞ ĐẦU
Trong xã hội nước ta hiện nay, ngành công nghệ phần mềm đang đứng đầu trong sự pháttriển kinh tế của đất nước dẫn đến nhu cầu về nhân sự có chuyên môn, kỹ năng làm việc tốt luôntrong tình trạng khan hiếm Và cũng theo nghị định vừa ban hành của chính phủ là số hóa chínhphủ để phù hợp với nền công nghiệp 4.0 dẫn đến các yêu cầu cao hơn đối ngành công nghệthông tin và công nghệ phần mềm nói riêng của đất nước
Hiện nay đa số các công ty phần mềm của nước ta đều chọn đi theo hướng gia công cácsản phẩm phần mềm cho các công ty nước ngoài Một phần giúp chúng ta học hỏi được thái độlàm việc và cách phân tích yêu cầu của người dùng để có thể phát triển phần mềm Mặt khácgiúp chúng ta có thể tiếp cận, sử dụng, phát triển các sản phẩm phần mềm dựa trên các côngnghệ mới trong mồi trường thực tế Đem lại nguồn thu nhập to lớn cho đất nước và nâng caotrình độ khoa học của đất nước dựa trên của các nước đã phát triển
Công Ty TNHH Giải Pháp Phần Mềm Tường Minh (TMA Solutions) là một trong cáccông ty gia công phần mềm đầu tiên của nước ta trong thời kỳ hội nhập của đất nước Là mộttrong những lá cờ đầu tiên của nền gia công phần mềm nên vấn đề về gầy dựng niềm tin củacông ty lẫn nước ta là rất quan trọng Với tinh thần làm việc trách nhiệm, uy tín, đội ngũ nhânviên tràn đầy nhiệt huyết nên công ty đã hợp tác thành công với rất nhiều đối tác nổi tiếng nhưCông ty viễn thông Avaya, Nokia, các dự dán R&D của các công ty lớn nhỏ khắp các nước trênthế giới
Em đã chọn công ty TMA Solutions để thực hiện môn thực tập doanh nghiệp của mình.Với các kiến thức hiện có của em và những thiếu sót của bản thân cần phải khắc phục thì việcchọn một công ty chuyên về Outsourcing là một lựa chọn tốt nhất
Trang 3Đặc biệt cảm ơn anh Nguyễn Văn Cảnh (Team Leader), đã training cách dùng Linux,Docker, Git, Build và Debug sản phẩm trong môi trường local Hướng dẫn, giúp đỡ em tận tình
từ những khó khăn trong công việc, đến những khó khăn trong việc làm quen với môi trườngmới
Cảm ơn anh Nguyễn Minh Tuấn (Project Manager), đã chỉ dẫn em về cách làm báo cáo,lên kế hoạch, phân tích nghiệp vụ dựa trên yêu cầu, những kỹ năng không thể thiếu và nhữngkiến thức quan trọng để có thể làm ra một sản phẩm trong thời gian qua
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điềukiện em làm bài báo cáo này
Lục Thiên BìnhTpHCM, ngày 28 tháng 7 năm 2020
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
Mục Lục
Chương 1: Giới thiêu công ty thực tập 6
1 Giới thiệu công ty TMA Solutions 6
2 Sản phẩm của công ty 6
Chương 2: Nội dung thực tập 7
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 7
2 Nghiên cứu kỹ thuật 8
1) Các công cụ làm việc 8
2) Tìm hiểu Drupal Core ở mức cơ bản theo tài liệu của drupal 8
3) Tự tạo một module (custom module) 9
4) Tự tạo một theme (custom theme) 12
5) Tự tạo một component với VueJS (tương ứng với một template trong module) 13
3 Thực hiện project 13
4 Lịch làm việc 13
Chương 3: Chi tiết về project 16
1 Giới thiệu về sản phẩm 16
1) Các chức năng chính của sản phẩm 16
2) Quản lý các nhóm 16
3) Thực hiện 19
4) Kế hoạch 19
TÀI LIỆU THAM KHẢO 20
TỔNG KẾT 21
Trang 7Chương 1: Giới thiêu công ty thực tập
1 Giới thiệu công ty TMA Solutions
Vào tháng 3 năm 1997, bà Bùi Ngọc Anh thành lập công ty TMA với 6 kỹ sư tạiphòng khách nhà bà Sau hơn 20 năm phát triển, hiện tại công ty đang sở hữu 6 trụ
sở R&D tại Việt Nam và các văn phòng đại diện nằm trên khắp các châu lục trên thếgiới
TMA Solutions hiện chỉ đứng sau FPT Software xét về đội ngũ nhân lực nhưngdẫn đầu trong một số lĩnh vực chuyên biệt về phần mềm viễn thông, cạnh tranhchính với các công ty lớn của Ấn Độ
Trang 8 Telecom
Finance & Insurance
E-Commerce, Retail & Distribution
Media & Publishing
Logistics & Transportation
Chương 2: Nội dung thực tập
Với nội dung thực tập được xây dựng dựa trên một sản phẩm thực tế của công ty nhằmmục đích giúp sinh viên được tiếp xúc trực tiếp với yêu cầu của khách hàng, tích lũy kinhnghiệm cho bản thân khi thực hiện poroject “Xây dựng phần mềm quản lý công việc theonhóm” 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ôitrường phát triển game chuyên nghiệp
Xây dựng module và theme cho Drupal (Open Source CMS) Các công nghệ sử dụng
chính như:
Drupal - Open Source CMS (v8.7)
VueJS - Javascript Framework (v2.6) (embedded in drupal theme - javascript library)
Bootstrap - Free and open-source CSS framework (v4.4.1)
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, văn hóa giao tiếp, cách ứng
xử với nhau trong công ty, nội quy và chính sách của công ty
Được nghe người phụ trách về thực tập sinh giới thiệu về công ty, quá trình thànhlập và phát triên (như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cáchthức tổ chức của công ty
Ngoà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 tynhư thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong côngviệc…
Thực hiện các buổi giao lưu với bộ phận nhân sự để giải quyết các khuất mắt, vấn
đề về đi lại, lương bổng của công ty Giao lưu, chào hỏi với các anh chị trong projectnhận hướng dẫn
Kết quả : Hiểu thêm về công ty TMA Solutions, quá trình thành lập và phát triển Có
thêm các kỹ năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ
Trang 92 Nghiên cứu kỹ thuật
1) Các công cụ làm việc
Thời gian : 1 ngày
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các công
cụ sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như DockerMachine - sử dụng trong việc xây dựng môi trường local, SQLyog – giao diện làmviệc với MySQL Database chuyên nghiệp, Github – công cụ quản lý version củacode, PHPStorm – công cụ phát triển IDE chuyên nghiệp dành cho PHP
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các công cụ
với nhau, so với việc dùng các IDE
2) Tìm hiểu Drupal Core ở mức cơ bản theo tài liệu của drupal
Thời gian : 5 ngày
Nội dung : Đọc, phân tích và báo cáo theo Documentation của Drupal
- Link: https://www.drupal.org/docs/user_guide/en/index.html
- Chapter 1 Understanding Drupal
Các khái niệm cơ bản về Drupal như Module, Theme, Distributions, và types ofdata (Lưu vào database)
Trong đó khái niệm về Module là quan trọng nhất vì Drupal được phát triển theohướng module hóa Giúp dễ dàng cho việc phát triển và đóng góp cho cộng đồngOpen Source
- Chapter 2 Planning Your Site
Tìm hiểu các khái niệm cơ bản để lên kế hoạch thiết kế cho Nội Dung website của
mình dựa trên các công cụ mà Drupal đã cung cấp
Thiết kế về giao diện người dùng (Region + Layout) + Nội dung nằm trong phầngiao diện đó (Content)
- Chapter 3 Installation
Tìm hiểu về các yêu cầu hệ thống, version của tool, cài đặt và thực hiện trên môitrường máy tính cá nhân và chọn lựa database phù hợp cho sản phẩm của mình
- Chapter 4 Basic Site Configuration
Tổng quan về các khái niệm cấu hình trang web cơ bản
Trang 10Cách cài đặt module, cài đặt account người dùng (admin) và theme được pháttriển bởi cộng đồng open source.
- Chapter 6 Setting Up Content Structure
Tổng quan về các khái niệm cấu trúc nội dung Nhiệm vụ về các loại nội dung,phân loại và trường tham chiếu được được định nghĩa sẳn theo drupal
Content-type, Taxononmy, Forms and Widgets
- Chapter 7 Managing User Accounts
Tổng quan về khái niệm tài khoản người dùng và chi tiết về các tác vụ tài khoảnngười dùng phổ biến
Các vấn đề về Role và Permissions của user thao tác với hệ thống
- Chapter 8 Blocks
Khái niệm về phân chia block theo khung nhìn (Place block in region)
- Chapter 9 Creating Listings with Views
“Overview of view concepts and details of common view tasks”
- Chapter 10 Making Your Site Multilingual
- Chapter 11 Extending and Customizing Your Site
- Chapter 12 Preventing and Fixing Problems
- Chapter 13 Security and Maintenance
- Chapter 14 Final Thoughts
Thực hiện :
- Tìm hiểu, trao đổi, báo cáo với anh mentor về các vấn đề đã tìm hiểu
- Thực hiện demo cho các vấn đề báo cáo
Kết quả :
- Hiểu được cách thức hoạt động cơ bản và cách cài đặt của drupal
- Nâng cao khả năng đọc hiểu, ghi chép, giao tiếp với anh mentor
3) Tự tạo một module (custom module)
Thời gian : 5 ngày
Nội dung: Các kiến thức cơ bản cần có để phát triển một module.
- Thao tác Clear cache:
Tất cả các config liên quan đến drupal core sẽ được cache lại thành các file configlưu vào database Sau khi thực hiện việc phát triển module hoặc theme cho
module thì cần phải thực hiện việc clear cache để có thể apply config mới đó
Trang 11http://localhost/drupal/admin/config/development/performanceChọn nút Clear all cache
- Khái niệm cơ bản về file yml.
Trong một module các file với phần mở rộng (extension) là “yml” nằm trong thựcmục chính sẽ có chức năng khai báo các cài đặt của module đó Việc chỉnh sửahoặc tạo mới một file yml cần phải thực hiện việc “Clear cache” của hệ thống để
hệ thống có thể cập nhật lại module đó
Nếu file yml hoặc config trong đó bị lỗi vì sẽ báo lỗi trong lúc thực hiện clearcache
- File task_manager.info.yml
File yml có chứa “info” sẽ thực hiện việc cung cấp các thông tin cơ bản cho
module lúc thực hiện thao tác cài đặt module
- File task_manager.routing.yml
File yml có chứa “routing” sẽ khai báo các controller mà module cung cấp cho
drupal biết để drupal có thể cấu hình lại drupal core Trong thư mục mô-đunchúng ta khai báo cấu trúc thư mục tiêu chuẩn PSR-4 là /src/Controller và các filecontroller với đuôi là php sẽ nằm trong đây Từng route khai báo trong file yml có
chứa “routing” sẽ tương ứng với 1 function trong file php.
- File task_manager.services.yml
File yml có chứa “services” sẽ khai báo các service mà module cung cấp cho
drupal biết để drupal có thể cấu hình lại drupal core Trong thư mục mô-đunchúng ta khai báo cấu trúc thư mục tiêu chuẩn PSR-4 là /src/Services và các fileservice với đuôi là php sẽ nằm trong đây Từng service khai báo trong file yml có
chứa “services” sẽ tương ứng với 1 file php
Việc khai báo thành các file service theo định nghĩa của drupal sẽ giúp cho ngườidùng có thể dùng lại trong một module khác Thông thường các service sẽ đượcgọi bởi các controller theo định nghĩa của drupal
Trang 12- File task_manager.module
File có đuôi là “.module” sẽ được dùng để gọi các hook của drupal Hoặc chỉnh
sửa lại chức năng của các hook đó
Có thể hiểu “hook” là một trong những cách để các đun tương tác với các đun của các nhà phát triển khác hoặc của Drupal (Do các chỉnh sửa với modulenằm trong drupal core sẽ mất đi khi clear cache)
mô File task_manager.install
File có đuôi là “.install” sẽ gọị khi cập install hoặc update module Nó sẽ hỗ trợ
cho việc generate ra các dữ liệu cần thiết cho module hoặc việc tạo table màkhông cần phải thao tác bằng tay trực tiếp lên database
- Phân quyền cho các controller.
Chúng ta thực hiện việc phân quyền bằng các file gọi là access check Các access
check này sẽ được drupal định nghĩa dưới dạng là 1 service đặc biệt Trong thư
mục mô-đun chúng ta khai báo cấu trúc thư mục tiêu chuẩn PSR-4 là /src/Access
và các file access check với đuôi là php sẽ nằm trong đây Từng access check khai
báo trong file yml có chứa “services” sẽ tương ứng với 1 file php.
- Truy cập vào database
Theo yêu cầu của anh mentor thì em phải xây dựng một class DAO để có thể truycập vào database theo hướng viết các câu truy vấn SQL Ngoài ra ta còn có thể sửdụng thuộc tính entity theo khái báo của drupal
Trong thư mục mô-đun chúng ta khai báo cấu trúc thư mục tiêu chuẩn PSR-4 là/src/DAO và các file dao với đuôi là php sẽ nằm trong đây
- Template cho module
Template của module sẽ được định dạng bằng các file html.twig và sẽ được gọibằng các hook khai báo trong file “.module”
Thực hiện :
- Viết các route cho module theo tiêu chuẩn, cấu trúc của drupal
- Làm các bài tập thực hành nhỏ theo yêu cầu của mentor hướng dẫn
Trang 13- Hiểu được những khái niệm cơ bản trong việc xây dựng một module trong drupal.
- Đã làm được một website cơ bản với các chức năng thêm xóa sửa
4) Tự tạo một theme (custom theme)
Thời gian : 5 ngày
Nội dung : Các kiến thức cơ bản cần có để phát triển một theme cho module.
- File task_manager.info.yml:
File yml có chứa “info” sẽ thực hiện việc cung cấp các thông tin cơ bản cho
module lúc thực hiện thao tác cài đặt theme
- File task_manager.libraries.yml
File yml có chứa “libraries” sẽ khai báo các file css và javascript mà theme
cung cấp cho drupal biết để drupal có thể cấu hình lại drupal core
- Lập trình bằng VueJS (javascript library for theme)
Các template tương nằm trong thư mục “templates” của module sẽ tương ứng với
1 component của VueJS Đây là cách mà project hiện tại của công ty dùng để pháttriển “Front-end” cho website Việc xây dựng thành từng module giúp dễ dàng tái
sử dụng, bảo trì và phát triển thêm các tính năng mới
Các kiến thức của phần này yêu cầu cần có các kiến thức cơ bản khác ngoàidrupal (Phần sau)
Trang 145) Tự tạo một component với VueJS (tương ứng với một template trong module)
Thời gian : 5 ngày
Nội dung : Các kiến thức cơ bản cần có để phát triển một VueJS component cho 1
template của module
- Tất cả các file “.vue” sẽ được khai báo là một component với VueJS giúp thuậntiện cho việc phát triển kiểm soát
- Trong file “.html.twig” trong thư mục “templates” của module sẽ thực hiện việcgọi các component của thư viện VueJS như một component bình thường vớijavascript
- Sử dụng browserify để đóng gói (build) tất cả các component thành 1 filejavascript duy nhất để giảm bớt băng thông cho server
Chi tiết đồ án sẽ được nói ở phần sau
4 Lịch làm việc
Tuần Công việc Người hướng dẫn Mức độ hoàn
thành
Nhận xét của người hướng dẫn
1 - Tìm hiểu về công
ty, cách tổ chức củacông ty
- Làm quen với cáccông cụ làm việctrong công ty
- Học cách trao đổi,
Anh Nguyễn MinhTuấn
Chị Trang Bùi
Trang 152 - Học các kỹ năngở mức cơ bản
mềm theo yêu cầucông ty
TuấnChị Trang Bùi
3
- Viết user story theoyêu cầu của kháchhàng (mentor)
- Thiết kế database,tìm hiểu role củauser tương tác với
hệ thống
- Hoàn thành việcnghiên cứu drupaltheo tài liệu
Anh Nguyễn MinhTuấn
Anh Nguyễn VănCảnh
4
- Xây dựng các route/
API cho từng chứcnăng (module)
- Xây dựng cácaccess check chotừng route
Anh Nguyễn MinhTuấn
Anh Nguyễn VănCảnh
5
- Tích hợp VueJS vàcác thư việnjavascript vào trongtheme của drupal
- Config environmentphù hợp cho việcbuild và debuglocal
Anh Nguyễn VănCảnh
6
- Xây dựng giao diệncho các route đã tạo
- Tích hợp thêm cácthư viện javascriptkhác để đáp ứng nhucầu của project
Anh Nguyễn VănCảnh
7 Giai đoạn Alpha:
- Hoàn thiện sảnphẩm để demo chomentor
- Chỉnh sửa giao diệntheo hướng nâng
Anh Nguyễn VănCảnh