Hiểu được sự quan trọng của lĩnh vực lập trình website này, cùng với sự đam mê, hứng thú của bản thân trong việc phát triển ứng dụng web, sau khoảng thời gian trau d ổ các kiến thức cơ b
Trang 1TRUONG DAI HOC CONG NGHE THONG TIN KHOA CONG NGHE PHAN M EM
fH
BAO CAO THUC TAP
LAP TRINH WEB FULL STACK VOI
ANGULAR VA ASP.NET
Công ty thực tập : Công ty ROSEN Group
Người phụ trách : Lê Tuấn Khải, Lê Anh Duy
Thực tập sinh : Võ Trung Tín - 19522353
TP H 6Chi Minh, thang 12 năm 2022
Trang 2LOI MOG PAU
Hiện nay, ngành công nghệ thông tin đang ngày một phát triển vô cùng mạnh mẽ, tác động lớn đến đời sống xã hội con người, và đặc biệt là lĩnh vực kinh tế của hân hết các quốc gia trên thế giới khi được xem là một trong những ngành kinh tế mũi nhọn góp phẦn thúc đẩy sự phát triển, thịnh vượng của mỗi quốc gia Thực tế, lĩnh vực công nghệ thông tin hiện nay được ứng dụng vô cùng đa dạng trong nhi `âi khía cạnh khác nhau, không chỉ dừng lại ở việc phục vụ cho khoa học kĩ thuật Hơn hết, công nghệ thông tin dẦn trở nên gẦ3n gũi, thân thiện hơn khi đi
sâu vào từ đơi sống con người cho đến các lĩnh vực khác như kinh tế, chính trị, y tế, vv
Sự bùng nổ của các cuộc cách mạng công nghệ cũng như sự xuất hiện của mạng internet
kĩ thuật số (4G, 5G, vv ) góp phần đưa những sản phẩm công nghệ dễ dàng đến tay người dùng, đặc biệt là các trang website với vô vàn những tiện ích và chức năng phục vụ con người ở
nhi `ân lĩnh vực Hệ thống website đã có từ rất sớm, mặc dù thế, nó vẫn không trở nên lạc hậu mà
thay vào đó đang ngày càng cải tiến để đáp ứng được với nhu c3âi luôn cập nhật, thay đổi của con người, đần trở thành một mặt không thể thiếu trong xã hội ngày nay Có thể dễ dàng nhận thấy khi tại Việt Nam nói riêng và các quốc gia công nghệ nói chung, các công ty công nghệ phát triển ứng dụng liên quan đến mảng website vẫn chiếm đa số bởi tính phổ biến và thông dung của nó đối với con người ngày nay
Hiểu được sự quan trọng của lĩnh vực lập trình website này, cùng với sự đam mê, hứng thú của bản thân trong việc phát triển ứng dụng web, sau khoảng thời gian trau d ổ các kiến thức
cơ bản lẫn chuyên sâu, và các kỹ năng c3n thiết trên ghế nhà trưởng, bản thân em đã quyết định
trong học kì này sẽ đi thực tập tại một công ty hoặc doanh nghiệp thực tế để trước tiên là thử
sức mình với lĩnh vực mình dang theo đuổi, đặc biệt hơn là nhu cân tích lũy kinh nghiệm, trải
nghiệm tại môi trưởng làm việc thực tế
Sau những In rớt các buổi phỏng vấn vì kĩ năng bản thân không đám ứng được đi `âi kiện của các công ty, em không lấy đó làm chán nản mà xem như là kinh nghiệm để từ đó dành thoi gian hơn để trau d ổ khả năng của bản thân Cuối cùng, em đã đậu phỏng vấn và được tham gia vào chương trình thực tập tại Công ty ROSEN Group có phòng nghiên cứu ROSEN UIT Research Center tại trưởng UTT Đến tận bây giờ, em vẫn cảm thấy rất vui, tự hào khi bản thân
có thể tham gia được chương trình thực tập này bởi vì đây là một môi trưởng lý tưởng, hiện đại, chuyên nghiệp và tràn ngập những tiếng cười của các thành viên trong khoảng thời gian em trải qua những tháng thực tap lap trinh web full stack tai ROSEN
Trang 3LOI CAM ON
Trân trọng gửi lời cảm ơn Công ty ROSEN Group đã tạo đi 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 các anh chị hướng dẫn, bản thân em nói riêng và cả nhóm thực tập nói chung đã tiếp thu được những kiến thức quan trọng để có thể ứng dụng công nghệ hiện tại mà công ty đang áp dụng để xây dựng nên những ứng dụng thực tế đáp ứng được yêu cân đặt ra của công ty Chân thành cảm ơn các anh chị trong nhóm hướng dẫn đã bỏ ra nhi ân thời gian, công sức để hướng dẫn em và các bạn hoàn
thành đợt thực tập này
Đặc biệt, em xin gửi lời cảm ơn đến anh Lê Tuấn Khải, đã trainng v` Angular Framework; cam on anh Lé Anh Duy, da training v€ ASP.NET Framework cho em; cam on anh Nguyễn Tuấn Anh đã danh thoi gian gidi thiéu vécéng ty cho em, hd tro’ em trong cach hòa nhập vào môi trưởng làm việc và văn hóa chung của ngồi nhà mới — c6ng ty ROSEN; bên cạnh
đó em còn muốn gửi lời cảm ơn tới các anh chị hướng dẫn khác đã dành thởi gian chia sẻ, hướng dẫn v`êcác chủ đêhay, các công nghệ hay đang được áp dụng tại công ty ROSEN để em
có thể thuận lợi trong việc tìm hiểu, nghiên cứu và học tập để cuối cùng có thể hoàn thiện được ứng dụng đáp ứng được yêu cẦâi đặt ra của chương trình thực tập này Em rất biết ơn và cảm kích với tất cả các anh chị hướng dẫn, đặc biệt là anh Lê Tuấn Khải và anh Lê Anh Duy đã nhiệt tình hướng dẫn, tận tình giúp đỡ cho em 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, 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ũng xin cảm ơn th% cô trong khoa Công nghệ ph 3n m`ần đã luôn nhiệt tình truy ` đạt
các kiến thức, kinh nghiệm thực tế, tư vấn ngh`ênghiệp, nhiệt tình hỗ trợ, tạo đi âi kiện giúp em hoàn thành việc thực tập và làm bài báo cáo thực tập này
Võ Trung Tín
Tp H Chí Minh, ngày 01 thang 10 nam 2022
Trang 4NHÂN XÉT CỦA KHOA
Trang 5MỤC LỤC
Chương 1: Giới thiệu công ty thực (ẬP cv TH HH He, 6
1 Giới thiệu v Êcông ty Gameloft ee cee - +c St TT TH HT TH TT TH ni 6
PÂ nu ôn vi an 6
Chương 2: Nội dung thực tẬP - .- SH ng TH nh Tà 8 1 Tìm hiểu công ty và các kỹ năng cơ ban trong CONG ty eee eeeeeeeeeeeeeeeeeeteeeneeees 8 2 Chương trình thực tẬP - - <1 SH HH HH nọ nh 8 2.1 Giai đoạn 1: Tự học, nghiên cứu v công nghệ, kĩ thuật (cá nhân) 9
2.1.1 Tự học, nghiên cứu v Slập trình frontend bằng Angular - 10
2.1.2 Tự học, nghiên cứu v lập trình frontend bằng Angular - 11
2.1.3 Tự học, nghiên cứu v élap trinh backend bằng ASP.NET 12
2.1.4 Tạo API và tích hợp backend vào ph tng dung frontend đã làm ở giai 5920015177 ắắnnẮD - 5 13 2.2 Làm project thực tế của công ty sau khi đã được tỉnh chỉnh, lược bớt chức năng 9100 900 14
ElINo v in) 15
“06a na 16
Chương 3: Chỉ tIẾt V ÊDFOJCÍ - Ặ SG 3n TH nh TT TH Tà kg 19 I0 a2 1n 19
2 Giao diện và các chức năng của W€bSi{€ ch, 20 /Mir ii ái in 20
2.2 Trang Launcher nh 20
PM) 9.010 7 21
2.4 Trang Quản lý PerimissSiOI -. 7à vn TT ng He, 23 PhN (9) 07.7 .4 24
2.6 AuithOrlZEIOII G1 HH TT TH tk 26 K0 8 27
cố 27
IV 188/200007.9/80-97.00 29
TỔNG KẾTT SH 1211 211351151511 215111111511 11111 1115111111211 11111E 1551211155111 rree 30
Trang 6CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
ROSEN
empowered by technology
1 Giới thiệu công ty ROSEN Group
Công ty ROSEN Group được thành lập vào năm 1981 bởi ông Hermann Rosen tại Đức, công ty ROSEN phát triển các giải pháp ph m`ềần và ph3n cứng để kiểm tra
và bảo trì nhi ân loại tài sản công nghiệp, chẳng hạn như đường ống, đảm bảo an toàn cho các hệ thống này Nằm trong Tập đoàn ROSEN hoạt động quốc tế với hơn 3.300 nhân viên, các Trung tâm Nghiên cứu và Phát triển của chúng tôi tại nhi `âi địa điểm khác nhau đ ông nghĩa với sức mạnh đổi mới cao và khả năng sáng tạo phi thưởng Công ty ROSEN Group hiện đang có một phòng nghiên cứu và phát triển phần môn tại trưởng Đại học Công nghệ Thông tin Thành phố H ôChí Minh nơi tập trung một nhóm đội ngũ lập trình đề nhiệt huyết của công ty ROSEN phát triển các phần
mn hién dai cho Nhóm ROSEN cho cing ty Các thành viên của đội ngũ kĩ sư lập
trình ROSEN Group tại UIT hợp tác chặt chế, chia sẻ kiến thức và hễ trợ lẫn nhau
Họ đưa những ý tưởng mới vào thực tế, vươn lên thách thức và thúc đẩy các công nghệ tiên phong Các phương pháp phát triển ph ân m`ần Agile là một ph ân không thể thiếu trong cách các kĩ sư lập trình ROSEN Group làm việc
2 Sản phẩm của công ty
ROSEN Group là đối tác công nghệ đáng tin cậy và phát triển các sản phẩm và dịch vụ sáng tạo - bao gẳn một loạt các giải pháp phần mền - hễ trợ hơn 25 chỉ nhánh trên toàn thế giới Các phần mềần, sản phẩm do ROSEN Group phát triển
được sử dụng cho các công cụ kiểm tra hoạt động, đánh giá dữ liệu, báo cáo cũng
như bảo trì nhi êi loại tài sản công nghiệp, chẳng hạn như đường ống, đảm bảo an
toàn cho các hệ thống này Để đạt được mục tiêu này, các kĩ sư lập trình tại ROSEN
Group đã sử dụng nhi âi công nghệ, các stacks phần m`ền khác nhau và quan tâm
đến việc sử dụng các công nghệ hiện đại như blockchain, AR / VR và Machine
Learning
Trang 7Một số mảng sản phẩm chính mà công ty đang thực hiện:
+ Automated Inspection Systems — Hệ thống kiểm tra tự động
+ Flowmeter — Lưu lượng kế
+ Software — Phân m âm
+ Instruments, tools tracking and locating systems — Hé thong cung cap thiét bi,
công cu theo dõi, định vỊ
Trang 8
CHƯƠNG 2: NỘI DUNG THỰC TẬ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, 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
- Được tạo tài khoản công ty ứng với thông tin cá nhân cung cấp
- 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 ty như thời gian đi làm, các quy định cn 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 ROSEN Group, quá trình thành lập và phát triển các sản phẩm của công ty Hiểu được lý do tại sao công ty ROSEN lại đặt văn phòng tại khuân viên trưởng UTT Ngoài ra, hiểu biết thêm v`êmôi trưởng làm việc, có thêm các kỹ nang 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, có cái
nhìn cơ bản v`Êquy trình phát triển sản phẩm thực tế
2 Chương trình thực tập
Mỗi tuần làm 20 tiếng, lên công ty 3 ngày(tu3n
Trang 9Frontend CUCD basic Git + version control
Azure build pipetne Week 2
Get used to front end
evelopment RouS & stale Narx component
technique management store
minimal API JNETiPbic Week 4
Middleware Dependency injection Filter & Attribute Back end
weak 5 Use a databaes with
Framework, ASP.NET
Jest framework
FE Unit test
Bề xUnit, Moq walee Fluentassertations
Trang 10Thời gian: 2 tuần
Nội dung:
- Hoc HTML, CSS, TypeScript và các khái niệm liên quan đến kĩ thuật lập trình frontend voi Angular Framework
- Có các buổi seminar hướng dẫn v`êcông nghệ liên quan
- Trong thời gian này, anh Lê Tuấn Khải đã hướng dẫn em tìm hiểu về lập trình frontend với Angular Framework và cung cấp roadmap trong việc tiếp cận Angular để em
Trang 11Kết quả: Có kiến thức cơ bản và cái nhìn chung v` việc lập trình website phần frontend bằng Angular, sử dụng linh hoạt những cú pháp lập trình dựa trên kiến thức đã tìm hiểu được
2.1.2 Lập trình frontend bằng Angular với ứng dụng mẫu đơn giản
Thời gian: 2 tuần
Nội dung:
- Thực hiện việc xây dựng website theo project mẫu đã được cung cấp
- Tìm hiểu v`êviệc viết unit test và E2E test trong Angular sau khi đã hoàn thiện phần giao diện và chức năng của project mẫu được cung cấp
- Thực hiện buổi trình bày vê những gì đã làm trong hôm đánh giá v êgiai đoạn tìm hiểu Angular
Thực hiện: Lập trình theo project mẫu được cung cấp dựa trên việc ứng dụng các kiến thức đã học ở giai đoạn trước
Kết quả: Hiểu thêm v ềlu ông hoạt động của các component trong Angular, có kinh nghiệm lập trình thực tế thay vì lí thuyết như ở giai đoạn trước, biết thêm v`êcác cách xử
lý, lập trình ngắn gọn, ứng dụng clean code, vv Kĩ năng được nâng cao hơn rất nhi ân
sO với giai đoạn trước
2.1.3 Tự học, nghiên cứu v €lap trinh backend bang ASPNET
- Có các buổi seminar hướng dẫn vêcông nghệ liên quan: Scrum Process, Migration
Database, Advanced LINQ, vv
Trang 12
cũng như dựa trên lộ trình đã nêu ở roadmap
Kết quả: Có kiến thức cơ bản và cái nhìn chung v`êviệc lập trình website ph %& backend bằng ASP.NET, sử dụng linh hoạt những cú pháp lập trình dựa trên kiến thức đã tìm hiểu được và cách giao tiếp giữa các module, các tầng ứng dụng với nhau
2.1.4 Tao API va tích hợp backend vào ph ứng dụng frontend đã làm ở giai đoan trước
Thơi gian: 2 tuần
Nội dung:
12
Trang 13- Thực hiện việc tạo và xây dựng các api, endpoint cung cấp các tác vụ, thao tác với
dữ liệu trên ASPNET — backend
- Tìm hiểu về việc viết unit test và integration test trong ASP.NET sau khi đã hoàn thiện các endpoints được yêu câI
- Tích hợp call api và thao tác với dữ liệu database vào project ph % frontend ở giai đoạn trước đã làm
- Thực hiện buổi trình bày vê những gì đã làm trong hôm đánh giá v êgiai đoạn tìm hiểu ASP.NET cũng như việc hoàn thiện project mẫu cho việc học, ầm hiểu
Thực hiện: Hoàn thiện project mẫu được cung cấp dựa trên việc ứng dụng các kiến thức
đã học ở giai đoạn trước (Backend và Frontend)
Kết quả: Kĩ năng được nâng cao hơn rất nhi ôi so với giai đoạn trước, biết cách chia các tầng của ứng dụng, biết tích hợp và giải quyết các vấn đề liên quan việc giao tiếp giữa frontend va backend Hoc hdi những vấn đêmới gặp phải và được tư vấn cách giải quyết bởi anh Lê Anh Duy và anh Lê Tuấn Khải
2.2 Giai đoạn 2: Làm project thực tế của công ty sau khi đã được tỉnh chỉnh, lược bớt chức năng khó (nhóm)
Trang 14
SCRUM
Development process
Sprinting
Working as a team for
advance sample
project
OAuth & OIDC Authentication & SSO
dentity Federation
with SAML
Thời gian: 10 tu’ — chia thanh 5 sprint, mdi sprint 2 tu
- Training v`êcác kĩ năng nâng cao, các công nghệ khó được áp dụng tại các sản phẩm phẦn m`ần của công ty ROSEN như IAM (Authentication & Authorization)
- Học v trau dỗ các kĩ năng mẫn trong quá trình làm việc nhóm
- Phân hóa nhóm thành hai đội ngũ lập trình chuyên hóa là frontend và backend để đẩy
nhanh tiến độ công việc
- Hoc v €cach phan chia công việc, đảm nhận công việc, ước tính thời gian hoàn thành
va cập nhật tiến độ công việc trên Azure — văn hóa Scrum
- Thực hiện việc xây dựng website quản lý User, Permission, Role kết hợp Authentication và Authorization trên Auth0
- Thực hiện buổi trình bày vào hôm cuối cùng của giai đoạn v`êproject đã làm, báo cáo tiến độ hoàn thành và đánh giá, rút kinh nghiệm
Thực hiện: Xây dựng project COLLA theo yêu cần được giao với vai trò là thành viên của đội Backend
14
Trang 15Kết quả:
- Biết cách áp dụng kĩ thuật lập trình liên quan tới LAM
- Hoàn thiện được project được giao, đáp ứng các chức năng được yêu c3
Chỉ tiết đ án sẽ được nói ở phẦn sau