Chương 2: Nội dung thực tậpĐợt thực tập nhằm mục đích giúp sinh viên thực tập được đào tạo về lập trình back-end với ASP.NET Core, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm
Trang 1TRƯỜ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 WEB VỚI ASP.NET CORE
Công ty thực tập: TGL Solutions Người phụ trách: Lý Hồng Bảo Thực tập sinh: Nguyễn Hữu Minh Quý
TP Hồ Chí Minh, tháng 12 năm 2021
Trang 2LỜI MỞ ĐẦU
Ngày nay, với sự phát triển nhanh chóng của internet, các ứng dụng web cũng ngày càng nhiều nên việc phát triển các ứng dụng web cũng đã trở nên rất phổ biến trong ngành công nghệ thông tin
Các ứng dụng web được sinh ra là do nhu cầu sử dụng internet hiện nay rất cao Các ứng dụng web cũng đem lại nhiều thuận tiện cho người dùng khi chỉ cần thiết bị hỗ trợ kết nối mạng
là đã sử dụng được 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 hơn 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 ứng dụng web 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ỳ này Vì vậy, em quyết định chọn TGL Solutions - một môi trường lý tưởng, hiện đại, chuyên nghiệp, trẻ trung năng động - là nơi sẽ giúp em thực hiện được dự định này
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty TGL Solutions đã 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ự giúp đỡ nhiệt tình của mọi người trong công
ty, sự hỗ trợ nhiệt tình của các anh trong team TNF, em đã tiếp thu được những kiến thức quan trọng để có thể cùng các thành viên trong team tạo ra một ứng dụng web Chân thành cảm ơn các anh trong team TNF đã 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 chị Ly Bê Ly, đã hướng dẫn, giúp đỡ cho em tận tình khi em gặp những khó khăn trong việc làm quen với môi trường mới; cảm ơn anh Lý Hồng Bảo đã hỗ trợ em rất
nhiều về các vấn đề tìm hiểu các kỹ thuật trong việc xây dựng API web server trong quá trình
làm web; cảm ơn anh Phan Ngọc Thịnh – team leader đã quan tâm, giúp đỡ em trong khoảng
thời gian đầu
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 Hữu Minh Quý TpHCM, ngày 20 tháng 12 năm 2021
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
Mục lục
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 11
Trang 6Chương 1: Giới thiệu công ty thực tập
1 Giới thiệu công ty TGL Solutions
TGL Solutions (gọi tắt TGL, tiếng Việt: ) là một công ty Việt Nam trong lĩnh vực IT hướng đến việc cung cấp các giải pháp (solutions) một cách thông minh và nhanh nhất, qua đó tối ưu hoá lợi nhuận cho khách hàng
Công ty cổ phần TGL Solutions được thành lập vào tháng 07/2019 với hai thành viên Từ khi thành lập cho đến nay, công ty luôn phát triển không ngừng và đặt mục tiêu phát triển liên tục vững mạnh hơn nữa trong thời gian tới
Hiện có hơn 50 kỹ sư tài năng đang làm việc, cùng nhau xây dựng hình ảnh TGL năng động và chuyên nghiệp trên bản đồ công nghệ thông tin
Phương châm: Smart & Speed Solutions
Giá trị cốt lõi: Xây dựng công ty với 2 giá trị cốt lõi là: NHÂN HOÀ
- NHÂN: là con người Tôn chỉ của TGL Solutions chính là xây dựng công ty lấy con người làm trung tâm Lợi nhuận thu được từ việc kinh doanh sẽ được dùng để đầu tư
về trang thiết bị để tạo môi trường làm việc tốt hơn, đầu tư các khóa đào tạo để nâng cao kỹ năng cho mọi người Bên cạnh đó, sẽ có các kì bonus theo dự án (không định kỳ), các kỳ đánh giá tăng lương 2 lần/năm
- HÒA: là sự hoà hợp, là sự đồng thuận, đồng lòng.Khi bàn luận về một vấn đề, chúng
ta có thể thoải mái tranh luận, thoải mái góp ý.Sẽ có một lãnh đạo đưa ra quyết định cuối cùng và chịu trách nhiệm về quyết định của mình
Trang 7Định hướng công ty:
Tăng số lượng nhân viên lên 40+ vào tháng 12/2021, 100 nhân viên vào tháng 12/2022 Tiếp tục đi theo hướng chính là outsourcing trong vòng 3 năm tới
- Một là, theo xu hướng chung của thế giới là cloud services Công ty sẽ mở rộng
service từ AWS ra GCP và Azure Chinh phục SaaS (Salesforce)
- Hai là, xông pha vào một lĩnh vực hẹp, ở đó IT chưa phát triển lắm và còn ít đối thủ cạnh tranh Hiện tại công ty đang hợp tác với 1 kiến trúc sư rất giỏi người Nhật để
phát triển các projects liên quan đến xây dựng nhà ở, kiến trúc
2 Sản phẩm của công ty
Những sản phẩm phần mềm của TGL Solutions được phát triển nhắm tới tệp khách hàng rất đa dạng, từ trong nước cho tới ngoài nước, từ chính phủ cho tới các doanh nghiệp, tập đoàn lớn Là một công ty chuyên cung cấp các giải pháp, các sản phẩm trải rộng trên nhiều lĩnh vực TGL Solutions chuyên cung cấp các sản phẩm phần mềm phục vụ nhiều loại hình dịch vụ khác nhau, đem lại trải nghiệm tốt nhất cho người dùng
Một số dự án nổi bật:
2.1 MIRAI EC System
TÍNH NĂNG:
- Tính năng đặt hàng, mua bán sản phẩm, tích lũy và đổi point
- Góc VR Showroom, góc video giới thiệu sản phẩm của các nhà sản xuất
- Tính năng livestream: Các streamer có thể thực hiện tổ chức livestream, lên lịch livestream.Người dùng có thể xem livestream của các streamer và mua hàng trực tiếp
- Tính năng đấu giá sản phẩm: Các streamer có thể tổ chức đấu giá sản phẩm Người dùng có thể tham gia đấu giá sản phẩm, người đấu giá thành công có thể thực hiện order với giá thắng
- Trang admin: Trang admin: Quản lý sản phẩm, quản lí đặt hàng, số points, doanh thu ; Xuất excel theo đơn đặt hàng, theo sản phẩm, theo người dùng ; Có thể tạo
Trang 8các link quickLogin đăng nhập vào trang Top, Admin; Có hệ thống gửi mail thông báo các trạng thái của đơn đặt hàng, trạng thái thay đổi points đến người dùng và người chịu trách nhiệm đơn hàng
CÔNG NGHỆ:
Nextjs, Ant Design, Agora, Socket, GraphQL, webRTC, NestJS, Base Web
Trang 92.2 APP QUAY SỐ ĐA CHỨC NĂNG (QUAY SỐ ONLINE/ TRỰC TIẾP/
QR CODE)
TÍNH NĂNG:
- Quay số online hoặc trực tiếp tại cửa hàng
- Quản lý thông tin người quay số, kết quả xổ số, thiết lập tỉ lệ xổ số mong muốn
- Tùy chỉnh thiết kế thích hợp với user dựa trên mô hình SaaS
CÔNG NGHỆ:
ReactJS (Nextjs), Oracle, GraphQL, NestJS
Trang 102.3 APP QUẢN LÝ SERIAL CODE
TÍNH NĂNG:
- Tạo các Serial Code để quay số trúng thưởng
- Quản lý các Serial code đã tạo
- Tự động xuất các QR Code tương ứng với Serial Code
CÔNG NGHỆ:
ReactJS (Nextjs), Oracle, GraphQL, NestJS
Trang 11Chương 2: Nội dung thực tập
Đợt thực tập nhằm mục đích giúp sinh viên thực tập được đào tạo về lập trình back-end với ASP.NET Core, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, giao tiếp, trao đổi với các thành viên khác trong công ty 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 chuyên 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 giám đốc công ty 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
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 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 TGL Solutions, quá trình thành lập và phát triển Có
thêm hiểu biết về cách thức làm việc trong một công ty công nghệ thống tin đồng thời thực tập sinh có ý thức hơn trong việc làm việc có kế hoạch, trao đổi, giải thích với những thành viên khác trong công ty
2 Tìm hiểu về dự án
Thời gian : 5 ngày
Nội dung: Giới thiệu, đưa tài liệu để tìm hiểu về dự án
Thực tập sinh được người hướng dẫn giới thiệu tổng quan về dự án Ngoài ra, thực tập sinh được đưa các tài liệu liên quan về dự án để tìm hiểu
Kết quả : Hiểu thêm về dự án sẽ làm, về cách làm việc với vai trò lập trình viên trong
công ty
3 Nghiên cứu kỹ thuật
3.1 Các công cụ làm việc
Thời gian: 2 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.
Trang 12Trong thời gian này, người phụ trách đã 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ư Microsoft Teams - sử dụng trong quá trình làm việc nhóm, DBeaver - một công cụ quản trị cơ sở dữ liệu mã nguồn mở, Visual Studio - một công cụ hỗ trợ lập trình, SourceTree – Git GUI clients
Thực hiện : Làm quen với cách 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í.
3.2 Tìm hiểu về ASP.NET Core và Entity Framework
Thời gian: 5 ngày (1 tuần)
Nội dung: Được hướng dẫn thêm về các kỹ thuật lập trình web nâng cao, những kiến
thức quan trọng cho việc tối ưu lập trình web bằng ASP.NET Core
- 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 Ngoà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 đối tượng game
Thực hiện:
- Tham gia meeting hàng ngày của team
- Hoàn thành các công việc được giao
- Tìm hiểu thêm về ngôn ngữ C#
- Thực hành tạo API đơn giản với ASP.Net Core và Entity Framework
- Thực hành tạo migration với Entity Framework Code First Approach
Kết quả:
- Nâng cao kỹ năng lập trình với ngôn ngữ C#
- Hiểu thêm được những kiến thức mới với lập trình back-end với ASP.Net Core
- Ngoà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
3.3 Lập tr ình Web Back-end với ASP.NET Core, Entity Framework
Nội dung: Các kiến thức cơ bản về ASP.NET Core và Entity Framework để có thể
hoàn thành một Web API đơn giản
- Khái niệm cơ bản về ASP.NET Core:
Trang 13● Nó là một open-source mới và framework đa nền tảng (cross-platform) cho việc xây dựng những ứng dụng hiện tại dựa trên kết nối đám mây, giống như web apps, IoT và backend cho mobile
● Ứng dụng ASP.NET Core có thể chạy trên NET Core hoặc trên phiên bản đầy đủ của NET Framework Nó được thiết kế để cung cấp và tối ưu
development framework cho những dụng cái mà được triển khai trên đám mây (clound) hoặc chạy on-promise
● Nó bao gồm các thành phần theo hướng module nhằm tối thiểu tài nguyên
và chi phí phát triển, như vậy bạn giữ lại được sự mềm giẻo trong việc xây dựng giải pháp của bạn Bạn có thể phát triển và chạy những ứng dụng ASP.NET Core đa nền tảng trên Windows, Mac và Linux
● Đồng thời nó đã trở thành một mã nguồn mở Đây là một thay đổi rất lớn
và là quan trọng nhất của ASP.NET Core Điều mà trước đây khó có một lập trình viên nào có thể nghĩ đến Có lẽ đó cũng là một xu thế mà các ngôn ngữ lập trình hiện nay đang hướng tới
- Khái niệm Entity Framework:
Hiểu một cách đơn giản, entity framework là một thư viện ORM (Object Relational Mapping) hay một framework làm việc cùng cơ sở dữ liệu do microsoft khuyến nghị giúp phản xạ quan hệ đối tượng qua lại giữa các object của một chương trình, bảng cơ sở dữ liệu, bản ghi,
Thực hiện :
- Tham gia các buổi meeting hàng ngày
- Làm các công việc được giao
- Tìm hiểu thêm các công nghệ mới dựa vào các tài liệu trên mạng và việc đặt câu hỏi cho người phụ trách hướng dẫn
Kết quả :
- Hiểu được quá trình xây dựng một Web API bằng ASP.Net Core, Entity Framework
Trang 144 Thực hiện project
Sau hai tuần thực tập sinh được giới thiệu, hướng dẫn và thực hành, thực tập sinh đã nắm được những kiến thức cơ bản về C#, ASP.Net Core và Entity Framework Trong khoảng thời gian tiếp theo, thực tập sinh được tham gia vào dự án của công ty và áp dụng những kiến thức đã học để hoàn thành tốt các công việc được giao Chi tiết dự án sẽ được nêu ở phần sau
5 Lịch làm việc
1
- 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
Anh Lê Tiến Triển Chị Lê Bê Ly Anh Lý Hồng Bảo
2
- Tìm hiểu về thông tin dự án Anh Lý Hồng Bảo
Anh Phan Ngọc Thịnh Anh Trần Hoàng Sơn Anh Trần Thanh Vũ
3 - Tìm hiểu về ASP.NET core
- Tìm hiểu về Entity Framework Code First
Anh Lý Hồng Bảo
4
- Thực hành tạo migration để thêm cột vào trong bảng cơ sở dữ liệu
- Thực hành tạo một vài API cơ bản
Anh Lý Hồng Bảo
5
- Tìm hiểu về Box API để upload file
- Tạo chức năng cho phép người dùng bình luận, trao đổi về file được upload sử dụng Box API
Anh Lý Hồng Bảo
6
- Tạo API CRUD vị trí bản đồ, cho phép người dùng upload hình ảnh lên theo vị trí bản đồ
- Tạo API gửi mail cho người dùng liên quan mỗi khi công việc hoàn thành thêm một bước
Anh Lý Hồng Bảo Anh Phan Ngọc Thịnh
7
- Tạo API trả về danh sách giá trị của form
- Tạo API cho phép thêm, cập nhật, xóa giá trị trong form
Anh Lý Hồng Bảo Anh Phan Ngọc Thịnh
8
- Tìm hiểu về middleware trong ASP.Net Core
- Tìm hiểu thêm về logging trong ứng dụng ASP.Net Core
Anh Lý Hồng Bảo
Trang 15Chương 3: Chi tiết về project
1 Giới thiệu về dự án
Dự án được sử dụng để làm nơi quản lý tiến độ công việc, trao đổi các tài liệu giữa các bên: công ty xây dựng, nhà thầu và công ty thiết kế kiến trúc xây dựng Đầu ra của một công việc trong hệ thống là bản vẽ xây dựng từ đó công ty xây dựng có thể dễ dàng làm việc
2 Các màn hình chính
2.1 Danh sách các công việc
Trang 162.2 Thông tin công việc
- Chi tiết công việc
- Quy trình thực hiện công việc
Trang 172.3 Thông tin vị trí
Trang 182.4 Upload file CSV Postcode
2.5 Nhập thông tin vào form
Trang 19TÀI LIỆU THAM KHẢO
Entity Framework:Entity Framework | Microsoft Docs
ASP.Net Core:Introduction to ASP.NET Core | Microsoft Docs
MySQL:MySQL :: MySQL Documentation
Serilog:Serilog — simple NET logging with fully-structured events
Trang 20TỔNG KẾT
Như vậy, chỉ trong vòng hai tháng ngắn ngủi, thực tập sinh đã học thêm những kiến thức mới về lập trình web với ASP.Net Core, Entity Framework Ngoài ra, em còn được biết thêm về quy trình làm việc tại môi trường chuyên nghiệp, cách làm việc nhóm, giao tiếp giữa các thành viên để có thể chuẩn bị tốt hơn cho tương lai
Chân thành cảm ơn sự giúp đỡ của các anh chị công ty TGL Solutions, đặc biệt là nhóm TNF để em có một kì thực tập thành công