Tải bản đầy đủ (.pdf) (20 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 (682.56 KB, 20 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 12 năm 2022


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.

Phạm Như Ngọc

Trần Quốc Thịnh


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 22 tháng 12 năm 2022

Phạm Như Ngọc

Trần Quốc Thịnh


4

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

.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

Phạm Như Ngọc

Trần Quốc Thịnh


5

MỤC LỤC
CHƯƠNG 1: CÔNG TY THỰC TẬP ............................................................................................ 6

1
1.

Giới thiệu công ty Alpaca Vietnam ................................................................................................ 6

2.

Sản phẩm của công ty ..................................................................................................................... 6

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

2
1.

Tìm hiểu công ty và các kỹ năng cơ bản trong công ty .................................................................. 8

2.

Nghiên cứu kỹ thuật ....................................................................................................................... 8
a.

Các công cụ làm việc .................................................................................................................. 8

b.

Tìm hiểu ngơn ngữ C# và Typescript ......................................................................................... 8

c.

Lập trình Frontend với Angular ................................................................................................. 9

d.

Lập trình Backend với .Net Framework ................................................................................... 10

e.

Làm việc với một số công cụ, framework khác ....................................................................... 12


3.

Thực hiện project .......................................................................................................................... 14

4.

Lịch làm việc ................................................................................................................................ 14
CHƯƠNG 3: CHI TIẾT VỀ DỰ ÁN ............................................................................................ 16

3

Giới thiệu về dự án ....................................................................................................................... 16

1.
a.

Frontend .................................................................................................................................... 16

b.

Backend .................................................................................................................................... 17

2.

Thực hiện ...................................................................................................................................... 17

3.

Kế hoạch ....................................................................................................................................... 17


Phạm Như Ngọc

Trần Quốc Thịnh


6

1

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

Phạm Như Ngọc

Trần Quốc Thịnh


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.

Phạm Như Ngọc

Trần Quốc Thịnh


8

2

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.
b. Tìm hiểu ngôn ngữ C# và Typescript
Thời gian : 5 ngày (1 tuần)

Phạm Như Ngọc

Trần Quốc Thịnh



9

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.

Phạm Như Ngọc

Trần Quốc Thịnh


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.

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

Phạm Như Ngọc

Trần Quốc Thịnh


11

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.
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

Phạm Như Ngọc

Trần Quốc Thịnh


12

bản a, sau đó thay đổi các Model, lại yê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ư ln 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,…
-

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.

Phạm Như Ngọc

Trần Quốc Thịnh


13

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
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)

Phạm Như Ngọc

Trần Quốc Thịnh


14

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


Cơng việc

Người hướng dẫn

Tìm hiểu về cơng ty,
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

Chị Vũ Minh Anh

-

1

2

3

Phạm Như Ngọc

Mức
độ
hoàn
thành

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

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

Trần Quốc Thịnh



15

4
-

5

-

6

-

7
8

-

9

-

10

11
12

Phạm Như Ngọc

-


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

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ư
Ngọc
Anh Phạm Như
Ngọc
Anh Phạm Như
Ngọc
Anh Phạm Như
Ngọc

Trần Quốc Thịnh


16

3

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ố
hoá 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 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 q 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,
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.

Phạm Như Ngọc

Trần Quốc Thịnh


17

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 đó.

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.

Phạm Như Ngọc

Trần Quốc Thịnh


18

-

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.
Đã 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ả : Đã hồn thành tồn bộ những tính năng trên.

Phạm Như Ngọc

Trần Quốc Thịnh


19

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
/>
Phạm Như Ngọc


Trần Quốc Thịnh


20

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ự hướng dẫn tận tình 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.

Phạm Như Ngọc

Trần Quốc Thịnh



×