đồ án 1 phát triển hệ thống hỗ trợ quản lý tài chính cho giải pháp vay ngang hàng

104 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 phát triển hệ thống hỗ trợ quản lý tài chính cho giải pháp vay ngang hàng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đây là hoạt động được thiết kế và xây dựng trên nền tảng ứng dụng công nghệ số để kết nối trực tiếp người đi vay với người cho vay mà không thông qua các tổ chức trung gian tài chính.. M

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

NGUYỄN NHẬT HÀO – 21522046 PHAN VĂN MINH - 21522345

GIẢNG VIÊN HƯỚNG DẪN NGUYỄN TRỊNH ĐÔNG

TP HỒ CHÍ MINH, 2023

Trang 2

ĐẠ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

NGUYỄN NHẬT HÀO – 21522046 PHAN VĂN MINH - 21522345

Trang 3

LỜI CẢM ƠN

Đồ án “Phát triển hệ thống hỗ trợ quả lý tài chính cho giải pháp vay ngang hàng” là đồ án đầu tay trên nền tảng Mobile và Wed mà nhóm em thực hiện Để có thể hoàn thành đồ án 1 lần này, chúng em xin dành lời cảm ơn sâu sắc đến:

Ths Nguyễn Trịnh Đông đã tận tình hướng dẫn, cho lời khuyên cũng như đưa ra những định hướng thiết thực cho bọn em Những góp ý, bài học mà chúng em học được trong suốt quá trình thực hiện đồ án 1 sẽ là hành trang quý báu không chỉ hiện tại mà còn ở trong tương lai

Các quý thầy cô trường Đại học Công nghệ Thông tin đã truyền đạt những bài học hữu ích, không chỉ về kiến thức chuyên ngành mà còn những kĩ năng trong cuộc sống, công việc sau này

Trong quá trình thực hiện đồ án, nhóm có thể không tránh khỏi được sai sót, chúng em kính mong nhận được sự góp ý, hướng dẫn của thầy để có thể hoàn thiện đồ án hơn nữa, không chỉ dừng lại ở đồ án 1 mà có thể phát triển lên thành đồ án 2

Chúng em xin gửi lời cảm ơn chân thành nhất đến thầy

TP.HCM, ngày 23 tháng 12 năm 2023

Nhóm sinh viên thực hiện

Phan Văn Minh – Nguyễn Nhật Hào

Trang 4

MỤC LỤC

Chương 1 TỔNG QUAN ĐỀ TÀI 12

1.1 Lý do chọn đề tài 12

1.2 Đối tượng nghiên cứu 13

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

Chương 2 CƠ SỞ LÝ THUYẾT 14

2.1 Tổng quan về mô hình cho vay P2P lending: 14

2.1.1 Mô hình P2P lending truyền thống 14

2.2 Mô hình hoạt động P2P Lending tại Việt Nam: 17

2.3 Cơ sở pháp lý về hoạt động P2P Lending tại Việt Nam: 19

2.4 Đánh giá vai trò và rủi ro trong hoạt động P2P Lending: 21

2.5 Kết luận: 23

Chương 3 CƠ SỞ CÔNG NGHỆ 24

3.1 Flutter 24

3.1.1 Giới thiệu 24

3.2 Bloc - State Management 26

3.2.1 Giới thiệu về Bloc 26

Trang 5

4.2 Phân tích yêu cầu 36

4.2.1 Yêu cầu chức năng 36

4.2.1.1 Yêu cầu của người dùng là người sử dụng ứng dụng: 36

4.2.1.2 Yêu cầu của người dùng là người quản trị hệ thống: 37

4.2.2 Yêu cầu phi chức năng 38

4.2.2.1 Website admin 38

4.2.2.2 App cho người dùng 38

Chương 5 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 40

Trang 6

5.2.1 Sơ đồ Usecase đăng nhập 57

5.2.2 Sơ đồ usecase quản lý bài đăng 58

5.2.3 Sơ đồ usecase quản lý thông tin tài khoản 60

5.2.4 Sơ đồ usecase nhắn tin 61

5.2.5 Sơ đồ usecase gửi yêu cầu vay tiền 62

5.2.6 Sơ đồ usecase xác nhận và tạo yêu cầu vay tiền 63

Trang 7

6.2.9 Màn hình Danh sách bài đăng 77

6.2.10 Màn hình Chi tiết bài đăng 78

6.2.11 Màn hình Thông tin người dùng 79

6.2.12 Màn hình tạo bài đăng: 80

6.2.13 Màn hình Tìm kiếm bài đăng 81

6.2.14 Màn hình Quản lý bài viết 82

6.2.15 Màn hình Danh sách tin nhắn 84

6.2.16 Màn hình Chi tiết tin nhắn 85

6.2.17 Màn hình Thông báo 86

6.2.18 Màn hình Quản lý yêu cầu 87

6.2.19 Màn hình Tạo yêu cầu 89

6.2.20 Màn hình Chi tiết yêu cầu 90

6.2.21 Màn hình Hủy yêu cầu 91

6.2.22 Màn hình Quản lý hợp đồng 92

6.2.23 Màn hình Chi tiết hợp đồng 93

6.2.24 Màn hình Chi tiết pdf hợp đồng 94

6.2.25 Màn hình Thanh toán ZaloPay 95

6.2.26 Màn hình Kết quả thanh toán 96

Trang 8

6.2.27 Màn hình Quản lý tài khoản 97

6.2.28 Màn hình Chi tiết hồ sơ người dùng 98

Trang 9

DANH MỤC HÌNH

Hình 1: Mô hình P2P Lending truyền thống 15

Hình 2: Mô hình P2P lending hợp tác với ngân hàng 16

Hình 3: Mô hình P2P Lending cam kết về lợi nhuận 17

Hình 4: Danh sách một số công ty P2P Lending truyền thống hoạt động tại Việt Nam 18

Hình 5: Số nền tảng P2P Lending theo quốc gia và theo đơn vị tiền tệ 19

Hình 13: Sơ đồ ERD tổng quát 40

Hình 14: Sơ đồ Usecase Tổng quát 57

Hình 15: Sơ đồ hoạt động đăng ký 64

Hình 16: Sơ đồ hoạt động đăng nhập 65

Hình 17: Sơ đồ hoạt động Gửi yêu cầu vay tiền 66

Trang 10

Hình 27: Màn hình Chi tiết bài đăng 78

Hình 28: Màn hình Thông tin người dùng 79

Hình 29: Màn hình Đăng tin 80

Hình 30: Màn hình Tìm kiếm bài đăng 81

Hình 31: Màn hình Quản lý bài viết (1) 82

Hình 32: Màn hình Quản lý bài viết (2) 83

Hình 33: Màn hình danh sách tin nhắn 84

Hình 34: Màn hình Chi tiết tin nhắn 85

Hình 35: Màn hình Thông báo 86

Hình 36: Màn hình Quản lý yêu cầu (1) 87

Hình 37: Màn hình Quản lý yêu cầu (2) 88

Hình 38: Màn hình Tạo yêu cầu (2) 89

Hình 39: Màn hình Chi tiết yêu cầu 90

Hình 40: Màn hình Hủy yêu cầu 91

Hình 41: Màn hình Quản lý hợp đồng 92

Hình 42: Màn hình Chi tiết hợp đồng 93

Hình 43: Màn hình Chi tiết pdf hợp đồng 94

Hình 44: Màn hình Thanh toán ZaloPay 95

Hình 45: Màn hình Kết quả thanh toán 96

Hình 46: Màn hình Quản lý tài khoản 97

Hình 47: Màn hình Chi tiết hồ sơ người dùng 98

Hình 48: Màn hình Đổi mật khẩu 99

Hình 49: Màn hình Cập nhập thông tin 100

Hình 50: Màn hình Cài đặt thông số 101

Trang 12

Trước đây, quá trình vay tiền thường gặp phải nhiều thách thức, bao gồm thủ tục phức tạp, thời gian xử lý kéo dài, và yêu cầu bảo đảm khó khăn Tuy nhiên, với sự xuất hiện của internet, việc này trở nên thuận tiện hơn rất nhiều Người vay có thể dễ dàng tìm kiếm và so sánh các sản phẩm tài chính trực tuyến, giảm bớt gian đoạn và tăng tốc quá trình vay mượn

Với sự phát triển của công nghệ kỹ thuật số, một phương thức cho vay trực tuyến mới xuất hiện là cho vay ngang hàng (Peer-to-Peer Lending hay còn gọi là P2P Lending) Đây là hoạt động được thiết kế và xây dựng trên nền tảng ứng dụng công nghệ số để kết nối trực tiếp người đi vay với người cho vay mà không thông qua các tổ chức trung gian tài chính Nhờ đó, thủ tục, quy trình cho vay, giải ngân cũng được tối giản, tiết kiệm thời gian.

Tuy nhiên, việc vay tiền qua internet cũng mang theo một số khó khăn và rủi ro Bảo mật thông tin cá nhân, rủi ro lãi suất cao, và đôi khi sự không minh bạch trong các điều khoản và điều kiện là những thách thức mà người vay cần đối mặt Lý do nhóm chọn đề tài phát triển sàn cho vay P2P là để giải quyết những vấn đề này, tạo

Trang 13

13

ra một môi trường vay mượn trực tuyến minh bạch, an toàn và linh hoạt, giúp cộng đồng tài chính trở nên công bằng và dễ tiếp cận hơn cho mọi người

1.2 Đối tượng nghiên cứu

Đối tượng trong phạm vi đề tài hướng đến:

- Người dùng có nhu cầu đầu tư cho vay hoặc cần vay vốn tiền trực tuyến qua nền tảng vay vốn ngang hàng

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

• Nghiên cứu từ các ứng dụng hiện có trên thị trường, quan sát và rút ra những ưu, nhược điểm của các ứng dụng đó (vnpay, Fiin, MoneyCat, )

• Tham khảo ý kiến của giảng viên hướng dẫn để đạt được kết quả tốt nhất cho đề tài

Trang 14

14

Chương 2 CƠ SỞ LÝ THUYẾT

2.1 Tổng quan về mô hình cho vay P2P lending:

Các công ty Fintech trong những năm gần đây đã có sự phát triển mạnh mẽ, cung cấp các giải pháp tài chính mới trên nền tảng số; trong đó có mô hình các công ty P2P lending Mặc dù có nhiều quan điểm khác nhau về nguồn gốc xuất xứ của P2P lending nhưng tựu chung lại P2P lending đều được hiểu chung là hoạt động dựa trên nền tảng công nghệ tài chính, được thiết kế và xây dựng trên nền tảng giao dịch trực tuyến kết nối trực tiếp giữa người đi vay và người cho vay mà không thông qua các trung gian tài chính như tổ chức tín dụng Toàn bộ hoạt động phê duyệt khoản vay, giải ngân, hay trả nợ giữa người đi vay và người cho vay được thực hiện trên nền tảng giao dịch trực tuyến của các công ty P2P lending, được lưu trữ bằng các bảng ghi điện tử, số hóa trên hệ thống cơ sở dữ liệu của công ty Có thể phân loại P2P lending thành một số mô hình phổ biến được áp dụng tại nhiều nước trên thế giới cũng như Việt Nam như sau:

2.1.1 Mô hình P2P lending truyền thống

Công ty P2P lending chỉ cung cấp nền tảng công nghệ đơn thuần, nhằm kết nối trực tuyến giữa người đi vay và người cho vay Theo đó, hợp đồng vay vốn được ký kết trực tiếp giữa người đi vay và người cho vay Người cho vay chịu mọi rủi ro nếu người đi vay không trả nợ Vốn vay và tiền trả nợ theo hợp đồng vay được tách biệt khỏi tài khoản trên nền tảng giao dịch trực tuyến Công ty P2P lending có nguồn thu từ phí giao dịch của các bên tham gia Như vậy trong mô hình này, các công ty P2P lending chỉ cung cấp nền tảng công nghệ đơn thuần

Trang 15

15

Hình 1: Mô hình P2P Lending truyền thống

Công ty P2P lending đóng vai trò như đại lý môi giới đối với người cho vay và người đi vay Trên cơ sở thỏa thuận của công ty P2P lending và ngân hàng, sau khi nhận thông tin từ công ty P2P lending, ngân hàng cấp các khoản vay và sau đó bán lại cho công ty P2P lending Trong mô hình này, vai trò của công ty P2P lending không chỉ còn là cung cấp công nghệ đơn thuần mà tham gia trực tiếp vào quy trình tín dụng Với sự tham gia của ngân hàng trong quá trình giải ngân, rủi ro đối với người đi vay được giảm thiểu khi họ có đầy đủ điều kiện được vay và giấy tờ cần thiết Các bước trong mô hình này được cụ thể hoá theo hình 2

Trang 16

16

Hình 2: Mô hình P2P lending hợp tác với ngân hàng

Trong mô hình này, công ty P2P lending cung cấp các khoản vay từ chính nguồn vốn được đóng góp bởi người cho vay/nhà đầu tư Công ty P2P lending đánh giá, lựa chọn đề xuất vay vốn và tự chủ động tiến hành cho vay trực tiếp đối với người đi vay và hưởng lãi suất, phí (nếu có) từ khoản vay này Nhà đầu tư đóng góp nguồn vốn vào quỹ/vốn của công ty P2P lending và nhận lợi nhuận theo cam kết của công ty P2P lending Đây không phải là một mô hình P2P lending phổ biến

Trang 17

17

Hình 3: Mô hình P2P Lending cam kết về lợi nhuận

2.2 Mô hình hoạt động P2P Lending tại Việt Nam:

Tại Việt Nam bắt đầu xuất hiện công ty hoạt động giống mô hình P2P Lending từ năm 2016 với trang huydong.com Kể từ đó, nhiều công ty P2P Lending khác đã dần đi vào hoạt động, như Tima, SHA, Mobivi, Vaymuon.vn, Mofin…

Theo Báo cáo tài chính khu vực châu Á - Thái Bình Dương lần 3, quy mô của thị trường P2P Lending Việt Nam khá nhỏ so với các nước trong khu vực Đông Nam Á, chiếm 1,6% khối lượng giao dịch của khu vực, chỉ xếp trên Nepal và Kazakhstan (University of Cambridge JBS, 2018) Điều này cũng phù hợp với tuổi đời còn non trẻ của mô hình P2P Lending tại Việt Nam Tuy nhiên, Việt Nam có nhiều tiềm năng thích hợp cho sự phát triển của mô hình này dựa trên sự phát triển nhanh chóng của khoa học công nghệ, Internet, thiết bị di dộng và đặc biệt là dữ liệu lớn (Big Data) Bên cạnh đó, sự thay đổi về cơ cấu dân số học, đặc biệt là thế hệ trẻ sẵn sàng thích ứng với công nghệ mới và mong muốn được cung cấp các dịch vụ tài

Trang 18

Hình 4: Danh sách một số công ty P2P Lending truyền thống hoạt động tại Việt Nam

Tuy mới xuất hiện và tồn tại khoảng 5 năm, các công ty P2P Lending đã đưa ra các sản phẩm vay vốn trên các nền tảng trực tuyến khá đa dạng, gồm: Vay có tài sản bảo đảm và vay không có tài sản bảo đảm, trong đó chủ yếu là vay không có tài sản bảo đảm Đối với khoản vay cá nhân, các công ty P2P Lending đưa ra các sản phẩm vay tín chấp theo lương, vay theo sổ hộ khẩu, vay theo đăng ký xe máy, vay trả góp, vay theo hóa đơn điện, nước Đối với doanh nghiệp (chủ yếu là các doanh nghiệp vừa và nhỏ - SMEs), các công ty P2P Lending cũng đưa ra nhiều sản phẩm, dịch vụ như vay tài trợ các khoản phải thu, tài trợ bên mua hàng, tài trợ vốn lưu động, tài trợ thương mại điện tử

Trang 19

19

Hình 5: Số nền tảng P2P Lending theo quốc gia và theo đơn vị tiền tệ

2.3 Cơ sở pháp lý về hoạt động P2P Lending tại Việt Nam:

Thực tế cho thấy, pháp luật hiện hành của Việt Nam chưa có một đạo luật riêng hoặc một văn bản quy phạm pháp luật được ban hành chỉ để điều chỉnh hoạt động cho vay ngang hàng Luật Các tổ chức tín dụng năm 2010 đã được sửa đổi, bổ sung năm 2017 không có quy định về vay ngang hàng Hoạt động cho vay ngang hàng không được xếp vào một dạng hoạt động cấp tín dụng theo cách hiểu của Luật Các tổ chức tín dụng Theo quy định tại Điều 4 Luật Các tổ chức tín dụng, “cấp tín dụng là việc thỏa thuận để tổ chức, cá nhân sử dụng một khoản tiền hoặc cam kết cho phép sử dụng một khoản tiền theo nguyên tắc có hoàn trả bằng nghiệp vụ cho vay, chiết khấu, cho thuê tài chính, bao thanh toán, bảo lãnh ngân hàng và các nghiệp vụ cấp tín dụng khác” và “cho vay là hình thức cấp tín dụng, theo đó bên cho vay giao hoặc cam kết giao cho khách hàng một khoản tiền để sử dụng vào mục đích xác định trong một thời gian nhất định theo thỏa thuận với nguyên tắc có hoàn trả cả gốc và lãi” Các thuật ngữ “cho vay” và “cấp tín dụng” theo quy định tại Luật Các tổ chức tín dụng luôn đòi hỏi bên cho vay hoặc bên cấp tín dụng phải là một tổ chức tín dụng hoạt động hợp pháp tại Việt Nam Trường hợp doanh nghiệp cung cấp nền tảng kết nối giữa người cho vay và người vay không trực tiếp là bên cho vay hoặc

Trang 20

Theo quy định tại Điều 465 Bộ luật Dân sự năm 2015, bên cho vay có các nghĩa vụ như sau: (1) Giao tài sản cho bên vay đầy đủ, đúng chất lượng, số lượng vào thời điểm và địa điểm đã thỏa thuận; (2) Bồi thường thiệt hại cho bên vay, nếu bên cho vay biết tài sản không bảo đảm chất lượng mà không báo cho bên vay biết, trừ trường hợp bên vay biết mà vẫn nhận tài sản đó; (3) Không được yêu cầu bên vay trả lại tài sản trước thời hạn, trừ trường hợp quy định tại Điều 470 của Bộ luật này hoặc luật khác có liên quan quy định khác

Trong khi đó, bên vay có nghĩa vụ trả nợ được quy định cụ thể tại Điều 466 Bộ luật Dân sự năm 2015 như sau: Bên vay tài sản là tiền thì phải trả đủ tiền khi đến hạn, trừ trường hợp có thỏa thuận khác; Địa điểm trả nợ là nơi cư trú hoặc nơi đặt trụ sở của bên cho vay, trừ trường hợp có thỏa thuận khác; Trường hợp vay không có lãi mà khi đến hạn bên vay không trả nợ hoặc trả không đầy đủ thì bên cho vay có quyền yêu cầu trả tiền lãi với mức lãi suất theo quy định tại khoản 2 Điều 468 của Bộ luật này trên số tiền chậm trả tương ứng với thời gian chậm trả, trừ trường hợp có thỏa thuận khác hoặc luật có quy định khác; Trường hợp vay có lãi mà khi đến hạn bên vay không trả hoặc trả không đầy đủ thì bên vay phải trả lãi như sau: a) Lãi trên nợ gốc theo lãi suất thỏa thuận trong hợp đồng tương ứng với thời hạn vay mà đến hạn chưa trả; trường hợp chậm trả thì còn phải trả lãi theo mức lãi suất quy định tại khoản 2 Điều 468 của Bộ luật này; b) Lãi trên nợ gốc quá hạn chưa trả bằng 150% lãi suất vay theo hợp đồng tương ứng với thời gian chậm trả, trừ trường hợp có thỏa thuận khác Theo quy định tại Điều 467 Bộ luật Dân sự năm 2015, các bên có thể thỏa thuận về việc tài sản vay phải được sử dụng đúng mục đích vay Bên

Trang 21

2.4 Đánh giá vai trò và rủi ro trong hoạt động P2P Lending:

Mô hình P2P Lending có khá nhiều ưu điểm:

- Thứ nhất, bên vay sẽ: (i) Tiếp cận được nguồn vốn trực tiếp, đặc biệt là với

các món vay nhỏ, ngắn hạn của các doanh nghiệp nhỏ và vừa (DNNVV) khó tiếp cận nguồn vốn chính thức; (ii) Đáp ứng nhu cầu vay nhanh hơn do thủ tục, quy trình đơn giản hơn so với vay tiêu dùng thông thường; (iii) Phí và lãi suất có thể thấp hơn so với vay tiêu dùng thông thường qua trung gian do tiếp cận trực tiếp, sử dụng công nghệ và dữ liệu lớn (Big data) để tiết kiệm chi phí; (iv) Có thêm lựa chọn về kênh huy động vốn

- Thứ hai, đối với nhà đầu tư (bên cho vay), mô hình này cung cấp một kênh

đầu tư, góp phần đa dạng hóa danh mục đầu tư; đồng thời, lợi tức khá hấp dẫn (lãi suất thường cao hơn gửi tiết kiệm hoặc đầu tư trái phiếu thông thường)

- Thứ ba, đối với công ty P2P Lending, đây là một lĩnh vực hoạt động mới,

khai thác nền tảng công nghệ đã có, đem lại nguồn thu, đa dạng hóa hoạt động và tăng việc làm cho nhân viên

- Thứ tư, mô hình này giúp tăng khả năng tiếp cận vốn cho các DNNVV là đối

tượng khó tiếp cận vốn từ các kênh huy động vốn truyền thống như vay vốn ngân hàng, phát hành cổ phiếu và trái phiếu trên thị trường vốn… Nguyên nhân chủ yếu là do đối tượng này thường có năng lực tài chính thấp, chưa xây dựng được kế hoạch kinh doanh dài hạn, nhu cầu vốn vay nhỏ và ngắn hạn, dễ bị ảnh hưởng bởi các đối tác, thiếu tài sản đảm bảo… Bên cạnh đó, mục đích loại hình cho vay này thường tập trung vào cho vay các món nhỏ

Trang 22

- Nhà đầu tư chịu nhiều rủi ro hơn so với bên vay, bởi vì tại nhiều quốc gia, bên vay vẫn được hưởng các quyền lợi theo quy định về bảo vệ người đi vay như các quy định về lãi suất, quyền được cung cấp thông tin… trong khi nhà đầu tư lại không được hưởng các quyền lợi liên quan đến việc bảo vệ người gửi tiền như trong hệ thống ngân hàng, trong khi đó, vẫn phải chịu các rủi ro về tín dụng, thanh khoản, pháp lý… Hơn nữa, nhà đầu tư chịu thêm rủi ro đạo đức xảy ra khi: Bên vay không trả được nợ (do khách quan hay cố ý, dù có thể được bù đắp một phần từ công ty P2P Lending); và/hoặc công ty P2P Lending dùng tiền đầu tư sai mục đích, quản lý kém hoặc phá sản (do khách quan hay cố ý)… dẫn đến khả năng mất vốn

- Những biến tướng của hình thức cho vay này như: công ty P2P Lending lừa đảo, áp dụng lãi suất và phí cao ngất ngưởng bất chấp khả năng trả nợ của bên vay; hoặc bên vay trốn tránh trả nợ dẫn đến bên cho vay hoặc công ty P2P Lending dùng mọi biện pháp kể cả thuê xã hội đen đòi nợ… dẫn đến diễn biến rất phức tạp, hệ lụy kinh tế và xã hội khó lường

- Rủi ro pháp lý cũng có thể xảy ra khi khung khổ pháp lý chưa đầy đủ và có thể bị thay đổi nhanh chóng, dẫn đến rủi ro cho cả phía doanh nghiệp và nhà đầu tư Cơ sở pháp lý chưa đầy đủ sẽ dẫn đến việc thiếu căn cứ để giải quyết

Trang 23

Dự án nghiên cứu của nhóm tập trung vào mô hình P2P lending truyền thống, trong đó nền tảng P2P lending chỉ đóng vai trò như một nền tảng kết nối trực tuyến Hình thức này mang lại nhiều ưu điểm, bao gồm sự đơn giản trong quy trình, tốc độ nhanh chóng, và khả năng tiếp cận vốn cho những đối tượng khó tiếp cận với các kênh huy động vốn truyền thống

Tuy nhiên, nhóm nhận thức rằng cùng với những ưu điểm, mô hình P2P lending cũng mang đến một loạt rủi ro và thách thức Điều này bao gồm các vấn đề về an toàn hoạt động, trách nhiệm giữa các bên liên quan, và rủi ro pháp lý Đối với nhà đầu tư, họ phải đối mặt với rủi ro về tín dụng, thanh khoản, và cả rủi ro đạo đức Hay hạn chế về thời gian và kiến thức nghiệp vụ, nhóm nghiên cứu đã quyết định chọn Mô hình P2P lending truyền thống để làm đề tài này Dự án hứa hẹn mang lại những kiến thức quý báu về hoạt động của P2P lending và cung cấp cái nhìn tổng quan về vai trò và thách thức của nó tại Việt Nam

Trang 24

Flutter có 2 phần quan trọng:

+ SDK (Software Development Kit): là một bộ tập hợp các công cụ hỗ trợ các nhà phát triển bao gồm công cụ biên dịch Code thành mã máy Native

Trang 25

25

+ Framework: Flutter cung cấp một số lượng lớn các Widget (Button, ListView, Text Input, ScrollBar, ), giúp cho các nhà phát triển có thể xây dựng giao diện nhanh chóng, tiện lợi, đẹp mắt

Ưu điểm:

- Phát triển giao diện đẹp, Animation đẹp mắt: Flutter cung cấp số lượng lớn các Widget, phong cách chuẩn Material và Cupertino, cho phép các nhà phát triển có thể tùy biến lại phụ thuộc vào nhu cầu của mình, từ đó giúp các nhà phát triển xây dựng giao diện nhanh chóng, tiện lợi

- Hot reload: Flutter được viết dựa trên ngôn ngữ Dart, một ngôn ngữ lập trình hướng đối tượng có hỗ trợ JIT (Just in time), từ đó cho phép framework này có thể cung cấp cơ chế hot reload Cơ chế này hoạt động bằng cách đưa những File Source Code đã được cập nhật, chỉnh sửa vào một máy ảo Virtual Machine (VM) của Dart Sau khi VM được cập nhật thì Flutter sẽ tự động tái xây dựng các Widget Tree và cho nhà phát triển xem được sự thay đổi trong app sau khi cập nhật Code mới Với cơ chế này, các nhà phát triển có thể cập nhật ứng dụng nhanh chóng ngay sau khi code xong mà không phải đợi build lại App

- Native Performance: Flutter giao tiếp gần như là trực tiếp với Native mà không phải thông qua một “cái cầu” như đối thủ của nó là React Native, do đó Flutter cung cấp một hiệu năng tiệm cận với các Native app Sở dĩ có thể làm được như này là do cơ chế AOT (Ahead of Time) giúp cho biên dịch nhanh hơn, chính xác và Native code

Nhược điểm:

- Render UI: Render UI được nhóm phát triển viết lại hoàn toàn mà không liên quan đến UI của Native app điều này tạo ra sự đánh đổi

Trang 26

- Flutter chỉ mới được phát hành chính thức gần đây và vẫn còn đang được tiếp tục phát triển do đó vẫn còn một số API vẫn chưa được ổn định và có thay đổi lớn qua các bản cập nhập Tuy được giới thiệu có thể phát triển đa nền tảng, nhưng Flutter hiện tại hỗ trợ chưa tốt trong việc phát triển trên nền tảng Web, Linux, Desktop App

3.2 Bloc - State Management 3.2.1 Giới thiệu về Bloc

Hình 7: Logo Bloc

Bloc (viết tắt của Business Logic Component) là một thư viện giúp quản lý các State trong các ứng dụng của Flutter Bloc được xây dựng dựa trên RxDart, với “event” là Input và “state” là Output Điểm độc đáo ở State Management này là

Trang 27

27

thường người ta sẽ chia các Bloc thành các Component và mỗi Component chỉ quản lý duy nhất một Business Logic, việc chia như này sẽ tránh ảnh hưởng, chồng chéo đến các Code Logic khác

Cũng giống như MVVM, MVC, Bloc cũng là một Pattern với mục đích là tách Business Logic ra khỏi tầng UI tránh gộp chung thành một File, để sau này khi có nhu cầu mở rộng hay thay đổi Business Logic thì sẽ dễ dàng thay đổi hơn mà không ảnh hưởng đến tầng UI

3.2.2 Kiến trúc

Hình 8: Ví dụ về mô hình ba lớp của BLoC

Trong một app Flutter, ta có thể chia thành 3 lớp như sau:

● Feature layer

Trang 28

28

● Domain layer ● Data layer

Data Layer: đây là lớp thấp nhất trong ứng dụng, chịu trách nhiệm truy xuất dữ liệu thô từ các nguồn bên ngoài như API, Database, Các Packages ở trong tầng này phải độc lập, không phụ thuộc vào UI (Feature layer)

Domain Layer: Tầng này như một cây cầu kết nối giữa 2 tầng là Feature Layer và Data Layer Ở đây là nơi tổng hợp các data từ tầng Data Layer và tiến hành xử lý Logic để tầng Feature Layer có thể sử dụng được Các thành phần trong tầng này được gọi là các Repository

Feature Layer: Đây là tầng sẽ làm việc trực tiếp và thể hiện ra cho người dùng Tầng này bao gồm các tính năng và các Business Logic của nó Thường các nhà phát triển sẽ phân chia các chức năng sao cho chúng độc lập với nhau để có thể dễ dàng thêm, xóa, sửa mà không ảnh hưởng đến các tính năng khác trong phần mềm, cách đơn giản để thực hiện việc này là chia theo từng trang Đối với mỗi tính năng, các State và Business logic sẽ được quản lý bởi Bloc Bloc sẽ tương tác với một hoặc nhiều Repository từ tầng Domain layer, đồng thời nó cũng sẽ nhận các Event từ UI và trả về các State để Render lại tầng UI

Trang 29

- Một trong những điểm nổi bật nhất của ReactJS đó là việc render dữ liệu không chỉ thực hiện được trên tầng Server mà còn ở dưới Client nữa

- Với triết lý "Learn Once, Write Anywhere" (Học Một Lần, Viết Ở Mọi Nơi), ReactJS đã trở thành một trong những công nghệ phổ biến nhất trong phát triển frontend

- Những điểm mạnh của ReactJS bao gồm:

- Component-Based Architecture (Kiến Trúc Dựa Trên Component): ReactJS sử dụng mô hình kiến trúc dựa trên component, cho phép phân chia giao diện người dùng thành các thành phần độc lập Điều này giúp tăng khả năng tái sử dụng mã và quản lý dễ dàng

- Virtual DOM (DOM Ảo): ReactJS sử dụng Virtual DOM để tối ưu hóa hiệu suất Thay vì cập nhật toàn bộ DOM mỗi khi có thay đổi, React chỉ cập nhật những phần cần thiết, giảm bớt tải lên trình duyệt và tăng tốc độ render

Trang 30

30

- JSX (JavaScript XML): JSX là một ngôn ngữ mở rộng của JavaScript, giúp việc viết mã HTML trong JavaScript trở nên dễ đọc và dễ bảo trì hơn JSX cung cấp sự tự động hóa quá trình tạo các thành phần UI - Unidirectional Data Flow (Luồng Dữ Liệu Một Chiều): Dữ liệu trong

ReactJS di chuyển một chiều từ component cha đến component con, giúp dễ dàng theo dõi và duy trì trạng thái ứng dụng

3.3.2 Lý do sử dụng:

- Hiệu Suất Cao: Nhờ vào Virtual DOM và cập nhật thông minh, ReactJS cung cấp hiệu suất cao, giúp ứng dụng hoạt động mượt mà và nhanh chóng

- Tính Tương Thích: ReactJS có khả năng tích hợp dễ dàng với các thư viện và frameworks khác, làm cho quá trình phát triển và bảo trì trở nên linh hoạt

- Cộng Đồng Lớn: ReactJS có một cộng đồng lớn và tích cực, điều này đồng nghĩa với việc có nhiều tài nguyên, thư viện và hỗ trợ từ cộng đồng

- Component Reusability (Tính Tái Sử Dụng Component): Có thể sử dụng lại các component đã tạo, giảm độ phức tạp của mã nguồn và tăng tốc độ phát triển

- Ecosystem Mạnh Mẽ: ReactJS được hỗ trợ bởi một hệ sinh thái mạnh mẽ với nhiều công cụ và thư viện bổ sung như Redux, React Router, và Material-UI

Trang 31

- Node.js ra mắt vào năm 2009, bởi Ryan Dahl

- Phần core của Node.js hầu hết được viết bằng C++ Chính vì thế mà tốc độ xử lý và hiệu năng khá cao

- Bên cạnh đó, Node.js còn tạo ra ứng dụng có tốc độ xử lý nhanh với thời gian thực

- Node.js cũng được áp dụng để tạo các sản phẩm có lượng truy cập lớn, mở rộng nhanh và đổi mới công nghệ hoặc tạo dự án Startup tiết kiệm thời gian nhất

- Những điểm mạnh của NodeJS bao gồm:

- Bất đồng bộ và phát sinh sự kiện (Non-blocking and Event Driven): Tất các các APIs của thư viện Node.js đều bất đồng bộ (non-blocking), vì thế không cần đợi một API trả về dữ liệu Server chuyển sang một API khác sau khi gọi nó và 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

Trang 32

32

- Tốc độ nhanh: Phần core phía dưới được viết gần như toàn bộ bằng C++ kết hợp Chrome V8 Engine nên tốc độ xử lý công việc của Node.js cực nhanh, nhưng vẫn đảm bảo được tính chuẩn xác - Đơn giản – Hiệu năng cao: Node.js sử dụng một mô hình luồng

đơn luồng (single thread) và các sự kiện lặp (event-loop) Cơ chế sự kiện cho phép phía Server trả về phản hồi theo non-blocking, đồ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

Hình 11: Logo PostgreSQL

Trang 33

33

- PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS), được phát triển từ dự án POSTGRES tại Đại học California, Berkeley

- PostgreSQL không chỉ là một hệ quản trị cơ sở dữ liệu mà còn là một hệ quản trị đối tượng, hỗ trợ một loạt các tính năng mạnh mẽ và linh hoạt, giúp người sử dụng xây dựng và duy trì các ứng dụng có hiệu suất cao và ổn định

- PostgreSQL cũng hỗ trợ nhiều loại dữ liệu và phương pháp truy vấn phức tạp, giúp cho việc lưu trữ và truy xuất dữ liệu trở nên dễ dàng hơn

- Những điểm mạnh của PostgreSQL bao gồm:

- Mã Nguồn Mở và Miễn Phí: PostgreSQL là một dự án mã nguồn mở, cho phép người dùng tự do sử dụng, sửa đổi, và phân phối mã nguồn mà không mất phí

- Khả Năng Mở Rộng: Hỗ trợ khả năng mở rộng dọc và ngang, cho phép mở rộng cấp dữ liệu và cấp server mà không ảnh hưởng đến hiệu suất

- Tiêu Chuẩn SQL Đầy Đủ: PostgreSQL tuân theo nhiều chuẩn SQL, giúp chuyển đổi giữa các hệ thống quản trị cơ sở dữ liệu một cách dễ dàng và giảm thiểu sự phụ thuộc vào các ngôn ngữ hay tính năng đặc biệt

- Hỗ Trợ Đối Tượng: PostgreSQL không chỉ lưu trữ dữ liệu theo kiểu quan hệ mà còn hỗ trợ dữ liệu đối tượng, giúp giảm sự phức tạp của cấu trúc dữ liệu

- Tính Năng ACID-Compliant: Đảm bảo tính nhất quán và an toàn của dữ liệu thông qua việc tuân thủ ACID (Atomicity, Consistency, Isolation, Durability)

- Bảo Mật Mạnh Mẽ: Cung cấp các tính năng bảo mật cao như quản lý người dùng, kiểm soát quyền truy cập, và mã hóa dữ liệu

Trang 34

34

- Cộng Đồng Phát Triển Lớn: Sự đóng góp của cộng đồng lớn giúp PostgreSQL ngày càng phát triển và cập nhật liên tục với các tính năng mới

3.5.2 Lý do sử dụng

- PostgreSQL hỗ trợ nhiều loại kiểu dữ liệu, bao gồm kiểu nguyên thủy (số nguyên, số thực, chuỗi, boolean), kiểu cấu trúc (ngày/giờ, mảng, phạm vi, UUID), kiểu tài liệu (JSON/JSONB, XML, key-value), kiểu hình học (điểm, đường thẳng, vòng tròn, đa giác) và kiểu tùy chỉnh Vì thế hệ quản trị cơ sở dữ liệu sẽ tương thích tốt với lại server được xây dựng bằng JavaScript, từ đó nâng cao tốc độ phát triển

- MongoDB dễ dàng cài đặt, tương thích mọi nền tảng, từ đó dễ dàng triển khai MongoDB trên bất kỳ hệ điều hành nào như Linux, Windows và MacOS

- Cung cấp nhiều loại dữ liệu và hỗ trợ nhiều kiểu lưu trữ, từ dữ liệu đơn giản đến đối tượng phức tạp

- MongoDB được thiết kế để đảm bảo hiệu suất cao và ổn định, làm cho nó trở thành lựa chọn lý tưởng cho các ứng dụng có yêu cầu về khả năng xử lý cao

3.6 Socket.IO

Hình 12: Logo Socket.IO

Trang 35

35

3.6.1 Giới thiệu

- Khi làm việc về vấn đề giao tiếp giữa Server và Client, đặc biệt là vấn đề Server, Client có thể nhận biết sự thay đổi của đối phương, những nhà phát triển thường sử dụng rất nhiều phương pháp mà có thể kể đến như: AJAX, HTML5 server-sent events, Tuy nhiên các phương pháp này đều tồn tại nhiều nhược điểm như chậm, tốn tài nguyên Do đó, Socket.IO đã được phát triển để giải quyết vấn đề này, đặc biệt là các ứng dụng có yêu cầu tính thời gian thực

- Socket.IO là 1 module trong NodeJS, được phát triển vào năm 2010 Mục đích lớn nhất để Socket.io ra đời là việc giao tiếp ngay tức khắc giữa Client và Server

3.6.2 Lý do sử dụng

- Đồ án của nhóm là việc xây dựng phần mềm Chat nên yêu cầu quan trọng nhất của phần mềm là Real-time, do đó Socket.IO là lựa chọn hợp lý vì đây là công nghệ mã nguồn mở do đó sẽ không bị các vấn đề liên quan đến chi phí như các bên cung cấp ở bên thứ 3 như Firebase,

- Bảo mật cao: SocketIO được xây dựng dựa trên Engine.IO, nó sẽ khởi chạy phương thức Long-polling đầu tiên, sau đó sẽ tới những phương thức kết nối tốt hơn Bên cạnh việc thiết lập chặt chẽ đó, Socket.IO còn tự tạo các kết nối bảo mật như: Proxy,

Trang 36

36

Chương 4 XÁC ĐỊNH VÀ PHÂN TÍCH YÊU CẦU

4.1 Khảo sát:

Khảo sát được thực hiện nhằm mục đích:

• Hiểu rõ nhu cầu và mong muốn của các bên tham gia hoạt động cho vay ngang hàng (P2P lending), bao gồm người cho vay, người đi vay và các tổ chức trung gian

• Xác định các vấn đề, thách thức và cơ hội trong việc quản lý tài chính cho giải pháp P2P lending

• Thu thập thông tin và dữ liệu cần thiết để xây dựng hệ thống hỗ trợ quản lý tài chính cho P2P lending

Cụ thể, khảo sát sẽ tập trung vào các nội dung sau: • Nhu cầu và mong muốn của người cho vay:

o Thông tin và dữ liệu cần thiết để quản lý rủi ro

4.2 Phân tích yêu cầu 4.2.1 Yêu cầu chức năng

4.2.1.1 Yêu cầu của người dùng là người sử dụng ứng dụng:

- Quản lý thông tin cá nhân: người dùng có thể quản lý những thông tin cá nhân

Trang 37

37

mà hệ thống đang lưu trữ như họ tên, số điện thoại, email, địa chỉ,… bên cạnh đó hệ thống cũng cần cung cấp giao diện thân thiện để người dùng có thể thay đổi mật khẩu dễ dàng và bảo mật

- Tìm kiếm bài đăng: người dùng có thể tìm kiếm bài đăng vay cho vay bằng nhiều tiêu chí như lọc theo lãi suất, kỳ hạn, số tiền cho vay,…

- Đăng tin: người dùng có thể đăng tin tìm kiếm các khoản vay hoặc cho vay

- Gửi yêu cầu: Người dung có thể gửi yêu cầu vay tiền đến người khác

- Quản lý yêu cầu vay tiền: Người dung có thể chấp nhận hoặc từ chối các yêu cầu vay tiền của người khác

- Xem các hợp đồng vay đã tạo: Người dùng có thể xem các hợp đồng vay đã tạo như thông tin các bên, số tiền vay, lãi suất, kỳ hạn,…

- Nhắn tin: người dùng có thể sử dụng chức năng nhắn tin để trao đổi thông tin với nhau,

- Tố cáo: người dùng có thể gửi báo các bài đăng hoặc người dùng vi phạm

- Xem tin tức: Người dùng có thể xem các tin tức blog do người quản trị đăng để cập nhật thông tin

4.2.1.2 Yêu cầu của người dùng là người quản trị hệ thống:

- Quản lý bài đăng: người quản trị có thể duyệt bài đăng, xoá hoặc từ chối bài đăng vi phạm

- Quản lý người dùng: người quản trị có thể xem thông tin người dùng hiện tại

Trang 38

38

- Quản lý blog: Người quản trị có thể thêm hoặc xoá các blog

4.2.2 Yêu cầu phi chức năng 4.2.2.1 Website admin

• Yêu cầu về giao diện:

o Sử dụng tiếng Việt, giao diện đẹp và thân thiện với người sử dụng, hạn chế tối đa thao tác của người dùng

o Các thành phần giao diện được sắp xếp hợp lý, dễ nhìn, dễ thao tác o Sử dụng màu sắc, phông chữ phù hợp, dễ gây thiện cảm cho người

dùng

• Yêu cầu về hiệu năng:

o Hệ thống chạy ổn định, không bị lỗi, hoạt động tốt trên các trình duyệt thông dụng hiện nay (Mozilla FireFox, Google Chrome, Cốc Cốc, Opera, )

o Hệ thống có khả năng chịu tải cao, đáp ứng được lượng truy cập lớn o Hệ thống có khả năng mở rộng, đáp ứng được nhu cầu phát triển của

ứng dụng

4.2.2.2 App cho người dùng

• Yêu cầu về giao diện:

o Sử dụng tiếng Việt, giao diện đẹp và thân thiện với người sử dụng, hạn chế tối đa thao tác của người dùng

o Các thành phần giao diện được sắp xếp hợp lý, dễ nhìn, dễ thao tác o Sử dụng màu sắc, phông chữ phù hợp, dễ gây thiện cảm cho người

dùng

o Hệ thống có tính năng hỗ trợ người dùng, hướng dẫn sử dụng, giúp người dùng dễ dàng sử dụng hệ thống

• Yêu cầu về hiệu năng:

o Hệ thống chạy ổn định, không bị lỗi, hoạt động tốt trên các thiết bị di động phổ biến hiện nay (iPhone, iPad, Android, )

Trang 39

39

o Hệ thống có khả năng chịu tải cao, đáp ứng được lượng truy cập lớn o Hệ thống có khả năng mở rộng, đáp ứng được nhu cầu phát triển của

ứng dụng

Ngày đăng: 15/05/2024, 09:29

Tài liệu cùng người dùng

Tài liệu liên quan