Tải bản đầy đủ (.doc) (37 trang)

báo cáo thực tập lập trình WEBSITE tìm việc JOYWORK

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 (11.67 MB, 37 trang )

1

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 WEBSITE TÌM VIỆC JOYWORK

Cơng ty thực tập

: GSOFT

Người phụ trách

: Phạm Tri Thức

Thực tập sinh

: Nguyễn Thành Danh

TP. Hồ Chí Minh, tháng 1 năm 2021

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


2

LỜI MỞ ĐẦU


Ngày nay, với tốc độ phát triển vô cùng mạnh mẽ, ngành cơng nghiệp phần mềm, trong
đó có nền tảng web, đã và đang là nhân tố kích thích sự phát triển của cơng nghệ thơng tin thế
giới, cả về phần cứng và phần mềm.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ. Ngành công
nghiệp phần mềm trẻ Việt Nam đã và đang phát triển mạnh mẽ, để hòa nhập với những công ty
hàng đầu về phần mềm trên thế giới. Trong đó, những cơng ty phần mềm trong nước (như
GSOTF) đã và đang góp phần rất lớn vào sự phát triển tích cực của ngành cơng nghiệp phần
mềm Việt.
Ngành cơng nghiệp phần mềm được sinh ra là do nhu cầu giải quyết các vấn đề thực tế
bằng cách sử dụng các hệ thống phần mềm. Và những kỹ sư phần mềm, trong đó phần lớn là
người trẻ, sẽ đóng vai trị quan trọng trong cơng việc phát triển phần mềm. Vì lý do này, em
quyết định chọn lập trình phần mềm, cụ thể là ứng dụng 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 quy trình phát triển phần mềm trong một môi trường chuyên nghiệp, em
quyết định thực tập trong học kì này. Vì vậy, em quyết định chọn GSOTF- một môi trường lý
tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này.

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


3

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty GSOTF đã 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 anh mentor và đội ngũ
phát triển, em đã tiếp thu được những kiến thức quan trọng để có thể tham gia một qui trình

phát triển phần mềm chuyên nghiệp. Chân thành cảm ơn các anh chị trong đội ngũ phát triển đã
bỏ ra nhiều thời gian, công sức để hướng dẫn em hoàn thành đợt thực tập này.
Đặc biệt cảm ơn anh Nguyễn Gia Bảo, đã training ReactJs, 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 anh Phạm Tri Thức đã chỉ dẫn em về cách tham gia vào qui trình phát triển và kiến
trúc của phần mềm, cách làm việc trong team.
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.
Nguyễn Thành Danh
Tp.HCM, ngày 15 tháng 11 năm 2020

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


4

NHẬN XÉT CỦA KHOA

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

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

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


5

Mục lục
Chương 1: Giới thiêu công ty thực tập..........................................6
Giới thiệu công ty GSOFT.........................................................................6
Sản phẩm của công ty..............................................................................6

Chương 2: Nội dung thực tập.......................................................7
Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty..............................7
Nghiên cứu kỹ thuật................................................................................7
Các công cụ làm việc.....................................................................................................7
Tìm hiểu ngơn ngữ Typescript và thư viện ReactJs......................................................7
Lập trình front end ứng dụng web với ReactJs.............................................................8

Thực hiện project...................................................................................10
Lịch làm việc..........................................................................................10

Chương 3: Chi tiết về project......................................................13

Giới thiệu về dự án và tính năng đã thực hiện.......................................13
Các chức năng và domain chính.................................................................................13
Chức năng đã thực hiện.............................................................................................16

Thực hiện..............................................................................................18
Kế hoạch.......................................................................................................18

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


6

Chương 1: Giới thiêu công ty thực tập

Giới thiệu công ty GSOFT
GSOFT là công ty phần mềm hướng công nghệ, được sáng lập bởi những người có
tâm huyết, có năng lực và kinh nghiệm chuyên môn cao với mong muốn hình thành
và phát triển một cơng ty phần mềm hàng đầu tại Việt Nam và vươn tầm ra thế giới.
GSOFT cung cấp các giải pháp phần mềm quản lý cho các doanh nghiệp tập đồn,
tổng cơng ty, ngân hàng, trường đại học, bệnh viện, các giải pháp kết nối cộng đồng
trên nền tảng internet, các hệ thống website và các dịch vụ liên quan đến website,
các hệ thống trong lĩnh vực thương mại điện tử và chính phủ điện tử.
GSOFT luôn tập trung nghiên cứu và ứng dụng tinh hoa cơng nghệ vào thực tiễn đời
sống nhằm mục đích nâng cao chất lượng cuộc sống vì cộng đồng.

Sản phẩm của cơng ty
Ngoải giải pháp outsourcing, onsite cơng ty cịn cung cấp các phần mềm quản trị.
Nổi bật nhất Hệ thống phần mềm quản trị đầu tư mua sắm và quản lý tài sản


<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


7

gAMSPro. Phần mềm gồm các phân hệ lớn như Quản lý hàng hóa, Quản lý nhà
cung ứng, Quản lý kế hoạch mua sắm, Quản lý tài sản, Quản lý mua sắm, Quản lý
bất động sản.

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


8

Chương 2: Nội dung thực tập
JoyWork là dự án protoype của cơng ty nhằm giúp kết nói giữa nhà tuyển dụng và người tìm
việc. Thơng qua dự án sinh viên hiểu được kiến trúc tổng quan của Domain Driven Design,
React, Angular . Đồ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 phần mềm chun nghiệp.

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 đội ngũ HR giới thiệu về công ty, quá 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 GSOFT, 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.

Nghiên cứu kỹ thuật
Các công cụ làm việc
Thời gian : 3 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, mentor đã 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 phát triển. Một số phần mềm trong số đó như Git và
AzureDevOps - sử dụng trong làm việc quản lí cấu hình của dự án, VSCode – trình
soạn thảo văn bản rất phổ biến với nhiều môi trường phát triển tiện dụng cho 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.
Tìm hiểu ngơn ngữ Typescript và thư viện ReactJs
Thời gian : 5 ngày

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


9

Nội dung : Được training về ngôn ngữ Typescript và thư viện ReactJs, những kiến
thức quan trọng cho việc phát triển front end ứng dụng web
- Lập trình hướng đối tượng

Các kiến thức cơ bản 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 ảo hóa, tính đa hình. Ngồi ra, thực tập sinh
còn được hướng dẫn về cách thiết kế lớp cho các model sử dụng trong hệ thống
- Các thành phần website (HTML/CSS/JS):
Cách trình duyệt chạy một ứng dụng web trên phía front-end như thế nào. Các
khái niệm cơ bản về HTML/CSS/JS và cách chúng hoạt động trên trình duyệt.
- Thư viện ReactJs
Thực tập sinh sẽ được hướng dẫn về cách sử dụng thư viện ReactJs để lập trình
các thành phần của website về phía front-end. Được hướng dẫn về cách ReactJs
hiện thực hóa việc lập trình các thành phần cơ bản nêu trên.
- Typescript:
Được hướng dẫn về ngôn ngữ Typescript như các cú pháp cơ bản như điều khiển
luồng, vịng lặp,...; những tính chất cơ bản của Typescript như interface, kiểu
union, ép kiểu,...; và khác biệt với Javascript như thế nào để ứng dụng với qui mô
đội ngũ phát triển lớn.
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ữ Typescript và thư viện ReactJs.
Có được những kiến thức quan trọng cho việc lập trình front-end 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.

Tìm hiểu .NET Core và ABP Framework
Thời gian : 5 ngày
Nội dung : Được training về .NET Core và framework, những kiến thức quan trọng
cho việc phát triển backend ứng dụng web

- Lập trình hướng đối tượng
Các kiến thức cơ bản 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 ảo hóa, tính đa hình. Ngồi ra, thực tập sinh
cịn được hướng dẫn về cách thiết kế lớp cho các model sử dụng trong hệ thống
- Tổng quan giao tiếp giữa các tầng trong backend

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


10

-

Thực tập sinh sẽ tìm hiểu các thành phần chính của backend như:
+ Web API Controller: nhận request từ client tương ứng xử lí route mà request
được gửi tới đó sẽ tự động nhận được yêu cầu. Và cũng làm nhiệm vụ gửi
response về client. Controller sẽ gọi Application Service để xử lí những u cầu
đó.`

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


11

+ Application Services: Chứa những nghiệp vụ hay phần xử lí tương ứng với 1
với 1 route tính năng kể trên. Thường sử dụng các DTOs để truyền dữ liệu qua lại.
Application Services thường sẽ dùng Repository tương ứng với một hoặc nhiều
Entity liên quan đến tính năng để thao tác với CSDL. Ta sử dụng Repository này

thông qua Interface được cung cấp ở Domain Services.
+ Domain Layer: Chứa các Interface Repository, các Entity, Domain Services, …
Các Entity này chính các class để ta định nghĩa các Thực thể hay các bảng trong
CSDL. Các Interface Repository định nghĩa các phương thức thao tác với CSDL
để Repositories ở các lớp ORM implement. Domain Services có thể hiểu là các
dịch vụ liên quan đến các Entities cung cấp sẵn
+ EntityFrameworkCore: Một ORM, ánh xạ CSDL, chứa các DataContext để
cung cấp cho các Repositories. Các Repositories này sử dụng DataContext này để
implement các phương thức làm việc với CSDL.
- ABP Framework: là 1 framework .NET Core có sẵn các chức năng cơ bản đã
được tích hợp như Authorization, Multi Tenancy, Role, Permission. ABP theo kiến
trúc Domain Drven Design gồm các lớp:
+ Presentation Layer: cung cấp giao diện tương tác với người dùng
+ Application Layer: liên kết giữa Presentation và Domain Layer.
+ Domain Layer: xử lý các logic nghiệp vụ.
+ Infrastructure Layer: chứa các logic sử dụng các thư viện khác để hỗ trợ như
xuất file, nhập file, gửi mail…
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 .NET Core và kiến trúc backend
Có được những kiến thức quan trọng cho việc lập trình backend 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.

Thao tác trên database với SQL Server


Thời gian : 3 ngày

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


12

Nội dung : Được training Database First Design, các câu truy vấn nâng cao. Kết hợp
cả Entity Framework và Stored Procedure để đạt hiệu suất cao trong các business
logic phức tạp.
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ả :
-

Các kỹ năng nâng cao của SQL server như Cursor, Transaction
Có được những kiến thức quan trọng cho việc thiết kế và truy vấn database.

Lập trình front end ứng dụng web với ReactJs
Thời gian : 15 ngày
Nội dung: Các kiến thức cơ bản về ReactJs để có thể tham gia xây dựng phía front
end cho ứng dụng web sử dụng trong công ty
-

Khái niệm cơ bản về ReactJs
Năm được các khái niệm cơ bản về ReactJs, là một thư viện Javascript dùng cho
việc xây dựng các thành phần giao diện có thể tái sử dụng.
Ngồi ra, mentor cịn cung cấp cho thực tập sinh những khái niệm cơ bản trong

môi trường web như DOM, HTML, CSS, HTTPS,...

-

Mơ hình server-client:
Cách mơ hình server-client đang được sử dụng phổ biến trong lập trình ứng dụng
web hiện nay. Trong mơ hình này, React đóng vai trị quan trọng trong xây dựng
ứng dụng front end phía client. Ngồi ra việc lập trình front end sẽ phải có việc
giao tiếp, thảo luận với thành viên lập trình back end phía server để có thể thực
hiện giao tiếp giữa 2 phía bằng giao thức Https.

-

API Calls
Là các thao tác app phía front end giao tiếp với RESTful APIs ở phía server thông
qua giao thức HTTPS nhằm thực hiện các hành động để lưu xuống cơ sở dữ liệu.

-

State management

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


13

Các nguyên lí về quản lí state (trạng thái) của một ứng dụng front end. Quản lí
app state để lưu các dữ liệu liên quan đến trạng thái của một app khi người dùng
sử dụng. Thực hiện bằng các thư viện như Redux, Mobx,...

-

Routing
Việc quản lí đường dẫn của app để đưa người dùng đến các tài nguyên phù hợp và
đưa đến trang lỗi nếu có xảy ra. Sử dụng React Router.

-

Forms
Các vấn đề liên quan đến form để lấy input của người dùng. Là một trong những
thành phần quan trọng trong ứng dụng web để nhận input và tương tác từ người
dùng. Việc quản lí form với state của form, validation và submit.

-

Server Side Rendering
Vì ReactJS là một thư viện Single Page Application nên việc hỗ trợ SEO (Search
Engine Optimization) còn nhiều hạn chế. Bằng các kết hợp NodeJS Express và
ReactJS sẽ tạo được giải pháp hỗ trợ Server Side Rendering cho React

Thực hiện :
-

Tham gia đầy đủ các buổi trainning.
Làm các bài tập thực hành để làm quen với các khái niệm, …
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 front end ứng dụng web.
HIểu được cách làm việc của lập trình viên front end với back end như thế nào.

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ề ReactJs, Typescript và lập trình front end web. Trong hai tháng tiếp theo,
mentor đã hướng dẫn thực tập sinh áp dụng những kiến thức đã học để tham gia đội ngũ
phát triển một dự án ứng dụng web.
Chi tiết dự án sẽ được nói ở phần sau.

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


14

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 cơ bản
- Làm quen ReactJs
- Tìm hiểu ReactJs
nâng cao
- Thực hành ReactJs
cơ bản và nâng cao
- Ứng dụng ReactJs
vào một kiến trúc
ứng dụng web.
- Phát triển các khái
niệm cơ bản trong
một ứng dụng front
end cơ bản
- Tích hợp ReactJS
vào Express
- Chuyển code từ
Single page sang
Server Side
Bắt đầu Sprint:
- Lên kế hoạch Sprint
Planning
- Làm
quen
với
source code của dự

án đang phát triển
- Làm quen với các

Chị Phạm Thúy
Nga

-

1

2

3

4

5
6

Mức
độ
hoàn
thành

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

Anh Nguyễn Gia
Bảo


Anh Nguyễn Gia
Bảo
Anh Nguyễn Gia
Bảo

Anh Nguyễn Gia
Bảo

Anh Phạm Tri
Thức, Anh Nguyễn
Giang Đảo

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


15

7

8

9

10

11

APIs back end để sử
dụng.

- Tìm hiểu sitemap
của ứng dụng.
Giai đoạn trong Sprint:
- Viết API ở backend
hỗ
trợ
cho
Authorization

Authenticate
- Kết hợp phần đã viết
vào trang phân
quyền, quản lý tài
khoản bên Angular
để có thế làm chức
năng đăng ký, đăng
nhập bên React
Giai đoạn trong Sprint:
- Tích hợp ReactFinal
Form,
Revalidate để xử lý
Form.
- Fix một số bug UI.
Giao đoạn cuối sprint
- Deploy lên môi
trường NodeJs của
Azure
- CI/CD cho backend
- Sprint Review và
Sprint Retrospective

Bắt đầu sprint tiếp theo:
- Lên kế hoạch Sprint
Planning
- Vẽ prototype màn
hình chi tiết việc
làm, danh sách việc
làm
- Chuyển từ static site
sang React.
- Gắn các API tìm
kiếm, danh sách
việc làm.
Giai đoạn trong Sprint:

Anh Nguyễn Gia
Bảo

Anh Nguyễn Gia
Bảo

Anh Phạm
Thức

Tri

Anh Phạm Tri
Thức,
Nguyễn
Giang Đảo


Anh

Nhữ

Minh

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


16

-

12

13

14

15

16

Thiết kế hệ thống
Database cho người
tìm việc
- Thiết kệ hệ thống
database cho nhà
tuyển dụng

Giai đoạn trong Sprint:
- Chia
nhỏ
các
control trong xử lý
form
như
DatePicker,
Dropdown input
- Tìm hiểu MobX để
quản

State
trongReact
Giai đoạn cuối sprint:
- Hồn thành màn
hình chỉnh sửa
thơng tin người
dùng
- Hồn thiện các màn
hình prototype danh
sách việc làm, chi
tiết việc làm.
- Sprint Review và
Sprint Retrospective
Bắt đầu Sprint tiếp theo:
- Lên kế hoạch các màn
hình Danh sách công ty,
chi tiết công ty, thông
tin nhà tuyển dụng,

danh sách ứng viên
Giai đoạn trong Sprint
- Làm các màn hình
Danh sách cơng ty, chi
tiết nhà tuyển dụng
- Tối ưu Data Caching
với MobX
- Lắp các Control hỗ trợ
Mobile Responsive
Giai đoạn trong Sprint:
- Làm các màn hình

Tuấn

Anh Nguyễn Gia
Bảo

Anh Nguyễn Văn
Ngọc Tiến, Anh
Nguyễn Gia Bảo,
Anh
Nguyễn
Giang Đảo, Anh
Phạm Tri Thức.

Anh Nguyễn Văn
Ngọc Tiến, Anh
Nguyễn
Giang
Đảo.

Anh Nguyễn Gia
Bảo

Anh Nguyễn Văn
Ngọc Tiến, Anh

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


17

17

18

thông tin nhà tuyển
dụng-Viết các API ở
.NET Core và SQL
Giai đoạn trong Sprint:
- Làm màn hình danh
sách ứng viên.
- Tối ưu tốc độ website,
tối ưu CSS, bundle size
Kết thúc Sprint, kết thúc
thực tập:
- Hồn thiện các màn
hình đã làm
- Fix bug
- Sprint Review và

Sprint Retrospective
- Báo cáo cuối đợt thực
tập

Nguyễn Gia Bảo
Anh Nguyễn Gia
Bảo

Anh Phạm Tri
Thức và toàn bộ
đội ngũ

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


18

Chương 3: Chi tiết về project
Giới thiệu về dự án và tính năng đã thực hiện:
JoyWork là dự án ứng dụng web được xây dựng với .NET Zero và TypeScript (ReactJS)
ở phía khách hàng và Angular ở phía quản trị. Dự án giúp kết nối giữa nhà tuyển dụng
và người tìm việc, khiến cho việc tìm kiếm việc làm, tìm kiếm ứng viên trở nên dễ dàng
hơn. Ứng dụng ở phia khách hàng gồm 3 domain chính là:
-

Client-Nhà tuyển dụng: dùng cho nhà tuyển dụng, hỗ trợ tìm kiếm ứng viên, quản
lý thơng tin tài khoản.

-


Client-Người tìm việc: dùng cho người tìm việc, hỗ trợ tìm kiếm việc làm, quản lý
thông tin cá nhân.

-

Admin: quản trị quyền hệ thống, quản lý các danh mục dùng chung, quản lý các
nghiệp vụ.

Các chức năng và domain chính:
Client:
Ứng dụng được sử dụng ở phía client
Ứng dụng được xây dựng với cơ chế phần quyền routing với Roles, Permissions và
Server-side rendering hỗ trợ tối đa SEO

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


19

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


20

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh



21

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


22

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


23

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


24

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh


25

<Phan Trung Hiếu /GVHD>
Nguyễn Thành Danh



×