Tải bản đầy đủ (.docx) (21 trang)

BÁO CÁO THỰC TẬP LẬP TRÌNH FULLSTACK VỚI ANGULAR VÀ .NET C#

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (336.31 KB, 21 trang )

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

LẬP TRÌNH FULLSTACK VỚI
ANGULAR VÀ .NET C#

Cơng ty thực tập

: Công ty TNHH Alpaca Việt Nam

Người phụ trách

: Phạm Như Ngọc

Thực tập sinh

: Trần Quốc Thịnh

TP. Hồ Chí Minh, tháng 06 năm 2022


2

2

LỜI MỞ ĐẦU
Ngày nay, không một ai là không thừa nhận rằng, cơng nghiệp hố, hiện đại hố đã và
đang trở thành xu thế tất yếu của toàn xã hội, với tốc độ chuyển giao nhanh chóng mặt, gắn liền
với sự phát triển của ngành Công nghệ thông tin. Với nhu cầu ngày càng tăng, cùng với sự phát


triển sôi động của những công nghệ mới, ngành Công nghệ Phần mềm gần như trở thành động
lực chính cho sự phát triển của ngành Cơng nghệ thơng tin nói chung, và trở thành cánh tay đắc
lực cho công cuộc hiện đại hố đất nước.
Việt Nam khơng những khơng nằm ngồi xu thế này, mà cịn thích nghi vơ cùng tốt với
sự phát triển đó. Kể từ khi Internet được du nhập và trở nên phổ biến, nhu cầu tiếp cận với
thông tin, làm chủ cơng nghệ, tận dụng sự tiện ích của máy tính điện tử ở nước ta tăng lên
nhanh chóng, và bùng nổ trong thập niên 2010. Các ơng lớn cơng nghệ từ nước ngồi tranh
nhau bước vào cuộc chơi này, bên cạnh đó là những cơng ty hồn toàn hoặc một phần của người
Việt cũng xuất hiện nhiều như nấm sau mưa. Hàng loạt hướng phát triển của Cơng nghệ Phần
mềm cũng được định hình, trong đó phải kể đến lập trình web app.
Nhu cầu về lập trình phần mềm rất đa dạng, rất nhiều doanh nghiệp thuộc về gần như
mọi ngành nghề đều đang có nhu cầu số hố ở một mức độ nào đó. Đặc điểm chung của thị
trường này là dễ tiếp cận, dễ nắm bắt, tăng trưởng nhanh nhưng cũng không quá trở nên chuyên
biệt, phức tạp. Mặt khác, sự phát triển không ngừng của các cơng nghệ lập trình web, tốc độ cho
ra đời ứng dụng nhanh hơn, đa dụng hơn, thuận tiện hơn, đáp ứng được thơng lượng lớn hơn, có
thể thấy lập trình Web app gần như hồn tồn đáp ứng được những nhu cầu trên. Vì lý do này,
em quyết định chọn lập trình web làm định hướng cho việc học tập của mình.
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như
muốn được tham gia làm web app trong một môi trường chuyên nghiệp, em có dự định là sẽ
thực tập trong học kì 2 này. Vì vậy, em quyết định chọn Alpaca Vietnam - một môi trường năng
động, chuyên biệt - là nơi sẽ giúp em thực hiện được dự định này.

2

Phạm Như Ngọc

Trần Quốc Thịnh


3


3

LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty TNHH Alpaca Việt Nam đã tạo điều kiện cho em có
cơ hội được thực tập tại cơng ty.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của nhóm trainer, 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 web
app. Chân thành cảm ơn các anh chị trong nhóm trainer đã bỏ ra nhiều thời gian,cơng sức để
hướng dẫn chúng em hoàn thành đợt thực tập này.
Đặc biệt cảm ơn anh Phạm Như Ngọc đã training Angular và .Net, cách sử dụng Angular,
CkEditor, Docker, VCS,… hướng dẫn, giúp đỡ cho em tận tình cả những khó khăn trong cơng
việc, đến những khó khăn việc làm quen với môi trường mới; cảm ơn chị Vũ Minh Anh đã
training Scrum, hỗ trợ em rất nhiều về các vấn đề Schedule Management trong quá trình làm
việc; cảm ơn anh Trần Hồng Hải đã chỉ dẫn em về cách làm báo cáo, lên kế hoạch, những kỹ
năng không thể thiếu để 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ều
kiện em làm bài báo cáo này.
Trần Quốc Thịnh
TpHCM, ngày 12 tháng 05 năm 2022

3

Phạm Như Ngọc

Trần Quốc Thịnh


4


4

NHẬN XÉT CỦA KHOA
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
.......................................................................................................................................................

4

Phạm Như Ngọc

Trần Quốc Thịnh


5


5

MỤC LỤC

5

Phạm Như Ngọc

Trần Quốc Thịnh


6

1

6

CHƯƠNG 1: CƠNG TY THỰC TẬP

1.

Giới thiệu cơng ty Alpaca Vietnam
Alpaca, tiền thân là công ty Unicorn Solutions, được thành lập vào năm 2014.
Unicorn là đối tác chiến lược, đóng vai trị là nhà thầu phụ của một tập đồn cung
cấp CNTT toàn cầu cho ngành bảo hiểm. Nhiều dự án của Unicorn được thực hiện
với các công ty bảo hiểm hàng đầu Việt Nam (Bảo Việt, Bảo Minh) và các công ty
insurtech tại Singapore (MyInsurer, Zensur, 360F).
Tháng 6 năm 2020, Alpaca chính thức được thành lập với nguồn nhân lực chủ
chốt từ Unicorn, với mục tiêu trở thành nhà cung cấp giải pháp CNTT lõi cho ngành

bảo hiểm phi nhân thọ tại thị trường Việt Nam. Hiện Alpaca có 2 văn phòng tại Hà
Nội và TP. HCM.

2.

Sản phẩm của cơng ty


Hiện đại hóa hệ thống bảo hiểm lõi

Các cơng ty bảo hiểm nhận thấy rằng các hệ thống cốt lõi, như hệ thống đánh giá
rủi ro, quản lý đơn bảo hiểm, xử lý bồi thường, v.v. hiện nay đang dần lỗi thời. Hiện
đại hóa các hệ thống kế thừa cho phép họ điều chỉnh các chiến lược kinh doanh phù
hợp với mục tiêu, tận dụng công nghệ mới và cải thiện việc cung cấp sản phẩm. Nền
tảng của việc hiện đại hóa hệ thống cốt lõi là sự chuyển đổi từ cơ sở mã và phần
cứng được kiểm soát chặt chẽ thành các ứng dụng đám mây được mô-đun hóa, trong
đó các lớp truyền thống được chuyển đổi thành các thành phần chỉ sử dụng khi cần
thiết. Alpaca làm việc với khách hàng để cung cấp các giải pháp kỹ thuật số toàn
diện. Hiện tại, khách hàng của Alpaca gồm có Bảo hiểm Bảo Long, Bảo hiểm
6

Phạm Như Ngọc

Trần Quốc Thịnh


7

7




Dịch vụ tư vấn chiến lược/ IT

Những cơng ty đối thủ mới gia nhập thị trường và sự đổi mới trong chuỗi giá trị
bảo hiểm đang chuyển hóa ngành bảo hiểm bằng những quan điểm mới, từ trải
nghiệm kỹ thuật số và phân tích rủi ro đến InsurTech và hơn thế nữa. Vì vậy các
cơng ty bảo hiểm cần khai thác sức mạnh của công nghệ và nắm bắt cơ hội mới để
hợp lý hóa quy trình kinh doanh. Tại Alpaca, chúng tôi hợp tác chặt chẽ với bạn để
phát triển chiến lược CNTT tập trung vào nhu cầu của doanh nghiệp. Từ việc đánh
giá ban đầu đến thực hiện chiến lược bằng những hành động cụ thể, phương pháp tư
vấn và kiến thức sâu rộng của chúng tôi sẽ đóng góp vào thành cơng của cơng ty bạn.


Dịch vụ cung cấp nhân sự

Không phải tất cả các tổ chức đều có nguồn lực CNTT và bộ kỹ năng cần thiết để
triển khai công nghệ hoặc giải pháp phù hợp. Các dịch vụ CNTT chuyên nghiệp của
Alpaca cung cấp các giải pháp hiệu quả cho các vấn đề kinh doanh phức tạp nhất của
bạn. Chúng tôi cung cấp kiến thức chuyên môn về các giải pháp phần cứng và phần
mềm, đồng thời chia sẻ các kỹ năng vận hành cần thiết để đáp ứng các thách thức
CNTT của doanh nghiệp. Chúng tôi sẽ cùng làm việc với bạn để lập kế hoạch, thiết
kế, triển khai và hỗ trợ chiến lược CNTT, nhằm thực hiện thành công các dự án trong
tương lai.

7

Phạm Như Ngọc

Trần Quốc Thịnh



8

2

8

CHƯƠNG 2: NỘI DUNG THỰC TẬP

Đợt thực tập với chủ đề “Lập trình fullstack với Angular và .Net C#” nhằm mục đích
giúp sinh viên thực tập được đào tạo tồn diện về lập trình backend trên nền tảng .Net
Framework, đồ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 ứng dụng web 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 : 1 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
(như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của
cơng ty .
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ách sử dụng email trong công
việc…
Kết quả : Hiểu thêm về cơng ty Alpaca, q 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ỷ luật, có trách

nhiệm hơn.

2.

Nghiên cứu kỹ thuật
a. Các công cụ làm việc
Thời gian : 4 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ư Jira sử dụng trong làm việc nhóm; Git Kraken – một phần mềm Git UI với cách sử dụng
rất dễ dàng, trực quan, giúp developer dễ dàng quản lý phiên bản và tương tác với git;
Docker - một chương trình ảo hố mơi trường rất hữu ích và phổ biến với lập trình
viên.
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 dung các IDE.

8

Phạm Như Ngọc

Trần Quốc Thịnh


9

9

b. Tìm hiểu ngơn ngữ C# và Typescript
Thời gian : 5 ngày (1 tuần)

Nội dung : Được training về các kỹ thuật C#, những kiến thức quan trọng cho việc tối
ưu API, viết service.
- Lập trình hướng đối tượng:
Các kiến thức về lập trình hướng đối tượng như khái niêm, các đặc tính như tính
kế thừa, tính đóng gói, tính trừu tượng hóa, tính đa hình.
- Service:
Angular Service là những đoạn code mà ta có thể sử dụng nhiều lần từ các
component khác nhau. Nó có chức năng sử dụng lại. Những đoạn code này sẽ
thực hiện một nhiệm vụ cụ thể cho một ý định nào đó. Chúng ta sử dụng service
cho những mục đích:
• Những nhiệm vụ độc lập của component như ghi log, gọi api từ bên ngồi vv.
• Chia sẻ code logic hoặc data để các component có thể dùng chung.
• Lợi thế của Service:
• Dễ dàng thực hiện các việc test cho component và service.
• Dễ dàng debugs khi có vấn đề.
• Có thể được sử dụng lại ở nhiều module.
- API:
API là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác. Nó
là viết tắt của Application Programming Interface – giao diện lập trình ứng dụng.
API cung cấp khả năng cung cấp khả năng truy xuất đến một tập các hàm hay
dùng. Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng.
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty.
- Làm các bài thực hành, kiểm tra về kiến thức đã học.
Kết quả :
-

Nâng cao kỹ năng lập trình với ngơn ngữ C# và Typescript
Có được những kiến thức quan trọng cho việc lập trình web sau này.
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.
c. Lập trình Frontend với Angular

Nội dung: Các kiến thức cơ bản về Angular để có thể làm ra một web UI đơn giản.
-

Khái niệm cơ bản về Component.

9

Phạm Như Ngọc

Trần Quốc Thịnh


10

10

Component là một lớp nó thường hiểu như là controller tương tác giao diện người
dùng. Một component thường có 3 thành phần chính là code TypeScript, template
HTML và CSS.
-

Typescript:

-

TypeScript được xem là một phiên bản nâng cao hơn của JavaScript vì nó được
thiết kế thêm nhiều chức năng tiện lợi hơn, cải tiến hơn từ những điểm yếu của

JavaScript như các lớp hướng đối tượng và Static Structural typing, bên cạnh đó
TypeScript cịn có thể hoạt động rộng rãi cho các ứng dụng của ngôn ngữ
Angular2 và Nodejs.
Module:
Module là cách chia nhỏ các thành phần ứng dụng (giống package trong Java).
Với Angular sử dụng đến decorator có tên là @NgModule để khai báo, Module là
một lớp chứa các thành phần để thực hiện các chức năng nào đó.

Thực hiện :
-

Tham gia đầy đủ các buổi trainning.
Làm các bài tập thực hành như tạo 1 project Angular, thêm 1 trang, thêm model,

Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.

Kết quả :
-

Hiểu được những khái niệm cơ bản trong lập trình frontend với Angular.
Có thể đọc và hiểu được các phần trong cấu trúc code dự án.
d. Lập trình Backend với .Net Framework

Nội dung: Các thành phần trong một dự án backend với .Net, một số design pattern
được sử dụng như Dependency Injections, ….
-

Định nghĩa về Resful Api:
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng
web để quản lý các resource. RESTful là một trong những kiểu thiết kế API được

sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao
tiếp với nhau.

10

Phạm Như Ngọc

Trần Quốc Thịnh


11

11

Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method
(như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng
web để quản các resource. RESTful không quy định logic code ứng dụng và
khơng giới hạn bởi ngơn ngữ lập trình ứng dụng, bất kỳ ngơn ngữ hoặc
framework nào cũng có thể sử dụng để thiết kế một RESTful API.
-

JSON API:
JSON API là một đặc tả về cách client yêu cầu tài nguyên được tìm lấy hoặc sửa
đổi và cách server đắp đứng các yêu cầu đó.
JSON API được thiết kế để giảm thiểu cả số lượng yêu cầu và lường dữ liệu được
truyền giữa client và server. Hiệu quả này đạt được mà khơng ảnh hường đến khả
năng đọc và tính linh hoạt.

-


Entity Framework:
Entity Framework là một khung ORM(Object Relational Mapper) mã nguồn mở
cho các ứng dụng .NET được Microsoft hỗ trợ. là 1 phần của .NET Framework. là
một Open source ORM Framework.
Note: ORM là một công cụ tự động tạo ra các Objects trong ứng dụng từ
tables,views, store procedures của một Relational Database.
Emntity Framework giúp các nhà phát triển Web tương tác với dữ liệu quan hệ
theo phương pháp hướng đối tượng với ít mã hơn so với các ứng dụng truyền
thống. Lợi ích lớn nhất của nó là giúp lập trình viên giảm thiểu việc lập trình mã
nguồn để thực hiện truy cập và tương tác với cơ sở dữ liệu.
Hiện nay, Entity framwork là 1 framework mạnh để phát triển ứng dụng Web với
sự hỗ trợ đông đảo của cộng đồng.

-

Migrations:
Migration là kỹ thuật trong việc tương tác với cơ sở dữ liệu, theo đó việc thay đổi
về cấu trúc CSDL ở code sẽ được cập nhật lên CSDL đảm bảo dữ liệu đang tồn tại
không bị mất, lịch sử (phiên bản) cập nhật được lưu lại sau mỗi lần cập nhật.

11

Phạm Như Ngọc

Trần Quốc Thịnh


12

12


Thường khi sử dụng EF làm việc với DB, có hai cách đó là làm việc với một
CSDL đang tồn tại (gọi là database first) - việc cập nhật database thực hiện khá
độc lập với ứng dụng - tình huống này Migration ít hữu ích, tuy nhiên trường hợp
bạn tạo database từ code, thay đổi cấu trúc database ... bằng code thì migration rất
hữu ích. Tất nhiên ta vẫn có cách để sử dụng EF Migration trên database đã tồn
tại.
Với migration khi bạn cập nhật Model, yêu cầu database cập nhật thì nó sẽ lưu
thơng tin phiên bản hiện tại của cấu trúc Model (database) ở Server DB - ví dụ
phiên bản a, sau đó thay đổi các Model, lại u cầu cập nhật thì nó sẽ đọc thơng
tin phiên bản cuối trên DB, so sánh sự khác biệt và cập nhật sự khác biệt đó để lên
phiên bản mới, phiên bản b.
-

Dependency Injections:
Trong kỹ thuật phần mềm, dependency injection là một kỹ thuật theo đó một đối
tượng (hoặc static method) cung cấp các phụ thuộc của đối tượng khác. Một phụ
thuộc là một đối tượng có thể được sử dụng (service).
Dependency injection (DI) là một kỹ thuật lập trình giúp tách một class độc lập
với các biến phụ thuộc. Với lập trình hướng đối tượng, chúng ta hầu như luôn phải
làm việc với rất nhiều class trong một chương trình. Các class được liên kết với
nhau theo một mối quan hệ nào đó. Dependency là một loại quan hệ giữa 2 class
mà trong đó một class hoạt động độc lập và class còn lại phụ thuộc bởi class kia.

Thực hiện :
-

Tham gia đầy đủ các buổi training.
Clone dự án về, thực hiện những bài tập thực hành như thêm 1 model, tạo một
controllers, tạo migrations để cập nhật database, ….


Kết quả:
Đã có thể hiểu được các thuật ngữ mới, biết cách đọc và hiểu code backend của dự án, tham
gia vào việc thêm và chỉnh sửa tính năng, tương tác với database.
e. Làm việc với một số công cụ, framework khác
Nội dung: Các công cụ liên quan như Docker để tạo mơi trường mơ phỏng có thể
chạy được backend, thư viện CkEditor để phát triển một editor cho trang chỉnh sửa,…
12

Phạm Như Ngọc

Trần Quốc Thịnh


13

13
-

Docker:
Docker là một open platform cung cấp cho người sử dụng những cơng cụ và
service để người sử dụng có thể đóng gói và chạy chương trình của mình trên các
môi trường khác nhau một cách nhanh nhất.
Chúng ta sẽ thiết lập cho app của mình các mơi trường cần thiết với docker. Khi ai
đó muốn chạy app đó thì chỉ cần chạy docker mà không cần phải cài môi trường
cho app nữa vì docker đã giúp ta rồi.

Docker gồm 2 thành phần:
o Docker Engine: dùng để tạo ra Docker image và chạy Docker container.
o Docker Hub: dịch vụ lưu trữ giúp chứa các Docker image.


Các khái niệm khác:

-



Docker Machine:tạo ra các Docker engine trên máy chủ.



Docker Compose: chạy ứng dụng bằng cách định nghĩa cấu hình các
Docker container thơng qua tệp cấu hình



Docker image: một dạng tập hợp các tệp của ứng dụng, được tạo ra bởi
Docker engine. Nội dung của các Docker image sẽ không bị thay đổi khi di
chuyển. Docker image được dùng để chạy các Docker container.



Docker Container: một dạng runtime của các Docker image, dùng để làm
mơi trường chạy ứng dụng.

CkEditor:
CKEditor là một trình soạn thảo văn bản HTML sẵn sàng cho sử dụng được thiết
kế để đơn giản hóa việc tạo ra nội dung web. Đó là một trình soạn thảo
WYSIWYG mang lại các tính năng xử lý văn bản phổ biến trực tiếp đến trang
web của bạn.

CKEditor là một ứng dụng mã nguồn mở, có nghĩa là bạn có thể sửa đổi nó theo
bất kỳ cách nào bạn muốn. Lợi ích của nó đến từ một cộng đồng năng động không

13

Phạm Như Ngọc

Trần Quốc Thịnh


14

14

ngừng phát triển các ứng dụng với các add-ons miễn phí và q trình phát triển
minh bạch (transparent development process).
-

Freemarker:
FreeMarker là một template engine cho nền tảng Java. Nó đọc các file mẫu và kết
hợp với các đối tượng Java để tạo đầu ra văn bản như: trang web HTML, email,
mã nguồn vv…
Các mẫu (template) trong FreeMarker có đi mở rộng là .ftl (FreeMarker
Template Language)
FreeMarker chỉ tập trung vào việc hiển thị ra dữ liệu thơng qua các bản
mẫu(Templates), cịn việc chuẩn bị dữ liệu (truy vấn cơ sở dữ liệu, thực hiện logic
..) thuộc về ngơn ngữ lập trình (Java)
FreeMarker thường được sử dụng trong các web động và trong mơ hình Java
Spring – MVC.
FreeMarker giúp tách biệt giữa phần thiết kế web (HTML) với các nhà phát triển

web (thường là các lập trình viên Java). Các nhà thiết kế sẽ không phải động tới
logic phức tạp trong các bản mẫu và có thể thay đổi giao diện của trang mà khơng
cần lập trình viên phải thay đổi hoặc biên dịch lại mã.

3.

Thực hiện project

Sau một tháng đượ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, Angular, Entity Framework. Trong tháng thứ hai, trainer đã hướng
dẫn thực tập sinh áp dụng những kiến thức đã học để tham gia phát triển các tính năng
đơn giản cho dự án Product Studio.
Chi tiết đồ án sẽ được nói ở phần sau.

4.

Lịch làm việc

Tuần
1

Cơng việc
-

Người hướng dẫn

Mức
độ
hồn
thành


Nhận xét của người
hướng dẫn

Tìm hiểu về cơng ty, Chị Vũ Minh Anh

14

Phạm Như Ngọc

Trần Quốc Thịnh


15

15

-

-

2

-

3
-

-


4
-

5

-

-

6

-

7

-

cách tổ chức của
công ty.
Làm quen với các
công cụ làm việc
trong cơng ty.
Học cách trao đổi,
làm việc qua email.
Tìm hiểu ngơn ngữ
lập trình Typescript
Thực
hành
Typescript
Tìm

hiểu
về
Docker.
Tìm
hiểu
về
Restful API, JSON
API, Dependency
Injection.
Thực hành tạo một
view, thêm một
model mẫu và triển
khai view quản lý
model đó.
Tìm
hiểu
về
CkEditor
Thực hành tạo một
CkEditor với các
tính năng được cấu
hình sẵn.
Tuỳ biến các cấu
hình của CkEditor.
Lên kế hoạch
Nghiên cứu tài liệu
Viết API lấy dữ liệu
và đổ dữ liệu cần
thiết vào CkEditor
Cấu

hình
lại
CkEditor
Thêm chức năng cho
trang
Sửa các lỗi phát sinh
Thêm tính năng xuất

Anh Phạm Như
Ngọc
Anh Phạm Như
Ngọc

Anh Phạm Như
Ngọc

Anh Phạm Như
Ngọc

Anh Phạm Như
Ngọc

Anh Phạm Như

15

Phạm Như Ngọc

Trần Quốc Thịnh



16

16

-

8

-

9

-

10
-

11

-

12

3

file PDF
Sửa các lỗi phát sinh
Cấu
hình

lại
CkEditor
Viết Plugins cho
CkEditor
Viết các service và
api lấy dữ liệu in
Lên kế hoạch
Viết các API để
cung cấp dữ liệu cho
các bên khác.
Viết các API cung
cấp dữ liệu cho các
bên khác.
Sửa các lỗi phát sinh
Thêm tính năng cho
trang CkEditor
Thêm tính năng cho
trang CkEditor

Ngọc
Anh Phạm Như
Ngọc

Anh Phạm Như
Ngọc
Anh Phạm Như
Ngọc
Anh Phạm Như
Ngọc
Anh Phạm Như

Ngọc

CHƯƠNG 3: CHI TIẾT VỀ DỰ ÁN
1.

Giới thiệu về dự án
Dự án được tham gia có tên là Product Studio, với định hướng là tạo ra một internal
Database Management System quản lý các kho dữ liệu cho Sản phẩm chính - dự án số
hố hợp đồng bảo hiểm, mà khách hàng chính là Tổng cơng ty Bảo hiểm Bảo Long. Bên
cạnh đó, các yêu cầu phần mềm cũng địi hỏi phải có một cơng cụ giúp quản lý, chỉnh
sửa và xuất hợp đồng bảo hiểm dạng PDF với các yêu cầu đặc trưng như chữ mã số hợp
đồng, chữ ký điện tử, … Giải pháp chính là sử dụng CkEditor version 4, cùng với các
cơng cụ như Freemarker, HTML. Đây là nhiệm vụ chính, được giao trong suốt quá trình
tham gia làm sản phẩm.
a. Frontend
Product Studio có giao diện để quản lý các kho dữ liệu, mỗi kho tương ứng như
một bảng trong một cơ sở dữ liệu bảo hiểm. Bên cạnh đó, cịn có một trang dùng
để quản lý các tài liệu in và một trang để thực hiện chỉnh sửa tài liệu, tiến hành
xuất PDF các tài liệu đó. Cơng cụ chỉnh sửa văn bản được sử dụng là CkEditor 4,

16

Phạm Như Ngọc

Trần Quốc Thịnh


17

17


có thêm các tiện ích, plugins khác như QR Code, Image,… được tự phát triển và
thêm vào.

b. Backend
Backend được phát triển bằng .Net Framework, xây dựng theo mơ hình MVC, sử
dụng design pattern là Dependency Injection. Trên tinh thần là một phần mềm
quản lý dữ liệu, mỗi bảng (được xem như là mỗi kho dữ liệu) tương ứng với một
model, có một hoặc một vài service để định nghĩa các thao tác CRUD, và có thể
có controller là nơi định nghĩa các API nhằm thực hiện các thao tác đó.

17

Phạm Như Ngọc

Trần Quốc Thịnh


18

18

2.

Thực hiện

4 thành viên của team internship của anh Ngọc:
-

Phạm Như Ngọc (mentor)

Huỳnh Hoàng Khang
Trần Quốc Thịnh
Phan Thanh Nhã

3.

Kế hoạch
Giai đoạn Training:
-

Hướng dẫn về quy trình, lịch làm việc, về các thành viên trong nhóm chính.
Training về các kiến thức cơ bản và những đặc điểm về dự án.
Training về các cơng cụ, cơng nghệ sử dụng.
Thực hành các tính năng đơn giản trước.

Kết quả :
-

Các thành viên đã nắm được các kiến thức về thế nào là API, Controller, mơ hình
MVC, cách sử dụng Git, Docker.

18

Phạm Như Ngọc

Trần Quốc Thịnh


19


19

-

Đã có thể code các service đơn giản, tuỳ biến các cấu hình đơn giản của CkEditor.

Giai đoạn Thực hiện: hồn thành những tính năng cơ bản nhất:
-

Hồn thành Dynamic hoá các kho dữ liệu.
Chuyển đổi một số kho dữ liệu từ dạng JsonAPI về Restful API.
Chỉnh sửa hiển thị của một số bảng.
Hoàn thành các chức năng xuất PDF, gọi dữ liệu, … cho CkEditor.
Viết các plugins cho CkEditor.
Sửa một số lỗi phát sinh.

Kết quả : Đã hoàn thành tồn bộ những tính năng trên.

19

Phạm Như Ngọc

Trần Quốc Thịnh


20

20

TÀI LIỆU THAM KHẢO

For Angular

For CkEditor, Docker
/> /> />a/p/docker-nhung-kien-thuc-co-ban-phan-1-bJzKmM1kK9N
/>For .Net
/>For MVC
/>For Dependency Injection
/>
20

Phạm Như Ngọc

Trần Quốc Thịnh


21

21

TỔNG KẾT
Như vậy, chỉ trong vòng ba tháng ngắn ngủi, nhóm đã kịp hồn thành các tính năng cơ
bản nhất cho trang web quản lý kho dữ liệu, có demo cho khách hàng. Do thời gian có hạn nên
những tính năng phức tạp hơn và một số lỗi phát sinh trong CkEditor sẽ được chuyển sang giai
đoạn phát triển tiếp theo. Ngoài ra em đã học được cách thiết kế các API trong lập trình
backend, cách sử dụng Angular trong lập trình frontend cũng như quy trình làm việc trong một
môi trường công việc thực tế. Đây sẽ là bước đệm khởi đầu tốt cho sự phát triển sự nghiệp của
em sau này.
Chân thành cảm ơn sự giúp đỡ của các anh chị nhóm trainer Alpaca Vietnam, sự nỗ lực
của nhóm anh Ngọc để có thể hồn thành các tính năng này. Em xin được cảm ơn các thầy cô
khoa Công nghệ Phần mềm đã hướng em đến những kiến thức nền tảng quý báu để em có thể

tiếp cận cơng việc và hồn thành bài báo cáo thực tập này.

21

Phạm Như Ngọc

Trần Quốc Thịnh



×