
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA TOÁN – CƠ – TIN HỌC
--------------****---------------
BÁO CÁO MÔN HỌC
PHÂN TÍCH - THIẾT KẾ HỆ THỐNG THÔNG TIN
Đề tài: Hệ thống Testing Online - kiểm tra kỹ năng ứng viên
Hướng dẫn: Phạm Khắc Hoài Nam
Sinh viên thực hiện:
K62A3 Nguyễn Tùng Lâm (17000026)
K63A2 Nguyễn Hoàng Yến (18001016)

Lời nói đầu
Để hoàn thành kỳ thực tập cũng như báo cáo này, ngoài sự nỗ lực phấn đấu của
bản thân thì một phần không nhỏ đóng góp nên thành công ấy là nhờ sự hướng
dẫn tận tình của các thầy cô trong trường Đại học Khoa học Tự Nhiên Hà Nội,
cùng với sự giúp đỡ nhiệt tình từ các anh/chị tại Công ty Cổ phần Giải pháp
thanh toán VNPay. Đầu tiên chúng em xin gửi lời cảm ơn chân thành đến
thầy/cô trong khoa Toán – Cơ – Tin học đã kết nối tạo điều kiện thuận lợi nhất
để em được tiếp nhận thực tập tại công ty. Tiếp theo, em cũng xin gửi lời cảm
ơn sâu sắc đến các anh/chị trong công ty VNPAY, đặc biệt là anh Đỗ Vũ Tuấn,
anh Phạm Khắc Hoài Nam, anh Quang Hà và anh Bình Jax – những người đã
trực tiếp hướng dẫn chúng em. Trong thời gian thực tập, mặc dù công việc bận
rộn nhưng các anh/chị luôn tận tình hướng dẫn cũng như giải đáp các thắc mắc
trong công việc. Cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, bạn bè
đã động viên, đóng góp ý kiến và giúp đỡ trong quá trình học tập, nghiên cứu
hoàn thành kỳ thực tập này. Kỳ thực tập đã mang tới cho chúng em hiểu biết,
quá trình, kiến thức về Môn học “Phân tích thiết kế hệ thống”, hiểu thế nào để
phát triển một phần mềm, các giai đoạn để hình thành lên ý tưởng cho đến phần
mềm được triển khai đến người sử dụng. Quá trình thực tập, tham gia và học hỏi
này sẽ còn giúp chúng em không chỉ là việc học tập mà còn sẽ định hình ngành
nghề trong tương lai tới.
Tuy nhiên, do thời gian có hạn và năng lực còn hạn chế nên chúng em không thể
tránh khỏi những thiếu sót. Chính vì vậy, em rất mong nhận được sự góp ý từ
các thầy/cô và các bạn để học hỏi thêm và tiếp tục hoàn thiện đề tài của mình.
Chúng em xin chân thành cảm ơn!
Hà Nội, tháng 5 năm 2022
2

Mục lục
Lời nói đầu 2
Mục lục 3
I. Giới thiệu 4
Mục tiêu 4
Yêu cầu 4
Công nghệ sử dụng 4
Công việc triển khai 8
II. Phân tích - thiết kế hệ thống 9
Phân tích yêu cầu 9
2. Thiết kế hệ thống 9
2. Thiết kế hệ thống 10
Phát hiện các thực thể trên hệ thống 16
Thiết kế giao diện hệ thống bằng tool Figma 19
Kết quả thu được hiện tại 23
ĐÁNH GIÁ SINH VIÊN THỰC TẬP 28
3

I. Giới thiệu
1. Mục tiêu
Một hệ thống test online thay thế cho cách test trực tiếp, có các chức năng
dành cho nhân sự tuyển dụng để sau khi thảo luận kế hoạch với phòng
ban và ứng viên họ có thể tạo mới, cài đặt, chỉnh sửa các kế hoạch test và
các bài test cho các ứng viên apply vào công ty. Kết quả làm bài của ứng
viên sẽ được nhân sự đại diện của phòng ban chấm điểm trên hệ thống.
2. Yêu cầu
- Hiển thị các lịch test dự kiến theo hai dạng: bảng và lịch
- Hệ thống bao gồm 3 loại bài test: test Tiếng anh, test Kiến thức
chung, test Kỹ năng code và 2 dạng câu hỏi: trắc nghiệm, tự luận.
Phân bổ theo các cấp độ mà ứng viên ứng tuyển.
- Các bài test đều có thể set up thời gian làm bài.
- Chỉ các nhân sự phòng ban mà ứng viên ứng tuyển mới có quyền
chấm cho ứng viên đó trên hệ thống.
- Ứng viên tham gia test đăng nhập bằng một mã code được gửi qua
Gmail/SMS.
- Tái sử dụng được các câu hỏi.
- Giảm thiểu rủi ro việc ứng viên trong quá trình test ứng viên có thể
sao lưu lại nội dung test để đảm bảo an toàn thông tin quy trình
tuyển dụng
3. Công nghệ sử dụng
a) JavaScript
Javascript là một ngôn ngữ kịch bản từ Netscape. dễ dàng hơn và nhanh
hơn để mã trong hơn các ngôn ngữ có cấu trúc và biên soạn hơn như C
và C ++. Ngôn ngữ kịch bản nói chung mất nhiều thời gian hơn quá trình
biên soạn ngôn ngữ, nhưng rất hữu ích cho các chương trình ngắn hơn.
Ưu điểm :
- Không cần một compiler vì web browser có thể biên dịch nó bằng HTML. Dễ
dàng tiếp thu và học tập hơn nhiều ngôn ngữ khác.
- Dễ dàng phát hiện và sửa lỗi hơn.
- JS hoạt động trên nhiều trình duyệt, nền tảng.
- Kiểm tra input và giảm thiểu việc kiểm tra thủ công khi truy xuất qua
database. Giúp website tương tác tốt hơn với khách truy cập.
4

- Nhanh và nhẹ hơn một số ngôn ngữ lập trình khác.
Nhược điểm :
- Dễ bị khai thác.
- Không có khả năng xử lí đa luồng.
- Chỉ chạy được trong trình duyệt web.
- Dễ bị sử dụng để thực thi mã độc trên máy người sử dụng.
b) NodeJs
NodeJS là một nền tảng được xây dựng trên “V8 Javascript engine” được
viết bằng c++ và Javascript. Nền tảng này được phát triển bởi Ryan
Lienhart Dahl vào năm 2009.
Node.js ra đời khi các developer đời đầu của JavaScript mở rộng nó từ
một thứ bạn chỉ chạy được trên trình duyệt thành một thứ bạn có thể chạy
trên máy của mình dưới dạng ứng dụng độc lập.
Ưu điểm :
- Có tốc độ xử lý nhanh nhờ cơ chế xử lý bất đồng bộ (non-blocking). Bạn có
thể dễ dàng xử lý hàng ngàn kết nối trong khoảng thời gian ngắn nhất.
- Giúp bạn dễ dàng mở rộng khi có nhu cầu phát triển website.
- Nhận và xử lý nhiều kết nối chỉ với một single-thread. Nhờ đó, hệ thống xử lý
sẽ sử dụng ít lượng RAM nhất và giúp quá trình xử Nodejs lý nhanh hơn rất nhiều.
- Có khả năng xử lý nhiều Request/s cùng một lúc trong thời gian ngắn nhất. Có
khả năng xử lý hàng ngàn Process cho hiệu suất đạt mức tối ưu nhất.
- Phù hợp để xây dựng những ứng dụng thời gian thực như các ứng dụng chat,
mạng xã hội
Nhược điểm :
- Nodejs gây hao tốn tài nguyên và thời gian. Nodejs được viết bằng C++ và
JavaScript nên khi xử lý cần phải trải qua một quá trình biên dịch. Nếu bạn cần xử
lý những ứng dụng tốn tài nguyên CPU thì không nên sử dụng Nodejs.
- Nodejs so với các ngôn ngữ khác như PHP, Ruby và Python sẽ không có sự
chênh lệch quá nhiều. Nodejs có thể sẽ phù hợp với việc phát triển ứng dụng mới.
Tuy nhiên khi xây dựng và triển khai dự án quan trọng thì Nodejs không phải là sự
lựa chọn hoàn hảo nhất.
c) Java
Java là một ngôn ngữ lập trình có mục đích chung và hướng đối tượng
được phát triển cho môi trường phân tán và phát triển phần mềm cho các
thiết bị điện tử tiêu dùng như TV, VCR, ... Ngôn ngữ lập trình Java là một
ngôn ngữ độc lập với nền tảng, có nghĩa là không có giới hạn đối với bất
kỳ phần cứng hoặc hệ điều hành cụ thể nào. Nó cung cấp cho người dùng
cơ sở để 'viết một lần, chạy ở mọi nơi. Nhiều hệ điều hành như Sun
Solaris, RedHat, Windows, v.v., hỗ trợ Java.
5