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

Báo cáo thực tập lập trình asp net mvc và xây dựng ứng dụng hỗ trợ nhân sự

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 (309.21 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 ASP.NET MVC VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ NHÂN SỰ

Công ty thực tập

Logix Technology Vietnam

Người phụ trách

Đặng Vũ Minh Quang

Thực tập sinh

Đặng Anh Tú

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


LỜI MỞ ĐẦU

Ngày nay, lập trình web là một bộ phận không thể thiếu của ngành công nghiệp
phần mềm. Với tốc độ phát triển vô cùng mạnh mẽ, ngành lập trình 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.
Ngành lập trình web được sinh ra do nhu cầu tiện dụng, thoát ly khỏi lối đi là
những ứng dụng desktop mất nhiều thời gian cài đặt. Công nghệ .NET là một trong
những công nghệ phổ biến và có một lịch sử lâu dài trong lĩnh vực phát triền phần mềm


web, từ những năm 2000 với .NET Framework và gần đây là .NET Core. Vì lí do đó và
sự u thích đối với ngơn ngữ lập trình C#, em quyết định chọn lập trình web làm cơ sở
cho việc học tập và bắt đầu hành trình công việc của bản thân.
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 việc trong một môi trường chuyên nghiệp, em có dự
định là sẽ thực tập vào khoảng thời gian cuối kì học thứ 5 và đầu kì học thứ 6. Vì vậy,
sau khi tham gia phỏng vấn ở một số công ty, em quyết định chọn công ty Logix
Technology – một công ty startup với đội ngũ nhân viên trẻ trung và giám đốc với kinh
nghiệm sâu rộng về lĩnh vực lập trình Web, làm nơi xuất phát cho bản thân mình.


LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty Logix Technology Vietnam đã 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 ứng dụng web hoàn chỉnh. 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 hồn thành đợt thực tập này.
Đặc biệt cảm ơn anh Đặng Vũ Minh Quang, chị Lương Thị Như Quỳnh đã hướng
dẫn về công nghệ .Net, hướng dẫn, giúp đỡ cho chúng 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
Mai Văn Trãi, đã hướng dẫn ReactJS, hỗ trợ chúng em rất nhiều về các vấn đề kỹ thuật
phía giao diện người dùng trong quá trình xây dựng ứng dụng web; cảm ơn anh Nguyễn
Duy Chương, đã chỉ dẫn chúng em về cách đưa ra lối suy nghĩ, tiếp cận một dự án thực
tế, cách phân tích và lên kế hoạch để giải quyết những yêu cầu của người dùng một cách
hiệu quả.
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.
Đặng Anh Tú

TP.HCM, ngày tháng 11 năm 2022


NHẬN XÉT CỦA KHOA

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


Mục lục
Chương 1.

Giới thiệu công ty thực tập ....................................................................... 1


1.1. Giới thiệu công ty Logix Technology ................................................................ 1
1.2. Sản phẩm của công ty ......................................................................................... 1
Chương 2.

Nội dung thực tập ..................................................................................... 2

2.1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty ...................................... 2
2.2. Nghiên cứu kỹ thuật ........................................................................................... 3
2.3. Tham gia dự án ................................................................................................... 7
2.4. Lịch làm việc ...................................................................................................... 7
Chương 3.

Chi tiết về dự án ..................................................................................... 10

3.1. Giới thiệu về ứng dụng ..................................................................................... 10
3.2. Thực hiện .......................................................................................................... 10
3.3. Kế hoạch và triển khai ...................................................................................... 10
Chương 4.

Tổng kết .................................................................................................. 14

TÀI LIỆU THAM KHẢO .............................................................................................. 15


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

1.1. Giới thiệu công ty Logix Technology
Logix Technology là công ty phát triển phần mềm outsourcing được thành lập năm
2015. Công ty chuyên về các công nghệ của Microsoft, đặc biệt là các công nghệ cloud
và Azure, với một dự án khởi nghiệp trong mảng bán hàng nhỏ lẻ; cơng ty cũng có một

đội ngũ hoạt động trong các lĩnh vực như mobile app hay window app. Ngồi ra cơng ty
liên doanh với Dune & Partner vào năm 2017 và SIC-Group vào năm 2020.
1.2. Sản phẩm của công ty
Khách hàng của công ty đến từ nhiều quốc gia như Anh, Mĩ, Hà Lan, Thụy Điển,
Nhật Bản. Sản phẩm do công ty phát triển đa dạng từ ứng dụng web, cho tới ứng dụng
mobile, các dịch vụ kiểm thử, … Một dự án khởi nghiệp khác từ phía cơng ty là một ứng
dụng hỗ trợ người dùng tạp hóa nhỏ lẻ tiếp cận với hình thức mua hàng online với các
nhà phân phối, giúp số hóa các cơng việc giấy tờ hiện nay.

1


Chương 2. Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình ASP.Net MVC” 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 ASP.Net MVC trong xây dựng ứng dụng
web, đồ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 làm việc chun nghiệp.
2.1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
2.1.1.1.

Thời gian

Ngày 27 tháng 12 năm 2021.
2.1.1.2.

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

Kết quả

Hiểu thêm về công ty Logix Technology, 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


2.2. Nghiên cứu kỹ thuật
2.2.1 Các công cụ làm việc
2.2.1.1.

Thời gian

Ngày 27 tháng 12 năm 2021.
2.2.1.2.

Nội dung

Tìm hiểu về các cơng cụ sẽ được sử dụng trong q 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ư GIT,
Microsoft Teams - sử dụng trong làm việc nhóm, Docker – một nền tảng giúp tự động

triển khai các ứng dụng cần thiết có sẵn cho dự án, Microsoft Azure – một nền tảng cloud
cung cấp một số tiện ích ứng dụng vào việc xây dựng dự án, Jira – sử dụng để lên kế
hoạt và thực hiện cơng việc theo mơ hình Scrum.
2.2.1.3.

Thực hiện

Thực hành sử dụng các phần mềm đã nêu trên.
2.2.1.4.

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,
tiếp cận với các công nghệ đang được sử dụng thực tế ở công ty.
2.2.2 Tìm hiểu ngơn ngữ C# và các vấn đề nâng cao
2.2.2.1.

Thời gian

Từ ngày 28 tháng 12 năm 2021 đến ngày 31 tháng 12 năm 2021.

3


2.2.2.2.

Nội dung

Được training về các kỹ thuật nâng cao của C#, những kiến thức quan trọng cho việc
tối ưu phía back-end.

• 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 ả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 đối tượng trong dự án sao cho hiệu quả mà không bị sai
yêu cầu, thừa thãi.
• Dependency Injection
Thực tập sinh sẽ được hướng dẫn về lí do sử dụng, cách triển khai Dependency
Injection cũng như ngun lí Dependency Inversion trong SOLID.
• Clean Architecture
Cách xây dựng một ứng dụng dựa trên kiến trúc Clean Architecture.
2.2.2.3.

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.
• Làm bài seminar để tổng kết lại kết quả đã thu được sau khi nghiên cứu.
2.2.2.4.

Kết quả:

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

4


2.2.3 Lập trình giao diện với ReactJS và thư viện Material UI

2.2.3.1.

Thời gian

Từ ngày 03 tháng 01 năm 2022 đến ngày 06 tháng 01 năm 2022.
2.2.3.2.

Nội dung:

Các kiến thức cơ bản về ReactJS để có thể tạo ra phía giao diện của ứng dụng web.
Đồng thời sử dụng thư viện Material UI để tinh chỉnh giao diện.
• Các khái niệm cơ bản về Javascript, ReactJS
Nắm được các khái niệm cơ bản về Javascript, ReactJS. ReactJS là một thư viện mã
nguồn mở để xây dựng giao diện người dùng dựa trên các thành phần UI riêng lẻ. Nắm
được cơ bản về life cycle của React và tổ chức component tree một cách hiệu quả.
Thư viện Material UI cung cấp một tập hợp các thành phần React đơn giản, dễ dàng
tinh chỉnh và truy cập.
Ngồi ra, trainer cịn cung cấp cho thực tập sinh những khái niệm cơ bản trong ReactJS
như React Hooks, State Management (Redux), Form (React Hook Form), …, là những
khái niệm rất cơ bản và quan trọng trong lập trình ReactJS.
• React Hooks
Hooks cho phép sử dụng state và các tính năng khác của Ract mà khơng phải khởi
tạo class. Tìm hiểu về một số hook cơ bản.
• React Redux
Là một thư viện mã nguồn mở để quản lý và lưu trữ các state trong ứng dụng.
• React Hook Form

5



Là một thư viện quản lý form linh hoạt, có thể mở rộng và hiệu quả.
2.2.3.3.

Thực hiện

• Tham gia đầy đủ các buổi trainning.
• Xây dựng giao diện sử dụng ReactJS và áp dụng thư viện Material UI.
• Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.
2.2.3.4.

Kết quả

• Hiểu được những khái niệm cơ bản trong lập trình giao diện với ReactJS.
• Hiểu được cách áp dụng Material UI với ReactJS.
• Xây dựng thành cơng giao diện cho ứng dụng web có áp dụng Redux và React
Hook Form.
2.2.4 Sử dụng Microsoft Azure B2C và Blob Storage
2.2.4.1.

Thời gian

Từ ngày 07 tháng 02 năm 2022 đến ngày 10 tháng 02 năm 2022.
2.2.4.2.

Nội dung

Các ứng dụng cơ bản của Microsoft Azure vào một số tính năng trong ứng dụng
web.
• Azure B2C
Azure B2C cung cấp cơ chế xác thực người dùng như một dịch vụ. Khách hàng sử

dụng tài khoản mạng xã hội, tài khoản công ty, tài khoản các nhân để định danh nhằm
truy cập vào ứng dụng và APIs.
• Azure Blob Storage

6


Azure Blob Storage là một tài nguyên nhằm lưu trữ các dạng dữ liệu trên đám mây,
có thể truy cập, chỉnh sửa bằng giao diện có sẵn hoặc bằng cách phương thức lập trình.
2.2.4.3.

Thực hiện

• Tham gia đầy đủ các buổi training.
• Áp dụng Azure B2C và Azure Blob Storage vào dự án.
2.2.4.4.

Kết quả

• Áp dụng Azure B2C và Azure Blob Storage vào dự án thành công.
2.3. Tham gia dự án
Sau hai tuần đượ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ề C# .Net, ReactJS. Trong một tháng tiếp theo, thực tập sinh được tham gia
vào dự án xây dựng API bằng ADO.Net. Một tháng rưỡi cuối cùng, thực tập sinh được
tham gia xây dựng ứng dụng hỗ trợ nhân sự của công ty sử dụng ASP.NET MVC và
ReactJS.
2.4. Lịch làm việc
Mức
Tuần


Công việc

Người hướng

độ

dẫn

hồn
thành

-

Tìm hiểu về cơng ty, cách tổ
chức của cơng ty

1

-

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
7

Chị Nga


100%

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


-

2

-

Tìm hiểu ngơn ngữ lập trình

Anh Quang,

C# và các kiến thức nâng cao

chị Quỳnh,

Tìm hiểu ngơn ngữ Javascript

anh Trãi

100%

và framework ReactJS
-


Làm bài test kết hợp .Net và
ReactJS

3

Tham gia dự án sử dụng

Anh Quang,

ADO.Net và ASP.Net MVC

anh Trãi

100%

để phát triển API
4

Tham gia dự án sử dụng

Anh Quang,

ADO.Net và ASP.Net MVC

anh Trãi

100%

để phát triển API

5

Tham gia dự án sử dụng

Anh Quang,

ADO.Net và ASP.Net MVC

anh Trãi

100%

để phát triển API
6

Tham gia dự án sử dụng

Anh Quang,

ADO.Net và ASP.Net MVC

anh Trãi

100%

để phát triển API
-

Lên ý tưởng, đề xuất yêu cầu,


Anh Chương

100%

Anh Chương

100%

Anh Chương

100%

công nghệ xây dựng ứng dụng

7

hỗ trợ nhân sự
8

9

-

Bản thiết kế giao diện

-

Xây dựng cơ sở dữ liệu

-


Xây dựng khung giao diện

-

Xây dựng khung back-end

8


-

Triển khai các tính năng đã đề
xuất

10

-

Tiếp tục triển khai các tính

Anh Chương

90%

Anh Chương

100%

100%


năng
-

Sử dụng Azure B2C để xây
dựng tính năng đăng nhập

11

-

Sử dụng Azure Blob Storage
để làm nơi lưu trữ file

12

-

Tiếp tục triển khai tính năng

-

Sửa lỗi và chuẩn bị demo

Anh Chương,

-

Thuyết trình sản phẩm


anh Triết

9


Chương 3. Chi tiết về dự án
3.1. Giới thiệu về ứng dụng
Nhận thấy rằng việc quản lý thông tin nhân viên trong cơng ty cịn thiếu sót và thủ
cơng, đồng thời việc xin nghỉ phép của nhân viên còn rườm rà, khó ghi nhớ thời gian
nghỉ phép. Ứng dụng hỗ trợ nhân sự giúp theo dõi thông tin làm việc của nhân viên,
đồng thời giúp cho nhân viên xin nghỉ phép một cách dễ dàng hơn.
3.2. Thực hiện
Nhóm thực tập bao gồm 2 thành viên:
• Đặng Anh Tú
• Đỗ Văn Bảo
Và sự giúp đỡ tận tình của các anh chị trong công ty Logix Technology.
3.3. Kế hoạch và triển khai
3.3.1 Giai đoạn lên ý tưởng và đề xuất tính năng
3.3.1.1.

Nội dung

• Lên ý tưởng cho các yêu cầu nghiệp vụ và phi nghiệp vụ, đưa ra những luồn
hoạt động chính và phụ, phụ thuộc vào nhu cầu thực tế để đánh giá độ ưu tiên
của các tính năng.
• Đề xuất các tính năng cốt lõi của ứng dụng và trình bày, giải thích.
3.3.1.2.

Kết quả:


• Đưa ra danh sách các user story của ứng dụng.
• Hình dung luồng hoạt động của ứng dụng.
• Xây dựng các bản vẽ tay cho giao diện.

10


3.3.2 Giai đoạn xây dựng khung sườn cho ứng dụng
3.3.2.1.

Nội dung

• Xây dựng khung ứng dụng phía back-end sử dụng ASP.Net Web API theo kiến
trúc Clean Architecture.
• Xây dựng khung ứng dụng phía front-end bằng ReactJS và tinh chỉnh giao diện
bằng thư viện Material UI.
• Xây dựng việc kết nối ứng dụng với Microsoft Azure.
• Hồn thiện bản thiết kế giao diện.
• Thiết kế cơ sở dữ liệu và triển khai.
3.3.2.2.

Kết quả

• Hồn thành khung ứng dụng phía back-end theo đúng kiến trúc đề ra.
• Có thể tinh chỉnh giao diện bằng Material UI và sử dụng các thành phần của
ReactJS.
• Hồn thành kết nối với Microsoft Azure.
• Hồn thành bản thiết kế giao diện trên Figma.
• Hồn thành sơ bộ cơ sở dữ liệu bao gồm các bảng quan trọng.
3.3.3 Giai đoạn triển khai tính năng

3.3.3.1.
Số thứ tự
1

Giai đoạn 1 – Các tính năng cơ bản

Tính năng

Nội dung

Hồn thành

Đăng nhập, dăng Sử dụng Microsoft

Kết nối thành công Azure

xuất

B2C

Azure B2C triển khai

Liên kết với cơ sở dữ liệu

11


2

Thơng tin nhân


Hiển thị thơng tin cá

Hồn thành việc hiển thị

viên

nhân nhân viên

thơng tin nhân viên

Hiển thị thơng tin làm

Hồn thành hiển thị số

việc

ngày phép còn lại, số ngày
phép đã dùng

3

Danh sách nghỉ

Hiển thị danh sách nghỉ

Hoàn thành hiển thị danh

phép


phép theo loại

sách nghỉ phép theo loại

Hiển thị chi tiết thông
tin nghỉ phép

phép hằng năm và phép
không lương
Hiển chị những thơng tin
quan trọng của đơn nghỉ
phép

4

Lưu hình ảnh và

Lưu hình ảnh và file lên

Xử lý hình ảnh, file và lưu

file

Azure Blob Storage

trữ trên Azure Blob
Storage thành công

3.3.3.2.


Giai đoạn 2 – Tính năng cốt lõi

Số thứ tự

Tính năng

Nội dung

1

Danh sách nghỉ

Hiển thị danh sách nghỉ

Hoàn thành hiển thị danh

phép

phép theo loại

sách các loại khác

12

Hoàn thành


2

3


Tạo đơn nghỉ

Tạo đơn nghỉ phép và

Tạo mới đơn nghỉ phép có

phép

gửi tới người cấp trên

đính kèm và gửi tới người

trực tiếp

quản lý

Xét duyệt đơn

Hiển dị danh sách đơn

Hiển thị danh sách nghỉ

xin nghỉ phép

xin nghỉ phép của cấp

phép của cấp dưới và cho

dưới


phép đồng ý, từ chối

3.3.4 Giai đoạn nghiệm thu kết quả và báo cáo
Dựa trên các yêu cầu về tính năng, cơng nghệ, kiến trúc hệ thống, … sau hơn 1
tháng thực hiện dự án, nhóm thực tập đã hồn thành sơ bộ các tính năng cốt lõi đã đề
ra:
• Thơng tin chi tiết nhân viên
• Danh sách các đơn xin nghỉ phép
• Tạo mới đơn xin nghỉ phép
• Theo dõi đơn nghỉ phép của nhân viên và xét duyệt
Ngồi ra, nhóm cũng đề xuất một vài tính năng để phù hợp với quy trình làm việc
của công ty để thực hiện trong tương lai. Sau quá trình thực tập 3 tháng, nhóm thực tập
có một buổi trình bày về quá trình thực tập, về dự án đã thực hiện trong quá trình thực
tập với những anh chị cấp trên.

13


Chương 4.Tổng kết
Như vậy, chỉ trong vòng hơn một tháng ngắn ngủi, nhóm đã kịp hồn thành một
ứng dụng chạy trên nền tảng web. Ứng dụng đã có khá đầy đủ các tính năng đã đề ra ban
đầu. Do thời gian có hạn nên giao diện ứng dụng cịn đơn giản, hình ảnh chưa được đẹp
như mong đợi. Nhưng do ứng dụng phát triển theo kiến trúc có tính kế thừa, dễ dàng mở
rộng nên sau này khi có thời gian sẽ có thể phát triển lên mức cao hơn.
Chân thành cảm ơn sự giúp đỡ của các anh chị trong cơng ty Logix Technology,
sự nỗ lực của nhóm thực tập để có thể hồn thành dự án.

14



TÀI LIỆU THAM KHẢO
Tài liệu tiếng Anh
[1] Material UI , "Overview”. [Online]. Available: Overview - Material UI
(mui.com)
[2] Facebook Open Source , "Getting Started - React". [Online]. Available: Getting
Started – React (reactjs.org)
[3] Bill Luo. , "Tailwind CSS". [Online]. Available: Get Started | React Hook Form Simple React forms validation (react-hook-form.com)
[4] Dan Abramov and Redux documentation’s authors. , "Tutorial Overview" 04
February 2022. [Online]. Available: Tutorials Overview | Redux Toolkit (reduxtoolkit.js.org)
[5] Microsoft. , "C# Advanced". [Online] . Available: C# Advanced | Microsoft
Learn
[6] Scrum Docs. , "What is Scrum". [Online] . Available: What is Scrum?
[7] Microsoft. , "What is Azure Active Directory B2C" . [Online] . Available: What
is Azure Active Directory B2C? | Microsoft Learn
[8] Microsft. , "Azure Blob Storage" . [Online] . Available: Azure Blob Storage |
Microsoft Azure
[9] Uncle Bob. , "The Clean Architecture" 13 08 2022. [Online] . Available: Clean
Coder Blog
[10] Microsoft. , "Dependency injection in ASP.NET Core" 06 04 2022. [Online] .
Available: Dependency injection in ASP.NET Core | Microsoft Learn
[11] Microsoft. , "Common web application architectures" 11 01 2022. [Online] .
Available: Common web application architectures | Microsoft Learn



×