ĐẠI HỌC QUỐC GIA TP.HCM
ĐẠ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:
HỆ THỐNG QUẢN LÝ PHIẾU LƯƠNG PAYSLIP
Công ty thực tập: Wata Solutions
Người phụ trách: Phạm Hoàng Nam
Thực tập sinh: Nguyễn Trọng Khanh – mssv: 17520627
Tp.Hồ Chí Minh, tháng 1 năm 2021
LỜI MỞ ĐẦU
Trong thời đại 4.0, số lượng người sử dụng internet ngày càng tăng. Do nhu cầu
người dùng ngày càng cao nên việc phát triển web có tốc độ phát triển vô cùng mạnh
mẽ. Web không những phụ vụ cho nhu cầu giải trí đơn thuần, mà đồng thời ta có thể
dùng nó như một mạng xã hội, sử dụng các website quản lý ở mọi lúc mọi nơi chỉ
cần có internet.
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 trở thành một lập trình viên web chuyên nghiệp, nên em quyết định
đi thực tập trong học kỳ này.
Vì vậy, em quyết định chọn Wata Solution - 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.
2
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty Wata 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ự chỉ dẫn nhiệt tình của nhóm trainer,
các mentor, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng
trong quy trình phát triễn phần mềm. 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 POLO, đã training về quy trình phát triển phần mềm,
scrum, estimate task, 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
Nam, Đạt, đã training Spring Boot, hỗ trợ chúng em rất nhiều về các vấn đề kỹ thuật
Spring boot; cảm ơn chị Tuyền, đã chỉ dẫn chúng em về quy trình kiểm thử phần
mềm.
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 Trọng Khanh
3
NHẬN XÉT CỦA KHOA
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
........................................................................................................................................
4
Nội dung
Chương 1 Giới thiệu công ty thực tập .................................................................... 7
1.1
Giới thiệu công ty Wata Solutions ................................................................ 7
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.2
Nghiên cứu quy trình phát triển phần mềm của cơng ty .............................. 8
2.2.1
Quy trình kiểm sốt chất lượng (QC) .....................................................................................8
2.2.2
Quy trình phát triển phần mềm Scrum ..................................................................................8
2.2.3
Estimation và lên kế hoạch.....................................................................................................8
2.2.4
Kỹ thuật vẽ UML .....................................................................................................................9
2.3
Nghiên cứu kỹ thuật ...................................................................................... 9
2.3.1
Deploy trang web lên Apache server .....................................................................................9
2.3.2
Tìm hiểu Docker và CI/CD .......................................................................................................9
2.3.3
Tìm hiểu công nghệ Spring boot ............................................................................................9
2.4
Thực hiện project .......................................................................................... 9
2.5
Lịch làm việc ................................................................................................ 9
Chương 3 Chi tiết về project ................................................................................. 20
3.1
Giới thiệu .................................................................................................... 20
3.1.1
Mục đích ...............................................................................................................................20
3.1.2
Phạm vi .................................................................................................................................20
3.1.3
Các định nghĩa, từ viết tắt ....................................................................................................20
3.2
Môi trường .................................................................................................. 21
3.2.1
Mobile application ...............................................................................................................21
3.2.2
Web portal............................................................................................................................21
3.2.3
Server ...................................................................................................................................21
3.3
Mô tả tổng thể ............................................................................................. 21
3.3.1
Ngữ cảnh sản phẩm..............................................................................................................21
3.3.2
Thiết kế dữ liệu.....................................................................................................................22
3.4
Các yêu cầu chức năng ............................................................................... 23
3.4.1
Mobile application ...............................................................................................................23
3.4.2
Web portal............................................................................................................................48
5
Chương 4 Tài liệu tham khảo ................................................................................ 80
Chương 5 Tổng kết ................................................................................................. 81
6
Chương 1 Giới thiệu công ty thực tập
1.1 Giới thiệu công ty Wata Solutions
Wata Solutions được thành lập năm 2015, là cơng ty phần mềm chun về mảng
outsource. Ngồi ra, công ty cũng phát triển các sản phẩm riêng của công ty (chiếm 5%
trong năm 2019). Thị trường khách hàng chủ yếu của công ty là Mỹ, Hàn Quốc, Singapore,..
Các mảng công nghệ của công ty sử dụng: Backend (NodeJs, .Net, Golang, Java,
Python,..), Frontend (AngularJs, ReactJs, VueJs,..), Android, Ios, Blockchain,..
Tầm nhìn: “Use technologies to change the Vietnamese citizens life”.
Nhiệm vụ: “Providing all the best lifestyle for Vietnamese citizens”.
Trụ sở chính: Tòa nhà Hải Âu, 39B Trường Sơn, phương 4, quận Tân Bình, tp Hồ Chí
Minh.
Website: watacorp.com , watasolutions.com
Liên hệ: +84 909.679.839
7
Chương 2 Nội dung thực tập
2.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 Gameloft, 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 Nghiên cứu quy trình phát triển phần mềm của cơng ty
2.2.1 Quy trình kiểm sốt chất lượng (QC)
Thời gian: 2 ngày
Nội dung: Tìm hiểu về quy trình kiểm thử, tầm quan trọng của kiểm thử trong phát
triển phần mềm.
Thời điểm qc tham gia vào project
Tìm hiểu về test case
Công cụ theo dõi bug (Jira)
Kết quả: Hiểu về tầm quan trọng của việc kiểm thử trong phát triển phần mềm. Qc
nên tham gia vào việc kiểm thử ngày từ khi bắt đầu project. Biết cách sử dụng công cụ Jira.
Cách thiết kế testcase.
2.2.2 Quy trình phát triển phần mềm Scrum
Thời gian: 3 ngày
Nội dụng: Tìm hiểu về Agile, Scrum
Quy trình phát triển phần mềm
Kết quả: Hiểu thêm về Scrum
2.2.3 Estimation và lên kế hoạch
Thời gian: 3 ngày
Nội dung: Tìm hiểu về cách estimate một task, cách lên kế hoạch để phát triển phần
mềm
Định nghĩa và mục đích của việc estimate
Tầm quan trọng của việc estimate
Cách estimate
8
Cách sắp xếp timeline
Kết quả: Hiểu được cách estimate task, biết được tầm quan trọng của estimation. Thực
hiện estimatation cho dự án, sắp xếp các công việc trong dự án.
2.2.4 Kỹ thuật vẽ UML
Thời gian: 3 ngày
Nội dung:Tìm hiểu và thực hành UML
Kết quả: Hiểu rõ về UML, tầm quan trọng của UML trong phát triển phần mềm. Vẽ
các diagram cho project
2.3 Nghiên cứu kỹ thuật
2.3.1 Deploy trang web lên Apache server
Thời gian: 3 ngày
Nội dung: Tìm hiểu cách deploy một trang web lên server thật bằng apache server
Kết quả: Biết cách deploy trang web lên server thật
2.3.2 Tìm hiểu Docker và CI/CD
Thời gian:3 ngày
Nội dung: Tìm hiểu về docker, ci/cd
Kết quả: Hiểu được cách sử dụng docker, tự động ci/cd bằng Jenskin
2.3.3 Tìm hiểu cơng nghệ Spring boot
Thời gian: 3 ngày
Nội dung: Tìm hiểu cơng nghệ Spring boot
Kết quả: Hiểu về công nghệ Spring boot, khởi tạo Spring boot project
2.4 Thực hiện project
Sau 7 tuần được training, tìm hiểu và thực hành, thực tập sinh đã nắm được những
kiến thức về quy trình phát triển phần mềm, Scrum, Spring boot,..
Từ tuần thứ 8, thực tập sinh thực hiện một project Payslip.
2.5 Lịch làm việc
2.5.1 Tuần 1
Day
9
Plan of activities to
be performed
Brief
description of
activities
actually
performed
Tools,
machinery,
equipment &
methodology
used
No.
of
hours/day
- Learn technologies
to build web app and
mobile app.
- And learn the
advantages,
the
disadvantages of each
technology.
Mo
nday
Follow
exactly the
plan
8
hours
Follow
exactly the
plan
8
hours
0
hours
- Learn Jira software.
- Attending QA/QC,
Java training.
Follow
exactly the
plan
Jira software
S
S
F
un atu
drda riday
ay
y
Thu
rsday
Wedn
esday
Tuesday
- Learn the workflow
of company
8
hours
0
hours
0
hours
0
hours
24
hours
Total hours for the week
2.5.2 Tuần 2
Monday
Day
10
Plan of activities to
be performed
- Learn Waterfall
and Agile model.
- Research about
roles in project, some
methods use to estimate
time for a task.
Brief
description of
activities
actually
performed
Follow
exactly the
plain
Tools,
machinery,
equipment &
methodology
used
No.
of
hours/day
8
hours
Tuesd
ay
Follow
exactly the
plan
8
hour
0
hours
- Research about
UML, coding standard.
- Research how to
config apache server.
Follow
exactly the
plan
8
hours
F
riday
Thu
rsday
W
ednesda
y
- Research about
Scrum.
- Research how to
install apache and mysql
on linux.
0
atu
d rda
ay
y
0
hour
un
0
hour
24
hours
Total hours for the week
2.5.3 Tuần 3
Plan of activities to
be performed
Day
Monday
-
-
Tuesday
S
S
hour
-
11
Learn UML
diagram: component,
state, ER, activity
and sequence.
Draw login activity
diagram.
Deploy demo server.
Draw login sequence
diagram, activity
diagram (edit).
Research about when
do we estimate a
task, when do we
change the
estimation.
Brief
description of
activities
actually
performed
Tools,
machinery,
equipment &
methodology used
No.
of
hours/day
Follow
exactly the plain
Plantuml,
ubuntu LTS 18.04.
8
hours
Follow
exactly the plan
Plantuml
8
hours
W
ednesday
0
hour
Thursday
-
Follow
exactly the plan
Plantuml
F
riday
-
Draw
component
diagram to present
client-server model,
edit login sequence
diagram.
Estimate for login
feature.
8
hours
0
atu
d rda
ay
y
0
hour
0
un
S
S
hour
hour
24
hours
Total hours for the week
2.5.4 Tuần 4
Plan of activities to
be performed
Day
Monday
-
Tu
esday
-
-
Wedn
esday
-
12
Discuss
mobile
mockup with team
members.
Learn CI/CD.
Install
Docker,
Jenkins
Listed out the
features of Payslip
project.
Read SRS template.
Brief
description of
activities
actually
performed
Tools,
machinery,
equipment &
methodology used
No.
of
hours/day
Follow
exactly the plan
Ubuntu LTS
18.04
8
hours
Follow
exactly the plan
MS Word
8
hours
0
hour
Thur
sday
Write
SRS
Payslip project
for
Follow
exactly the plan
MS Word
8
hours
0
hour
0
hour
0
hour
24
hours
ay
un
S
S
F
atu
riday
drda
y
-
Total hours for the week
2.5.5 Tuần 5
Plan of activities to
be performed
No.
of
hours/day
-
Write SRS for
Payslip project.
Follow
exactly the plain
MS Word,
PlantUml
8
hours
-
Write SRS for
Payslip project.
Follow
exactly the plan
MS Word,
PlantUml
8
hours
0
hour
-
Write timeline.
Plan on sprint 0,
sprint 1.
Follow
exactly the plan
MS Excel
8
hours
0
hour
atu
d rda
ay
y
un
S
S
F
riday
Thur
sday
W
ednesday
Mo
nday
Tools,
machinery,
equipment &
methodology used
T
uesda
y
Day
Brief
description of
activities
actually
performed
13
0
hour
0
hour
24
hours
Total hours for the week
2.5.6 Tuần 6
Plan of activities to
be performed
Mo
nday
-
Init project.
Setup environment
for Payslip project
Tu
esday
Day
-
Research about
Jenkins.
Setup environment
for Payslip project.
Tools,
machinery,
equipment &
methodology used
Ubuntu LTS
18.04
8
hours
Follow
exactly the plan
Ubuntu LTS
18.04
8
hours
0
Thur
sday
hour
-
Setup environment.
Follow
exactly the plan
MS Word
S
S
F
atu
riday
drda
y
8
hours
0
hour
0
hour
0
hour
24
hours
ay
un
No.
of
hours/day
Follow
exactly the plan
Wedn
esday
-
Brief
description of
activities
actually
performed
Total hours for the week
2.5.7 Tuần 7
Day
14
Plan of activities to
be performed
Brief
description of
activities
actually
performed
Tools,
machinery,
equipment &
methodology used
No.
of
hours/day
-
Design database
schema (Leave,
News, Project, Code
table) for Payslip
project.
Read exist code.
Design database
schema for Payslip
project.
Follow
exactly the plain
MySQL
Workbench
8
hours
Follow
exactly the plan
MySQL
Workbench
8
hours
0
hour
-
Design
database
schema for Payslip
project.
Follow
exactly the plan
MySQL
Workbench
F
riday
Thur
sday
W
ednesday
T
uesda
y
Monday
-
8
hours
0
atu
d rda
ay
y
0
hour
0
un
S
S
hour
hour
24
hours
Total hours for the week
2.5.8 Tuần 8
Plan of activities to
be performed
Mo
nday
-
Tu
esday
Day
-
-
15
Design
database
schema for Payslip
project.
Design database
schema for Payslip
project.
Review database.
Brief
description of
activities
actually
performed
Tools,
machinery,
equipment &
methodology used
No.
of
hours/day
Follow
exactly the plan
MySQL
Workbench
8
hours
Follow
exactly the plan
MySQL
Workbench
8
hours
Wedn
esday
0
Thur
sday
hour
-
Follow
exactly the plan
MySQL
Workbench
8
hours
0
hour
0
hour
0
hour
24
hours
ay
un
S
S
F
atu
riday
drda
y
-
Design database
schema for Payslip
project.
Review database.
Total hours for the week
2.5.9 Tuần 9
Plan of activities to
be performed
Tools,
machinery,
equipment &
methodology used
Thur
sday
F
riday
16
No.
of
hours/day
0
hour
-
Write base code for
payslip project.
Write development
guidelines.
Follow
exactly the plan
Eclipse IDE
W
ednesday
Tu
esday
Mo
nday
Day
Brief
description of
activities
actually
performed
8
hours
0
hour
-
Write base code for
payslip project.
Follow
exactly the plan
Eclipse IDE
8
hours
0
hour
S
atu
d rda
ay
y
0
un
S
0
hour
hour
16
hours
Total hours for the week
2.5.10 Tuần 10
Plan of activities to
be performed
Mo
nday
-
Tuesd
ay
Day
-
Implement Create
Account API.
Test API.
Deploy Payslip to
Server.
Wedn
esday
-
Implement
Create
Account, Employee,
Login API.
No.
of
hours/day
Follow
exactly the plan
Eclipse IDE
8
hours
Follow
exactly the plan
Eclipse IDE
8
hours
Thur
sday
hour
0
hour
S
S
F
atu
riday
drda
y
ay
un
Tools,
machinery,
equipment &
methodology used
0
Total hours for the week
17
Brief
description of
activities
actually
performed
0
hour
0
hour
0
hour
16
hours
2.5.11 Tuần 11
Plan of activities to
be performed
Day
Monday
-
-
Tools,
machinery,
equipment &
methodology used
Eclipse IDE
8
hours
Follow
exactly the plan
Eclipse IDE
8
hours
0
hour
-
Review APIs.
Attend meeting.
Follow
exactly the plan
Eclipse IDE
F
riday
Thur
sday
No.
of
hours/day
Follow
exactly the plan
W
ednesday
T
uesda
y
-
Edit accept and
reponse json for
CreateEmployee,
Signin api.
Implement update
employee api.
Edit UserDetails.
Implement Update
User api.
Brief
description of
activities
actually
performed
8
hours
0
atu
d rda
ay
y
0
hour
0
un
S
S
hour
hour
24
hours
Total hours for the week
2.5.12 Tuần 12
Mond
ay
Day
18
-
Plan of activities to
be performed
Brief
description of
activities
actually
performed
Plan to work for
current week.
Test APIs.
Merge APIs to dev
branch.
Follow
exactly the plan
Tools,
machinery,
equipment &
methodology used
Eclipse IDE
No.
of
hours/day
8
hours
Deploy Payslip to
Server.
Wedn
esday
-
Fix
User
Management APIs.
Fix Dockerfile.
Thurs
day
Tu
esday
-
-
-
ay
un
S
S
F
atu
riday
drda
y
-
Fix APIs.
Attend
review
project meeting.
Present progress of
payslip project.
Total hours for the week
19
Follow
exactly the plan
Ubuntu 18.04
LTS
8
hours
5
hour
8
hour
0
hour
0
hour
0
hour
29
hours
Chương 3 Chi tiết về project
3.1 Giới thiệu
3.1.1 Mục đích
Phần này cung cấp mô tả phạm vi và tổng quan về mọi thứ có trong tài liệu SRS này.
Ngồi ra, mục đích của tài liệu này được mơ tả và danh sách các từ viết tắt và định nghĩa
được cung cấp
3.1.2 Phạm vi
Payslip là một ứng dụng di động sử dụng nội bộ cho các nhân viên trong công ty Wata.
Hiển thị các thông tin bảng lương hàng tháng, thông tin các ngày đã nghỉ và nhận thông
báo từ các dự án, cơng ty.
Ứng dụng sẽ miễn phí tải xuống từ cửa hàng ứng dụng hoặc dịch vụ tương tự. Quản
trị viên sẽ truy cập vào web quản lý để thao tác với các chức năng quản trị và tạo thơng báo
cho các nhân viên. Ví dụ: Quản trị viên có thể xác minh ngày vắng phép, bảng lương và
quản lý thông tin nhân viên. Tất cả thông tin hệ thống được duy trì trong cơ sở dữ liệu trên
máy chủ. Ứng dụng này cũng có khả năng thể hiện cả thơng tin tóm tắt và thơng tin chi tiết
về bảng lương.
3.1.3 Các định nghĩa, từ viết tắt
Term
Definition
Employee
Nhân viên sử dụng với ứng dụng payslip di động.
Admin/Admin
Quản trị viên hệ thống được cấp quyền cụ thể để
istrator
quản lý và kiểm soát hệ thống.
Manager
Quản lý dự án được cấp quyền cụ thể để đăng
thông báo và phê duyệt đơn xin nghỉ phép của thành
viên trong dự án.
HR Manager
Quản lý nhân sự được cấp quyền cụ thể để phê
duyệt đơn xin nghỉ phép và các khiếu nại của nhân viên.
Web-Portal
Một ứng dụng web cung cấp các tiện ích đặc biệt
cho người quản lý(Admin, HR Manager)
Application
Một ứng dụng được cài đặt trên điện thoại di động
giúp người dùng tìm các ứng dụng tương thích mới với
nền tảng điện thoại di động và tải chúng xuống từ
Internet
Stakeholder
Bất kỳ người nào có tương tác với hệ thống không
phải là nhà phát triển
Store
DEP
20
Sự phụ thuộc
3.2 Môi trường
3.2.1 Mobile application
Người sử dụng:
-
Phần cứng:
o HĐH: android 6.0
o Ram: 1GB
o Kết nối: wifi, internet
Môi trường phát triển:
-
Phần cứng:
o HĐH: window 10
o Ram: 8GB
3.2.2 Web portal
Người sử dụng:
-
Phần cứng:
o HĐH: Window, MacOs
o Ram: 4GB
o Kết nối: wifi, internet
Môi trường phát triển:
-
Phần cứng:
o HĐH: window 10
o Ram: 8GB
- Phần mềm:
o Visual Studio Code
o Intelij IDEA
3.2.3 Server
Phần cứng:
-
HĐH: Linux server
Phần mềm:
-
Server: apache2
Database: postgresql
Enviroment: java 8
3.3 Mô tả tổng thể
3.3.1 Ngữ cảnh sản phẩm
- Hệ thống sẽ gồm hai phần: một ứng dụng di động và một web quản lý.
- Ứng dụng di động được sử dụng để người dùng tìm kiếm, xem thông tin, khiếu nại
phiếu lương, thông tin các ngày nghỉ, số ngày nghỉ còn lại, dự án đang tham gia, thông báo
của dự án và công ty, thông tin cá nhân.
21
- Web quản lý sẽ được admin sử dụng để quản lý thơng tin về nhân viên, tài khoản,
phịng ban, dự án, thông báo, phiếu lương của hệ thống.
- Sơ đồ bên dưới mô tả cấu trúc của hệ thống.
3.3.2 Thiết kế dữ liệu
22
3.3.3 Kiến trúc hệ thống
3.4 Các yêu cầu chức năng
3.4.1 Mobile application
3.4.1.1 Đăng nhập
-
23
Activity Diagram
-
24
Wireframe
3.4.1.2 Quên mật khẩu
-
25
Activity Diagram