ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
Đồ Án 2
XÂY DỰNG ỨNG DỤNG QUẢN LÝ TÀI CHÍNH TÍCH HỢP
NHIỀU LỚP TÀI SẢN
Sinh viên thực hiện:
Dương Công Vũ
MSSV:
19521110
Giáo viên hướng dẫn:
Nguyễn Thị Thanh Trúc
Lớp:
SE112.M21.PMCL
TP. Hồ Chí Minh, tháng 5, năm 2022
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
Đồ Án 2
XÂY DỰNG ỨNG DỤNG QUẢN LÝ TÀI CHÍNH TÍCH HỢP
NHIỀU LỚP TÀI SẢN
Sinh viên thực hiện:
Dương Công Vũ
MSSV:
19521110
Giáo viên hướng dẫn:
Nguyễn Thị Thanh Trúc
Lớp:
SE112.M21.PMCL
TP. Hồ Chí Minh, tháng 5, năm 2022
3
Nhận xét của giáo viên
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
4
Mục lục
Chương 1. Tổng quan ..................................................................................................................... 7
1.1.
Giới thiệu đề tài .............................................................................................................. 7
1.2.
Lý do chọn đề tài ............................................................................................................ 8
1.3.
Mục tiêu .......................................................................................................................... 8
1.4.
Đối tượng........................................................................................................................ 8
1.5.
Phạm vi ........................................................................................................................... 8
1.6.
Phương pháp phát triển .................................................................................................. 8
Chương 2. Cơ sở lý thuyết & công nghệ ........................................................................................ 9
2.1. Phân tích các ứng dụng đã có ............................................................................................. 9
2.1.1. Ứng dụng đầu tư FinHay .............................................................................................. 9
2.1.2. Sổ thu chi Misa ........................................................................................................... 10
2.1.3. Ví điện tử MoMo ......................................................................................................... 11
2.2.
Khảo sát người dùng .................................................................................................... 13
2.3.
Công nghệ sử dụng ....................................................................................................... 15
2.3.1. Serverless.................................................................................................................... 15
2.3.1. Giao diện người dùng: React Native .......................................................................... 16
2.3.2. Cơ sở dữ liệu: Firebase .............................................................................................. 19
2.3.3. Websocket ................................................................................................................... 23
2.4. Lý thuyết về đầu từ và quản lý chi tiêu .............................................................................. 24
2.4.1. Các công thức dùng trong đầu tư: ............................................................................ 24
2.4.1. Lý thuyết về danh mục đầu tư: .................................................................................. 26
2.4.2. Phương pháp quản lý tài chính cá nhân JARS: ........................................................ 27
Chương 3. Phân tích bài tốn ...................................................................................................... 28
3.1.
Danh sách chức năng ................................................................................................... 28
5
3.2.
Phân tích yêu cầu ......................................................................................................... 29
3.2.1. Yêu cầu về chức năng (Functional requirement) ........................................................ 29
3.2.2. Yêu cầu phi chức năng (Non-functional Requirement) ............................................... 45
Performance Requirements ...................................................................................................... 45
Safety Requirements ................................................................................................................. 45
Security Requirements .............................................................................................................. 45
Software Quality Attributes ...................................................................................................... 46
Chương 4. Thiết kế ....................................................................................................................... 46
4.1.
Cơ sở dữ liệu ................................................................................................................ 46
4.2.
Giao diện ...................................................................................................................... 49
4.3.
Kiến trúc hệ thống ........................................................................................................ 60
Chương 5. Kết luận & hướng phát triển....................................................................................... 61
5.1.
Kết quả đạt được .......................................................................................................... 61
5.2.
Hạn chế......................................................................................................................... 62
5.3.
Hướng phát triển .......................................................................................................... 62
Lời cảm ơn.................................................................................................................................... 63
Tài liệu trích dẫn: ......................................................................................................................... 64
6
Chương 1. Tổng quan
1.1. Giới thiệu đề tài
Ngày nay, người trẻ quan tâm đến quản lý chi tiêu cá nhân và đầu tư tài chính ngày càng nhiều.
Nhiều bạn trẻ đã có ý thức đầu tư từ rất sớm khi cịn ngồi trên ghế nhà trường. Thị trường tài
chính cũng dần được trẻ hoá và đã ra mắt rất nhiều công cụ đầu tư nhắm tới những người trẻ như
tiền kỹ thuật số, các gói đầu tư sinh lời của các ví điện tử,…
Ngồi quan tâm tới đầu tư tài chính, nhiều người cịn quan tâm tới quản lý chi tiêu cá nhân, kiểm
sốt dịng tiền để có thể tích trữ, tiết kiệm cho tương lại.
Cùng hoà chung với xu thế trẻ hoá, các ứng dụng đầu tư và quản lý chi tiêu ngày càng được phát
triển nhanh chóng, thêm nhiều tính năng khác nhau giúp nhà đầu tư tham gia thị trường một cách
dễ dàng. Điều đó lại càng đúng ở thị trường Việt Nam khi cơ cấu dân số trẻ, cơng nghệ phát triển
nhanh và độ phủ sóng của Internet lớn. Hiện nay Việt Nam đang có hơn 20 ứng dụng Fintech lớn
và góp phần khơng lớn vào nền kinh tế nước nhà. Đặc biệt cả 4 kỳ lân công nghệ của Việt Nam:
VnPay, MoMo, VNG, Sky Mavis đều phát triển các ứng dụng Fintech.
Theo số liệu từ trung tâm lưu ký chứng khoán (VSD), số lượng tài khoản chứng khoán mở mới
của nhà đầu tư trong nước tháng 3 vừa qua đã lập kỷ lục lịch sử. Tổng số tài khoản chứng khoán
nhà đầu tư trong nước hiện đạt hơn 4,9 triệu, xấp xỉ 5% dân số, vượt trước trước 3 năm với mục
tiêu của Chính phủ đặt ra. Để tham gia mua bán chứng khoán, nhà đầu tư sẽ giao dịch thông qua
các ứng dụng của cơng ty chứng khốn như SSI, VNDirect, VPS,… Các ứng dụng này đều có
lượt tải rất lớn trên các cửa hàng ứng dụng cho thấy ngày càng nhiều người quan tâm tới thị
trường chứng khoán.
Song song với thị trường chứng khoán, thị trường vàng và tiền điện tử cũng diễn ra rất sơi động.
Khơng cịn cảnh chen chúc đứng xếp hàng mua vàng như nhiều năm trước, giờ đây nhà đầu tư có
thể tham gia mua các sản phẩm Vàng, Bạc,… điện tử. Đây là một hình thức mới mà các ngân
hàng vừa cho ra mắt khiến cho việc giao dịch loại tài sản này dễ dàng, thuận tiện và có thể giao
dịch mọi lúc, mọi nơi. Một số ví dụ có thể kể qua như eGold của Doji, Finhay, PNJ,
Vietcombank,… Thị trường tiền điện tử cũng vô cùng sôi động, tuy pháp luật Việt Nam chưa có
những quy định rõ ràng về tiền điện tử nhưng theo báo cáo của Binance, số lượng tài khoản mở
7
mới ở Việt Nam đang đứng top đầu thế giới, từ đó có thể thấy người Việt đang dần xem Crypto
là một kênh đầu tư mới.
1.2. Lý do chọn đề tài
Trên thị trường có rất nhiều ứng dụng đầu tư khác nhau về các kênh khác nhau, đặc điểm chung
của các ứng dụng này đều chỉ tập trung vào 1 kênh tài sản duy nhất hoặc chỉ thống kê được
những sản phẩm đầu tư trong phạm vi hoạt động của doanh nghiệp. Ngoài ra các ứng dụng sổ
quản lý chi tiêu thường thiếu các công cụ ghi lại lịch sử đầu tư, giao dịch các loại tài sản khác.
Nhận thấy cần một ứng dụng kết hợp giữa ứng dụng đầu tư và quản lý chi tiêu, em đã quyết định
nghiên cứu và phát triển đề tài: “Xây dựng ứng dụng quản lý tài chính tích hợp nhiều lớp tài
sản”.
Thơng qua việc phát triển ứng dụng, em mong có thể tạo ra một công cụ quản lý đầu tư hiệu quả
và dễ tiếp cận. Qua đó lan toả kiến thức về đầu tư tài chính và quản lý chi tiêu tới tất cả mọi
người, đặc biệt là người trẻ.
1.3. Mục tiêu
Nghiên cứu các chức năng cần thiết, đối tượng người dùng và từ đó xây dựng một ứng dụng
quản lý chi tiêu kết hợp theo dõi đầu tư nhiều lớp tài sản khác nhau.
1.4. Đối tượng
-
Người trẻ độ tuổi từ 18 – 30 đang tham gia đầu tư vào các kênh tài chính khác nhau như
Vàng, Chứng khốn, Tiền điện tử,…
-
Những dùng cần một ứng dụng quản lý chi tiêu giúp theo dõi chi tiêu cá nhân và gia đình,
từ đó đưa ra được các phương pháp cân đối tài chính.
-
Người dùng cần sử dụng các cơng cụ tài chính để theo dõi, quyết định tham gia vào các
thị trường tài chính.
1.5. Phạm vi
Phạm vi của đề tài phụ thuộc vào độ rộng của cơ sở dữ liệu về các kênh đầu tư, tập trung phát
triển vào thị trường Việt Nam.
1.6. Phương pháp phát triển
Các bước thực hiện đề tài:
8
-
Nghiên cứu thị trường
-
Phân tích xu hướng người dùng
-
Lựa chọn cơng nghệ
-
Thiết kế hệ thống
-
Phát triển ứng dụng
-
Kiểm thử
-
Hồn thiện và báo cáo
Công cụ phát triển:
-
Ngôn ngữ: React Native
-
Database: Firebase
-
Quản lý mã nguồn: Github
-
Mơi trường: Android
-
Cơng cụ mơ hình hố: Diagram.io
Chương 2. Cơ sở lý thuyết & công nghệ
2.1. Phân tích các ứng dụng đã có
Như đã đề cập ở phần trước, trên thị trường có rất nhiều ứng dụng đầu tư cũng như quản lý chi
tiêu nhưng đa số chỉ đều tập trung vào một số lớp tài sản nhất định cũng như chưa có những tính
năng người dùng thực sự cần.
2.1.1. Ứng dụng đầu tư FinHay
FinHay là một ứng dụng đầu tư tích tích luỹ được ra đời năm 2017, FinHay liên kết với các ngân
hàng và quỹ đầu tư đem lại nhiều gói đầu tư hấp dẫn cho người dùng. FinHay được đánh giá là
một ứng dụng tốt cho nhà đầu tư mới bước vào thị trường tài chính. Nhà đầu tư có thể tham gia
đầu tư tích luỹ vào Cổ phiếu quỹ hoặc Vàng. Nhà đầu tư cịn có thể nhận lãi suất khơng định kỳ
khi để tiền trong FinHay.
9
Hình 1 Ứng dụng FinHay
Tuy nhiên, điều FinHay thiếu là lịch sử thu – chi, người dùng có thể tham gia đầu tư trên app
nhưng không thể theo dõi thu – chi cá nhân trên app. Ngoài ra, FinHay hiện chưa đưa ra lịch sử
đầu tư cụ thể mà chỉ tập trung vào các gói đầu tư.
2.1.2. Sổ thu chi Misa
Là một sản phẩm của công ty Misa.vn, sổ chi tiêu Misa đạt được lượng người dùng rất đông đảo.
Người dùng chủ yếu là người dùng cá nhân muốn quản lý chi tiêu cá nhân. Một số đặc điểm nổi
bật của Misa là giao diện đẹp, trực quan, có thể thêm được các giao dịch phát sinh tăng hoặc
giảm,… Ngoài ra Misa cịn cung cấp nhiều cơng cụ tài chính khác như Phân tích tài chính, Theo
dõi vay nợ,…
10
Hình 2 Ứng dụng Sổ Thu Chi Misa
Misa hiện chỉ đang tập trung vào quản lý chi tiêu cho tiền mặt, chưa phát triển tính năng theo dõi
các khoản đầu tư tài chính.
2.1.3. Ví điện tử MoMo
Ví điện tử MoMo là một trong 4 kỳ lân công nghệ triệu đô ở Việt Nam, với thâm niên hơn 8 năm
trong lĩnh vực ví điện tử, MoMo đã cho ra đời nhiều sản phẩm và dịch vụ hướng tới sự thuận tiện
cho người dùng. Gần đây, sau khi đạt thoả thuận được với một số ngân hàng, MoMo đã cho ra
đời một số dịch vụ đầu tư tài chính ngay trên app. Cụ thể người dùng có thể tham gia đầu tư tích
luỹ với lãi suất 6% 1 năm qua Ví Thần Tài và đầu tư vào Cổ phiếu quỹ. Ưu điểm của MoMo
đem lại là hình thức đầu tư linh hoạt, dễ dàng tiếp cận với đại đa số người dùng. Chỉ với một vài
thao tác, người dùng có thể mở Ví Thần Tài và bắt đầu tích luỹ. Người dùng cịn có thể dễ dàng
sử dụng Ví Thần Tài như là một nguồn tiền thanh toán cho các dịch vụ trên ví. Tuy nhiên,
MoMo chỉ đang tập trung vào hình thức đầu tư tích luỹ và chưa đưa ra các hình thức đầu tư khác
như Vàng, Crypto. Lịch sử đầu tư của MoMo cũng chưa thực sự được làm rõ. MoMo có tích hợp
lịch sử chi tiêu nhưng chỉ tập trung vào các giao dịch phát sinh trên app, điều này khiến người
dùng không thể thêm các chi tiêu bên ngồi vào để quản lí.
11
Hình 3 Ứng dụng MoMo túi thần tài
Hình 4 Ứng dụng quản lý chi tiêu MoMo
12
2.2.
Khảo sát người dùng
Trong q trình nghiên cứu các tính năng và phân tích các ứng dụng có sẵn trên thị trường, em
đã làm một khảo sát nhỏ để thu thập ý kiến của người dùng. Sau đây là một số thống kê rút ra từ
báo cáo:
Độ tuổi người làm khảo sát chủ yếu tập trung vào 18 – 25:
Hình 5 Biểu đồ độ tuổi khảo sát
Trong đó 56.3% người tham gia khảo sát có tham gia một kênh đầu từ tài chính:
Hình 6 Biểu độ tỉ lệ tham gia đầu tư
Và 75% quan tâm tới việc quản lý chi tiêu cá nhân
13
Hình 7 Biểu đồ mức độ quan tâm tới thu chi
Khi được hỏi về các lý do chưa hài lòng ở các ứng dụng đầu tư và quản lý chi tiêu hiện tại, phần
lớn người tham gia mong muốn có thể quản lý tập trung các loại đầu tư khác nhau
Hình 8 Biểu đồ trải nghiệm người dùng
Đặc biệt phần lớn người dùng mong muốn thêm chức năng quản lý chi tiêu vào các ứng dụng
đầu tư
14
Hình 9 Biểu đồ tính năng đề xuất
Qua kết quả của cuộc khảo sát, có thể rút ra kết luận như sau: Đa số người dùng trẻ (trong độ
tuổi dưới 30) đã và đang quan tâm đến việc đầu tư tài chính, đang tìm kiếm các ứng dụng cũng
như kênh đầu tư tài chính hiệu quả. Đa số người dùng hài lòng với ứng dụng hiện tại nhưng vẫn
muốn bổ sung một số tính năng như quản lý chi tiêu và tích hợp nhiều lớp tài sản trên một ứng
dụng.
2.3.
Cơng nghệ sử dụng
2.3.1. Serverless
Ứng dụng được xây dựng theo kiến trúc Serverless – khơng có Backend. Đây là một kiến trúc
mới được ra đời gần đây, được sử dụng để xây dựng các ứng dụng đơn giản, không quá phức tạp
và không cần tới một Backend server. Để áp dụng được Serverless, nhà phát triển cần một ứng
dụng phía giao diện người dùng kết nối tới một dịch vụ Backend as Service do bên thứ 3 cung
cấp. Dịch vụ Backend as Service cần có những thành phần cơ bản như: hệ thống tài khoản, cơ sở
dữ liệu, cloud function,… và khả năng duy trì dịch vụ 24/7. Hiện nay, kiến trúc này đang được
rất ưa chuộng do các lợi ích về thời gian phát triển ứng dụng khả năng đáp ứng và độ ổn định của
các dịch vụ Cloud Backend. Một số nhà cung cấp dịch vụ Cloud Backend nổi tiếng có thể kể tới
như GCP (Google Cloud Platform), AWS (Amazon), Azure (Microsoft),…
15
Hình 10 Một số nhà cung cấp Backend as Service
2.3.1. Giao diện người dùng: React Native
React Native là một Javascript framework được phát triển bởi Meta (Facebook) giúp phát triển
ứng dụng di động trên cả 2 hệ điều hành Android và iOS. React Native sẽ trực tiếp mapping các
giao diện từ JSX sang các component native tương ứng với mỗi hệ điều hành, điều này giúp ứng
dụng tuy được phát triển với môi trường Multi platform nhưng chạy native trên hệ điều hành
đem lại hiệu năng cao và khả năng tương thích với thiết bị.
React Native sử dụng cú pháp của JSX để định nghĩa các thành phần giao diện. JSX (Javascript
+ XML) cho phép viết code cho các thành phần giao diện như cú pháp HTML và được React
Native biên dịch ra Native code. Một số ưu điểm của JSX như:
-
Tốc độ nhanh hơn vì code dễ nhìn, dễ đọc hiểu
-
Gỡ lỗi nhanh vì trình biên dịch có thể phát hiện lỗi của JSX
-
Dễ làm quen, tiếp cận nếu nhà phát triển đã từng làm việc với HTML hoặc XML
Virtual DOM được cả React Native và ReactJS sử dụng nhằm tối ưu thời gian render các thành
phần giao diện. Mỗi các Native Component được mapping vào một Virtual DOM trong bộ nhớ
tạm, mỗi khi có thay đổi và cần rerender lại giao diện thì React sẽ tính tốn và quyết định sẽ
rerender lại các Component. Lúc này, chỉ các Component được ánh xạ với các Virtual DOM có
16
thay đổi sẽ bị rerender, việc này giúp việc thay đổi giao diện được thực hiện chính xác và nhanh
chóng.
Hình 11 Virtual DOM
React Native Bridge là một cơ chế được sử dụng để giao tiếp giữa Javascript thread và Native
thread. Khi có một thay đổi được phát ra từ React, các thay đổi này sẽ được đẩy vào một hàng
đợi và lần lượt đẩy tới xử lý ở Native, điều đặc biệt hàng đợi này là “bất đồng bộ” nên các đôi
khi các thay đổi trên Native sẽ không theo thứ tự dẫn tới giật lag hoặc mật frame ở một số trường
hợp. Ngồi ra, các tính tốn phức tạp có thể gây block UI thread làm cho ứng dụng bị đơ, đứng.
Để khắc phục vấn đề này, đội ngũ lập trình viên của React Native đã cho ra đời cơ chế rerender
mới là Fabric.
17
Hình 12 React Native Bridge
Fabric là một redering system thay thế cho cơ chế render hiện tại. Fabric loại bỏ cơ chế bridge
hiện tại và thay thế bằng các tham chiếu trực tiếp tới Native Component, nhờ đó việc thay đổi
giao diện sẽ diễn ra nhanh chóng do có sự tương tác trực tiếp. Các hành động như cuộn, kéo
thả,… sẽ được thực hiện theo cơ chế đồng bộ trong khi những hành động khác sẽ được thực thi
bất đồng bộ. UI Thread và JS Thread giờ đây có thể tương tác 2 chiều qua lại nhờ đó có thể gọi
những Native API một cách dễ dàng. Fabric kết hợp với một số thành phần mới khác sẽ đưa ra
một cơ chế render hoàn toàn mới hiệu quả hơn:
18
Hình 13 Fabric architecture
2.3.2. Cơ sở dữ liệu: Firebase
Firebase là một sản phẩm trong hệ sinh thái Google Cloud Platform (GCP) đem lại các công cụ
mạnh mẽ như Authentication system, Firestore database, Realtime database, Cloud function,…
Các công cụ firebase cung cấp nhằm hướng tới nhà phát triển có thể phát triển ứng dụng một
cách nhanh nhất mà không cần hệ thống Backend (serverless). Đặc biệt Firebase có thể tích hợp
dễ dàng trên cả môi trường Web lẫn Mobile (Android, iOS) chỉ với một số thao tác đơn giản.
Firebase cung cấp bộ module rất đa dạng và hữu ích cho nhà phát triển ứng dụng cùng với bảng
giao diện thống kê lượt truy cập, sử dụng của người dùng trên các ứng dụng.
19
Hình 14 Firebase dashboard
Firebase Authentication là một cơng cụ giúp nhà phát triển khởi tạo nhanh một hệ thống tài
khoản dành cho ứng dụng bao gồm các tính năng:
-
Đăng ký / Đăng nhập
-
Xác thực đăng ký bằng email và số điện thoại
-
Đăng nhập thông qua các nên tảng mạng xã hội bên thứ 3: Facebook, Github, Google,…
-
Quản lý và cập nhật thông tin người dùng
Sự ra đời của Firebase Authentiation đã tiết kiệm rất nhiều thời gian cho nhà phát triển khi không
phải lặp lại thao tác khởi tạo database cho người dùng và quản lý thông tin người dùng, chỉ tập
trung vào phát triển chức năng chính của sản phẩm. Module này có thể được tích hợp dễ dàng
vào các ứng dụng di động, website,… Một số tính năng nổi bật của Firebase Authentication:
Quản lý danh sách tài khoản:
20
Hình 15 Danh sách tài khoản Firebase Authentication
Thiết lập phương thức đăng ký/ đăng nhập, quy định tên miền, ứng dụng có thể sử dụng hệ thống
tài khoản:
Hình 16 Cách thức đăng nhập Firebase Authentication
21
Hình 17 Tên miền sử dụng Firebase Authentication
Tuỳ chỉnh nội dung email/sms xác minh tài khoản:
Hình 18 Email template Firebase Authentication
Firestore là một database online theo cơ chế NoSQL của Google phát triển đã và đang được sử
dụng phổ biến nhờ độ tối ưu về tốc độ đọc – ghi và các bước cấu hình đơn giản. Ngồi ra,
22
Firestore cịn có cơ chế Subscriber giúp client nhận biết được sự thay đổi của database, hỗ trợ
lưu trữ dữ liệu offline và tự động đồng bộ khi có kết nối trở lại.Việc client có thể trực tiếp kết nối
tới database tiềm ẩn nguy cơ về an toàn dữ liệu nên Firestore cung cấp chức năng Firestore Rule
để giới hạn quyền hạn của người dùng:
Hình 19 Firestore rule
2.3.3. Websocket
Websocket là một giao thức kết nối 2 chiều – bidirectional giữa client và server. Kết nối của
Websocket sẽ được duy trì đến khi 1 trong 2 bên chủ động ngắt kết nối. Websocket dựa trên giao
thức TCP để truyền các gói tin. Không giống như các kết nối HTTP, các kết nối Websocket
thường bắt đầu bằng ws:// hoặc wss://. Các gói tin được truyền dưới dạng text hoặc nhị phân.
Websocket thường được sử dụng trong các trường hợp yêu cầu thời gian thực như ứng dụng
chat, bảng giá chứng khoán,… nhờ vào đột trễ thấp và khả năng duy trì kết nối cũng như lắng
nghe. Websocket được phát triển dựa theo hướng sự kiện (Event-driven) để có thể thơng báo các
thay đổi, cập nhật thông tin tới ứng dụng ngay khi có một sự kiện xảy ra.
Socket .io: Socket.IO là một thư viện cho phép thực hiện các kết nối thời gian thực, 2 chiều và
hướng sự kiện giữa client và server. Socket.IO bao gồm: NodeJS server và thư viện Javascript
dành cho client.
Hình 20 Giao tiếp giữa client và server Websocket
23
Ngồi ra, Socket.IO cũng có thể triển khai ở nhiều ngôn ngữ khác như Java, C#, Python…
Socket.IO client sẽ tạo ra một kết nối Websocket tới server và sẽ tự động chuyển thành kết nối
HTTP khi trình duyệt khơng hỗ trợ. Để khởi tạo một kết nối Websocket bằng Socket.IO ta sử
dụng:
Hình 21 Cách kết nối bằng Socket.IO
Đặc biệt, Socket.IO không phải là một thư viện dùng để kết nối Websocket thông thường,
Socket.IO sẽ gửi kèm một số thông tin khác ngoài dữ liệu cần truyền tải nên để kết nối Socket
bằng Socket.IO ta cần có một server được viết bằng Socket.IO server.
2.4. Lý thuyết về đầu từ và quản lý chi tiêu
2.4.1. Các công thức dùng trong đầu tư:
-
Công thức tính trung bình giá
Cơng thức cập nhật giá mua vào cho tài sản mỗi khi có giao dịch liên quan tới tài sản đó
(vàng, chứng khốn, tiền ảo,…). Khi thực hiện một giao dịch mua, giá của tài sản sẽ được
cập nhật dựa vào số lượng và giá mua vào. Mỗi tài sản cần lưu trữ một giá mua vào để có
thể tính % tăng trưởng của tài sản. Cơng thức được trích bài viết “Cơng thức trung bình
giá vốn tại VNDIRECT” của cơng ty chứng khốn VNDIRECT, cơng thức được tính như
sau:
24
Hình 22 Cơng thức trung bình giá tài sản
Ngồi ra trong thực tế sẽ giá mua vào sẽ được công thêm phí giao dịch, phí giao dịch sẽ
được quy định tuỳ vào loại tài sản, sàn giao dịch và quy định tính riêng biệt. Trong đề tài
này bỏ qua phí giao dịch và được gộp vào giá mua mới.
-
Công thức tính lãi – lỗ thực tế:
Cơng thức sử dụng để tính % tăng trưởng của tài sản so với giá gốc, giúp người dùng trực
quan hoá khoản lợi nhuận – thua lỗ trên lớp tài sản, từ đó đưa ra định hướng đầu tư hiệu
quả. Công thức được biến đổi từ cơng thức tính tỷ suất sinh lời kỳ vọng của cổ phiếu
trong bài viết “Cơng Thức và Cách Tính Phần Trăm Lãi Lỗ trong Chứng Khoán” của tác
giả Dao Kha Tuyet:
25
Hình 23 Cơng thức tính lợi nhuận của tài sản
2.4.1. Lý thuyết về danh mục đầu tư:
Danh mục đầu tư là một tập hợp các khoản đầu tư tài chính như cổ phiếu, trái phiếu, hàng hóa,
tiền mặt và các khoản tương đương tiền, cũng như các đối tác quỹ của chúng. Cổ phiếu và trái
phiếu thường được coi là nền tảng cốt lõi của danh mục đầu tư, mặc dù bạn có thể phát triển danh
mục đầu tư với nhiều loại tài sản khác nhau – bao gồm bất động sản, vàng, tranh và các đồ sưu
tầm nghệ thuật khác (theo Luatduonggia.vn). Như vậy danh mục đầu tư là cơ sở rất quan trọng để
nhà đầu tư quan sát sự tăng – giảm của tài sản, từ đó đưa ra các phương pháp đầu tư hiệu quả. Để
quản lý danh mục đầu tư, NDT có nhiều cách như: sổ tay, bảng biểu, ứng dụng,… Hầu hết các
phương pháp trên đều đang sử dụng phương pháp thủ công, chưa đem lại sự trực quan cho nhà
đầu tư. Để tạo một danh mục đầu tư, ta cần quan tâm tới một số vấn đề sau:
-
Lợi nhuận kì vọng: đây là chỉ số rất quan trọng, giúp NDT xác định kì mức lợi nhuận kì
vọng, từ đó đưa ra các quyết định đầu tư chính xác. Có nhiều phương pháp xác định lợi
nhuận kì vọng nhưng phổ biến nhất là cơng thức CAPM, được áp dụng rộng rãi và hiệu
quả trong giới đầu tư. Công thức mô tả mối quan hệ giữa rủi ro và lợi tức kỳ vọng đối với
tài sản. Cơng thức tính lợi nhuận kì vọng của một loại tài sản rủi ro như sau:
26