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

Đồ án phát triển ứng dụng tìm kiếm việc làm với react native

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 (1.51 MB, 68 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
-----🙚🙘🕮🙚🙘-----

BÁO CÁO ĐỒ ÁN 1

ĐỀ TÀI: PHÁT TRIỂN ỨNG DỤNG TÌM KIẾM VIỆC
LÀM VỚI REACT NATIVE
Giảng viên hướng dẫn: ThS. Nguyễn Thị Thanh Trúc
Sinh viên thực hiện:
20521133 - Lưu Lê Bá Chính
20521401 - Nguyễn Ngọc Quang Huy


LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn chân thành đến cô Nguyễn Thị Thanh Trúc - giảng viên
hướng dẫn môn Đồ án 1 đã định hướng và trang bị giúp chúng em những kỹ năng cơ bản
và kiến thức cần thiết để hoàn thành được đồ án này.
Tuy nhiên, trong quá trình làm đồ án do kiến thức của chúng em cịn hạn chế nên khơng
thể tránh khỏi một vài thiếu sót khi trình bày và đánh giá vấn đề. Rất mong nhận được sự
góp ý, đánh giá của các giảng viên bộ môn để đề tài của chúng em thêm hồn thiện hơn.

Thành phố Hồ Chí Minh, tháng 6 năm 2023


NHẬN XÉT CỦA GIẢNG VIÊN
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………


…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………


MỤC LỤC

CHƯƠNG I: GIỚI THIỆU CHUNG
1.

Xác định vấn đề


13
13

2. Hiện trạng

13

3. Xác định đối tượng mục tiêu

13

4. Đối thủ cạnh tranh

14

5. Yêu cầu chức năng:

15

6. Yêu cầu phi chức năng:

17

CHƯƠNG II: NỀN TẢNG CÔNG NGHỆ

19

2.1. React Native


19

2.2. Nodejs

20

2.3. MongoDB

23

2.4. Render

24

2.5. Ngrok

26

CHƯƠNG III :THIẾT KẾ HỆ THỐNG
3.1. Kiến trúc hệ thống: Mơ hình Client - Server
Sơ đồ tổng quan và giới thiệu

29
29
29

3.2. Yêu cầu chức năng

31


3.2.1. Sơ đồ Usecase

31

3.2.2. Danh sách tác nhân

32

3.2.3 Danh sách Use Case

32

3.2.4. Mô tả chi tiết Use Case

33

CHƯƠNG IV: THIẾT KẾ CƠ SỞ DỮ LIỆU

51

CHƯƠNG V: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG

54

5.1 Screen Flow:

54

5.2 Giao diện chính:


54

CHƯƠNG VI: CÀI ĐẶT VÀ KIỂM THỬ
6.1 Mơi trường cài đặt và kiểm thử
CHƯƠNG VII: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

66
66
68

7.1 Kết quả

68

7.2 Khó khăn

68


7.4 Hạn chế của đồ án

68

7.5 Hướng phát triển

68


Đề cương chi tiết


TÊN ĐỀ TÀI: Xây dựng ứng dụng tìm kiếm việc làm
Cán bộ hướng dẫn : ThS.Nguyễn Thị Thanh Trúc
Thời gian thực hiện: (3/2023-7/2023)
Sinh viên thự hiện:
Lưu Lê Bá Chính - 20521133
Nguyễn Ngọc Quang Huy - 20521401
Nội dung đề tài
1.Lý do chọn đề tài :
Trong thời đại công nghệ phát triển nhiều ngành nhiều nghề ra đời tạo nhiều công
ăn việc làm cho người dân. Tuy nhiên dù trong thời đại nào thì bài tốn việc làm vẫn
ln là vấn đề khó giải quyết. Về phía người tìm việc họ mong muốn có một cơng
việc phù hợp với trình độ chun mơn, điều kiện kinh tế và nhiều yếu tố ngoại cảnh
khác. Còn đối với nhà tuyển dụng, họ ln kì vọng tìm kiếm được những ứng viên
thực sự phù hợp với công việc của bản thân. Chỉ xét riêng ở Việt Nam, báo cáo chỉ
ra các doanh nghiệp trong những tháng cuối năm 2022 và quý I/2023 có nhu cầu
tuyển dụng khoảng gần 400 nghìn người trên tất cả 63 tỉnh, thành phố của cả nước.
Con số nay quả thật khơng nhỏ và nó cho thấy vấn đề việc làm ln nóng như thế
nào. Hiện nay đã có nhiều nền tảng tìm kiếm việc làm ra đời và đạt được những
thành công nhất định. Tuy nhiên độ tiện dụng và hiệu quả vẫn còn những tồn tại
nhất định. Và hơn nữa, người dùng mong muốn nhiều hơn là một cơng cụ tìm kiếm
việc làm đơn thuần. Với đầy đủ những tính năng của một ứng dụng tìm kiếm việc


làm, hơn thế nữa là những chức năng mới và ưu việt, HiredHero sẽ là giải pháp tối
ưu để giải quyết bài tốn việc làm đó.
2.Mục tiêu đề tài :
·

Xây dụng ứng dụng tìm việc với các tiêu chí:


-

Giao diện người dùng thân thiện, dễ dùng, dễ thao tác.

-

Hỗ trợ đầy đủ tính năng.

-

Có các tính năng nổi trội.

3.Phạm vi đề tài
3.1 Phạm vi môi trường : Ứng dụng di động (hệ điều hành Android và Ios)
3.2 Phạm vi chức năng :
·

Chức năng đảm bảo thỏa cả 2 loại người dùng:
Doanh nghiệp:
+ Đăng kí đăng nhập:
++ Đăng kí tài khoản cho doanh nghiệp
++ Đăng nhập vào ứng dụng
+ Quản lý tin tuyển dụng:
++ Tạo bài đăng tin tuyển dụng
++ Chỉnh sửa tin tuyển dụng
++ Xem danh sách ứng viên apply vào tin tuyển dụng


++ Xóa bài đăng tuyển dụng
+ Thanh tốn:

++ Thanh tốn khi đăng tin tuyển dụng
+ Quản lý tài khoản doanh nghiệp:
++ Sửa thông tin doanh nghiệp
++ Sửa thông tin đăng nhập
++ Xem đánh giá công ty
++ Phản hồi đánh giá
+ Quản lý tuyển dụng:
++ Xem danh sách ứng viên apply
++ Phản hồi ( đồng ý / từ chối ) ứng viên.
++ Lên lịch phỏng vấn
++ Thông báo kết quả
Người dùng:
+ Đăng kí đăng nhập:
++ Đăng kí tài khoản
++ Đăng nhập vào ứng dụng
+ Tìm kiếm tin tuyển dụng:


++ Tìm kiếm theo nhiều tiêu chí
++ Tìm kiếm theo từ khóa
+ Review doanh nghiệp:
++ Đánh giá doanh nghiệp
+ Quản lý tài khoản:
++ Sửa thông tin giới thiệu của bản thân.
++ Sửa thông tin đăng nhập
+ Quản lý tuyển dụng:
++ Nộp đơn tuyển dụng theo tin tuyển dụng
++ Nhận thông báo về kết quả tuyển dụng
+ Hỗ trợ phỏng vấn (mở rộng):
++ Giả lập phỏng vấn với GPT

+ Quản lý CV:
++ Thêm CV
++ Xóa CV
4.Đối tượng sử dụng:
-

Người dùng tìm kiếm việc làm.

-

Người dùng tuyển ứng viên.

5.Yêu cầu


·

• Yêu cầu về giao diện:
- Giao diện thân thiện, bố cục hợp lý, dễ sử dụng.
- Giao diện thống nhất, đồng bộ, không gây bất ngờ cho người sử dụng.
- Màu sắc, vị trí, hiển thị của các component có tính đồng bộ.
• u cầu về khả năng phát triển:
- Tổ chức hợp lý dễ dàng nâng cấp.
- Dễ dàng mở rộng khi có nhu cầu phát triển.
• u cầu về tính hiệu quả:
- Hệ thống quản lý dữ liệu một cách logic.
- Hiệu năng ổn định tránh gây khó chịu cho người dùng.

6.Phương pháp thực hiện:
·


Phương pháp làm việc:

− Làm việc nhóm 2 thành viên thơng qua cả 2 phương thức online dưới sự
hướng dẫn của giảng viên hướng dẫn.
·

Phương pháp nghiên cứu:

− Phân tích nhu cầu sử dụng của đối tượng người dùng.
− Nghiên cứu các phần mềm tìm kiếm việc làm hiện nay.
·

Phương pháp cơng nghệ:

− Xây dựng giao diện trên figma
− Sử dụng facebook, zalo và nói chuyện trực tiếp để trao đổi thơng tin giữa
2 thành viên
− IDE được cả 2 thành viên sử dụng là Visual studio code


− Quản lý source code thông qua Github
− Sử dụng Google doc,… để quản lý tiến trình và tài liệu
7.Nền tảng công nghệ
·

Front-end: React Native

·


Back-end: Nodejs

·

Database:MongoDB

8.Kết quả mong đợi:
·

Ứng dụng hoạt động ổn định, ít lỗi

·

Đáp ứng đầy đủ yêu cầu

9.Hướng phát triển của đề tài:
·

Kết hợp AI giúp hỗ trợ phỏng vấn, viết CV

· Tích hợp Search engine, gợi ý hiệu quả
·

Phát triển ứng dụng theo hướng mạng xã hội để thu hút nhiều người dùng

10.Kế hoạch làm việc:
Giai đoạn 1: Tìm hiểu đề tài và cơng nghệ ( 01/03/2023 - 15/04/2023 )
Giai đoạn 2: Xây dựng các giao diện và chức năng ( 15/04/2023 - 25/06/2023 )
11.Phân chia công việc
Công việc


Mô tả công việc


Cơng việc chung

-

Tìm hiểu cơng nghệ

-

Lập kế hoạch

-

Phân tích u cầu

-

Viết báo cáo

-

Thông báo kết quả làm việc

Nguyễn Ngọc Quang Huy
Cơng việc
viên


từng thành

Lưu Lê Bá Chính

-

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

-

Thiết kế giao diện

-

Lập trình Backend

-

Lập trình Backend

-

Lập trình Front-end

-

Lập trình Frontend


CHƯƠNG I: GIỚI THIỆU CHUNG

1. Xác định vấn đề
Trong thời đại công nghệ phát triển nhiều ngành nhiều nghề ra đời tạo nhiều công ăn việc
làm cho người dân. Tuy nhiên dù trong thời đại nào thì bài tốn việc làm vẫn ln là vấn
đề khó giải quyết. Về phía người tìm việc họ mong muốn có một cơng việc phù hợp với
trình độ chun mơn, điều kiện kinh tế và nhiều yếu tố ngoại cảnh khác. Còn đối với nhà
tuyển dụng, họ ln kì vọng tìm kiếm được những ứng viên thực sự phù hợp với công
việc của bản thân. Chỉ xét riêng ở Việt Nam, báo cáo chỉ ra các doanh nghiệp trong những
tháng cuối năm 2022 và quý I/2023 có nhu cầu tuyển dụng khoảng gần 400 nghìn người
trên tất cả 63 tỉnh, thành phố của cả nước. Con số nay quả thật khơng nhỏ và nó cho thấy
vấn đề việc làm ln nóng như thế nào. Hiện nay đã có nhiều nền tảng tìm kiếm việc làm
ra đời và đạt được những thành công nhất định. Tuy nhiên độ tiện dụng và hiệu quả vẫn
còn những tồn tại nhất định. Và hơn nữa, người dùng mong muốn nhiều hơn là một cơng
cụ tìm kiếm việc làm đơn thuần. Với đầy đủ những tính năng của một ứng dụng tìm kiếm
việc làm, hơn thế nữa là những chức năng mới và ưu việt, HiredHero sẽ là giải pháp tối
ưu để giải quyết bài tốn việc làm đó.
2. Hiện trạng
·

Số lượng người thất nghiệp vẫn cao.

·

Các doanh nghiệp tốn nhiều thời gian để tìm được người mới lấp đầy vị trí cịn thiếu.

·

Số lượng người nhảy việc lớn.

·


Số lượng người làm việc trái ngành lớn.

3. Xác định đối tượng mục tiêu
Ai sẽ sử dụng sản phẩm/dịch vụ của chúng tôi?


● Nhà tuyển dụng: Là các doanh nghiệp muốn tìm kiếm ứng viên cho vị trí của mình.
● Người tìm việc: Những người đang tìm kiếm cơng việc phù hợp với bản thân.
4. Đối thủ cạnh tranh
-

Glassdoor:

Ưu điểm: Cung cấp danh sách việc làm và đánh giá cơng ty, vì vậy người dùng có thể hiểu
được cảm giác làm việc tại một công ty trước khi nộp đơn xin việc. Nó cũng cung cấp thơng
tin

về

lương,



thể

hữu

ích

cho


việc

đàm

phán

lương.

Nhược điểm: Glassdoor khơng có cùng mức độ các tính năng kết nối mạng như LinkedIn và
danh sách cơng việc của nó có xu hướng tập trung hơn vào thị trường Hoa Kỳ.
-

Indeed:

Ưu điểm: Cung cấp nhiều danh sách việc làm từ khắp nơi trên thế giới và cho phép người
dùng dễ dàng nộp đơn xin việc thơng qua nền tảng này. Nó cũng cung cấp thơng tin hữu ích
về

tiền

lương,

xu

hướng

cơng

việc




đánh

giá

của

cơng

ty.

Nhược điểm: Tương tự như Glassdoor, Indeed thiếu các tính năng kết nối mạng của LinkedIn
và danh sách việc làm của nó có xu hướng tập trung hơn vào thị trường Hoa Kỳ.
-

Xing

Ưu điểm: Xing là một trang mạng chuyên nghiệp phổ biến ở châu Âu, với cơ sở người dùng
mạnh ở Đức, Áo và Thụy Sĩ. Nó cung cấp nhiều tính năng giống như LinkedIn, bao gồm
danh

sách

cơng

việc




trang

cơng

ty.

Nhược điểm: Xing ít được biết đến bên ngồi châu Âu, vì vậy nó có thể khơng phải là lựa
chọn tốt nhất nếu bạn đang muốn xây dựng một mạng lưới toàn cầu.
-

Viadeo:


Ưu điểm: Tương tự như Xing, Viadeo là một trang mạng chuyên nghiệp phổ biến ở châu Âu,
với cơ sở người dùng mạnh ở Pháp. Nó cung cấp nhiều tính năng giống như LinkedIn, bao
gồm

danh

sách

công

việc



trang


công

ty.

Nhược điểm: Giống như Xing, Viadeo ít được biết đến hơn bên ngồi châu Âu, vì vậy nó
có thể khơng phải là lựa chọn tốt nhất nếu bạn đang muốn xây dựng một mạng lưới toàn cầu.
-

AngelList:

Ưu điểm: AngelList là một nền tảng kết nối các cơng ty khởi nghiệp với người tìm việc, vì
vậy đây là một lựa chọn tuyệt vời nếu bạn đang muốn làm việc cho một cơng ty khởi nghiệp.
Nó cũng cung cấp các công cụ cho các nhà đầu tư, bao gồm một nền tảng gây quỹ.
Nhược điểm: AngelList tập trung chủ yếu vào hệ sinh thái khởi nghiệp, vì vậy đây có thể
khơng phải là lựa chọn tốt nhất nếu bạn đang muốn kết nối với các chuyên gia trong các
ngành khác.
5. Yêu cầu chức năng:
Doanh nghiệp:
+ Đăng kí đăng nhập:
++ Đăng kí tài khoản cho doanh nghiệp
++ Đăng nhập vào ứng dụng
+ Quản lý tin tuyển dụng:
++ Tạo bài đăng tin tuyển dụng
++ Chỉnh sửa tin tuyển dụng
++ Xem danh sách ứng viên apply vào tin tuyển dụng
++ Xóa bài đăng tuyển dụng


+ Thanh toán:
++ Thanh toán khi đăng tin tuyển dụng

+ Quản lý tài khoản doanh nghiệp:
++ Sửa thông tin doanh nghiệp
++ Sửa thông tin đăng nhập
++ Xem đánh giá công ty
++ Phản hồi đánh giá
+ Quản lý tuyển dụng:
++ Xem danh sách ứng viên apply
++ Phản hồi ( đồng ý / từ chối ) ứng viên.
++ Lên lịch phỏng vấn
++ Thơng báo kết quả
Người dùng:
+ Đăng kí đăng nhập:
++ Đăng kí tài khoản
++ Đăng nhập vào ứng dụng
+ Tìm kiếm tin tuyển dụng:
++ Tìm kiếm theo nhiều tiêu chí
++ Tìm kiếm theo từ khóa


+ Review doanh nghiệp:
++ Đánh giá doanh nghiệp
+ Quản lý tài khoản:
++ Sửa thông tin giới thiệu của bản thân.
++ Sửa thông tin đăng nhập
+ Quản lý tuyển dụng:
++ Nộp đơn tuyển dụng theo tin tuyển dụng
++ Nhận thông báo về kết quả tuyển dụng
+ Hỗ trợ phỏng vấn (mở rộng):
++ Giả lập phỏng vấn với GPT
+ Quản lý CV:

++ Thêm CV
++ Xóa CV
6. u cầu phi chức năng:
• u cầu về giao diện:
- Giao diện thân thiện, bố cục hợp lý, dễ sử dụng.
- Giao diện thống nhất, đồng bộ, không gây bất ngờ cho người sử dụng.
- Màu sắc, vị trí, hiển thị của các component có tính đồng bộ.
• Yêu cầu về khả năng phát triển:


- Tổ chức hợp lý dễ dàng nâng cấp.
- Dễ dàng mở rộng khi có nhu cầu phát triển.
• u cầu về tính hiệu quả:
- Hệ thống quản lý dữ liệu một cách logic.
- Hiệu năng ổn định tránh gây khó chịu cho người dùng.


CHƯƠNG II: NỀN TẢNG CÔNG NGHỆ
2.1. React Native

React Native là một framework phát triển ứng dụng di động mã nguồn mở cho phép
các nhà phát triển xây dựng các ứng dụng di động đa nền tảng cho iOS và Android bằng một
codebase duy nhất, được viết bằng JavaScript. Nó dựa trên thư viện React, ban đầu được
Facebook phát triển để xây dựng giao diện người dùng trên web. React Native cung cấp một
tập hợp các thành phần và API dựng sẵn, có thể được sử dụng để tạo các ứng dụng dành cho
thiết bị di động có hiệu suất cao và phản hồi nhanh.
Một số ưu điểm mà có thể nhìn thấy ngay được khi mới bắt đầu tìm hiểu về nó như là:

● Khả năng tái sử dụng code và các components đã được phát triển sẵn.
● Có một cộng đồng developers hùng hậu.



● Sự tuyệt vời của Live and Hot reloading. (Bạn sẽ tiết kiệm được cả một đống thời gian
nhìn xcode build và running app của bạn)

● Tiết kiệm effort khi có thể code 1 mà có thể run cho cả ios và android.
Bên cạnh đó cũng có một vài những nhược điểm cần phải kể đến:

● Vẫn đòi hỏi native code.
● Hiệu năng sẽ thấp hơn với app thuần native code.
● Bảo mật không cao do dựa trên JS.
● Quản lý bộ nhớ.
● Khả năng tùy biến cũng không thực sự tốt đối với một vài module.

2.2. Nodejs


·

Node.js là một nền tảng (Platform) phát triển độc lập được xây dựng ở trên
Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng
web một cách nhanh chóng và dễ dàng mở rộng. Node.js bao gồm có V8
JavaScript engine của Google, libUV, và vài thư viện khác.

·

Node.js được xây dựng và phát triển bởi Ryan Dahl từ năm 2009, bảo trợ bởi
công ty Joyent, trụ sở tại California, Hoa Kỳ. Mục tiêu ban đầu của Dahl là làm
cho trang web có khả năng push như trong một số ứng dụng web như Gmail.
Sau khi thử với vài ngơn ngữ Dahl chọn Javascript vì API nhập/xuất khơng đầy

đủ. Điều này cho phép ơng có thể định nghĩa một quy ước nhập/xuất điểu khiển
theo sự kiện, non-blocking.

·

Node.js có kiến trúc hướng sự kiện có khả năng nhập/xuất khơng đồng bộ. Thiết
kế này nhằm mục đích tối ưu hóa thơng lượng và khả năng mở rộng trong các
ứng dụng web với nhiều hoạt động đầu vào / đầu ra, cũng như cho các ứng dụng
web thời gian thực (ví dụ: chương trình giao tiếp thời gian thực và trị chơi trình
duyệt) Nodejs áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng
nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể.

Nodejs sở hữu khá nhiều đặc điểm cơ bản, nổi trội và ưu việt.
● Không đồng bộ: Đặc điểm đầu tiên của Nodejs là tính bất đồng bộ. Node.js không cần

đợi API trả dữ liệu về, vậy nên mọi APIs nằm trong thư viện Node.js đều không được
đồng bộ, hiểu đơn giản là chúng không hề blocking (khóa). Server có cơ chế riêng để
gửi thơng báo và nhận phản hồi về các hoạt động của Node.js và API đã gọi.
● Tốc độ nhanh: Với phần core phía dưới lập trình gần như tồn bộ bằng ngơn ngữ C++,

kết hợp với V8 Javascript Engine mà Google Chrome cung cấp, tốc độ vận hành, thực
hiện code của thư viện Node.js diễn ra rất nhanh.
● Đơn giản - Hiệu quả: Tiến trình vận hành của Node.js đơn giản song lại mang đến hiệu

năng cao nhờ ứng dụng mơ hình single thread và các sự kiện lặp. Một loạt cơ chế sự
kiện cho phép server trả về phản hồi bằng cách không block, đồng thời tăng hiệu quả


sử dụng. Các luồng đơn cung cấp dịch vụ cho nhiều request hơn hẳn Server truyền
thống.

● Không đệm: Nền tảng Node.js khơng có vùng đệm, tức khơng cung cấp khả năng lưu

trữ dữ liệu buffer.
● Có giấy phép: Đây là nền tảng đã được cấp giấy phép, phát hành dựa trên MIT License.
● Có thể xử lý yêu cầu đa nền tảng: Node.js có thể xử lý các yêu cầu từ các nền tảng khác

nhau như Windows, Linux, và MacOS.
Nhược điểm của Node.js:
● Chưa phù hợp với ứng dụng CPU-intensive: Node.js phù hợp với các ứng dụng I/Ointensive nhưng không phù hợp với các ứng dụng CPU-intensive. Điều này có nghĩa là
nếu ứng dụng của bạn chủ yếu là các tính tốn phức tạp, Node.js có thể khơng phải là
lựa chọn tốt nhất.
● Khơng thích hợp cho các ứng dụng lớn: Node.js có thể gặp vấn đề về quản lý bộ nhớ
khi xử lý các ứng dụng lớn. Vì Node.js được thiết kế để xử lý các yêu cầu không đồng
bộ, nó khơng thể xử lý các ứng dụng lớn với lượng dữ liệu lớn cùng lúc.
● Callback hell: Khi xử lý các yêu cầu không đồng bộ, Node.js sử dụng callback để xử lý
các hoạt động tiếp theo. Nếu khơng được quản lý tốt, điều này có thể dẫn đến callback
hell, một tình huống khi có q nhiều callback được lồng vào nhau, làm cho mã trở nên
khó hiểu và khó bảo trì.
● Vấn đề bảo mật: Node.js chạy trên một mơi trường đơn luồng, điều này có thể gây ra
các vấn đề bảo mật khi không được quản lý tốt. Node.js cũng khơng đảm bảo an tồn
và bảo mật cho các ứng dụng của bạn mà bạn phải tự bảo vệ chúng.


2.3. MongoDB

·

MongoDB lần đầu ra đời bởi MongoDB Inc., tại thời điểm đó là thế hệ 10, vào
tháng Mười năm 2007, nó là một phần của sản phẩm PaaS (Platform as a
Service) tương tự như Windows Azure và Google App Engine. Sau đó nó đã

được chuyển thành nguồn mở từ năm 2009.

·

MongoDB là một database hướng tài liệu (document), một dạng NoSQL
database. Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database
để thích ứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON.
MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một
collection sẽ các các kích cỡ và các document khác nhau. Các dữ liệu được lưu
trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh.


·

Ưu điểm:

- Schema linh hoạt: Do MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document
JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau. Cấu
trúc đối tượng rõ ràng: Tuy rằng cấu trúc của dữ liệu là linh hoạt nhưng đối tượng
của nó được xác định rất rõ ràng. Sử dụng bộ nhớ nội tại, nên truy vấn sẽ rất nhanh.
- MongoDB rất dễ mở rộng.
- Khơng có các join: Điều này cũng góp phần tạo nên tốc độ truy vấn cực nhanh trên
mongoDB. - MongoDB phù hợp cho các ứng dụng realtime.
·

Nhược điểm:

- Điều đầu tiên phải kể đến ở đây là MongoDB khơng có các tính chất ràng buộc
như trong RDBMS nên khi thao tác với mongoDB thì phải hết sức cẩn thận.
MongoDB sử dụng sẽ hao tốn tài nguyên của hệ thống nhiều hơn RDBMS. Nhưng

đến thời điểm hiện tại thì vấn đề này khơng cịn là điều lo ngại nữa.
2.4. Render

Ưu điểm của Render.com:


● Dễ sử dụng: Render.com cung cấp một giao diện đơn giản và dễ sử dụng, giúp người
dùng triển khai ứng dụng một cách nhanh chóng và thuận tiện.
● Quản lý tự động: Render.com tự động quản lý và mở rộng cơ sở hạ tầng để đảm bảo
hiệu suất và sẵn sàng cao của ứng dụng.
● Đa nền tảng: Render.com hỗ trợ triển khai ứng dụng trên nhiều nền tảng, bao gồm
Node.js, Python, Ruby, Go, PHP, và cả Docker containers.
● Độ tin cậy cao: Render.com sử dụng các công nghệ và cơ sở hạ tầng đáng tin cậy để
đảm bảo ứng dụng của bạn hoạt động một cách ổn định và liên tục.
● Cung cấp nhiều dịch vụ bổ sung: Render.com cung cấp các dịch vụ bổ sung như cơ sở
dữ liệu, email, bảo mật SSL, và quản lý DNS.
Nhược điểm của Render.com:
● Giới hạn về tài nguyên: Render.com có một số giới hạn về tài nguyên như lưu lượng
mạng và dung lượng đĩa, tùy thuộc vào gói dịch vụ bạn chọn.
● Giá cao: So với một số nền tảng đám mây khác, Render.com có mức giá tương đối
cao, đặc biệt đối với các ứng dụng có yêu cầu tài ngun lớn.
● Hạn chế tính linh hoạt: Render.com có một số hạn chế về khả năng tùy chỉnh và mở
rộng, đặc biệt là so với các nền tảng đám mây lớn hơn như AWS hoặc Google Cloud.
● Tuy nhiên, đánh giá về ưu và nhược điểm cụ thể của Render.com có thể thay đổi theo
nhu cầu và yêu cầu của từng dự án và doanh nghiệp cụ thể. Việc tìm hiểu kỹ về tính
năng và giới hạn của Render.com cùng việc so sánh với các nền tảng khác sẽ giúp bạn
đưa ra quyết định phù hợp cho dự án của mình.



×