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

đồ á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

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 (4.52 MB, 104 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN </b>

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

<b>GIẢNG VIÊN HƯỚNG DẪN NGUYỄN TRỊNH ĐƠNG </b>

<b>TP. HỒ CHÍ MINH, 2023 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN </b>

<b>KHOA CÔNG NGHỆ PHẦN MỀM </b>

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

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN </b>

Đồ á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ể hồ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ể hồ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.

<b>TP.HCM, ngày 23 tháng 12 năm 2023 </b>

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

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>MỤC LỤC </b>

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. <i>Mơ hình P2P lending truyền thống ... 14</i>

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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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 tốn ZaloPay ... 95

6.2.26. Màn hình Kết quả thanh tốn ... 96

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>DANH MỤC HÌNH </b>

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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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 tốn ZaloPay ... 95

Hình 45: Màn hình Kết quả thanh tố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

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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 q 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

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

13

ra một môi trường vay mượn trực tuyến minh bạch, an tồ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.

<b>1.2. Đối tượng nghiên cứu </b>

Đố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.

<b>1.3. Phương pháp nghiên cứu </b>

• 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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

14

<b>Chương 2. CƠ SỞ LÝ THUYẾT </b>

<b>2.1. Tổng quan về mơ hình cho vay P2P lending: </b>

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. Tồ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:

<i><b>2.1.1. Mơ hình P2P lending truyền thống </b></i>

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.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

15

<i><small>Hình 1: Mơ hình P2P Lending truyền thống </small></i>

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ể hố theo hình 2.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

16

<i><small>Hình 2: Mơ hình P2P lending hợp tác với ngân hàng </small></i>

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.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

17

<i><small>Hình 3: Mơ hình P2P Lending cam kết về lợi nhuận </small></i>

<b>2.2. Mơ hình hoạt động P2P Lending tại Việt Nam: </b>

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

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<i><small>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 </small></i>

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ử...

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

19

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

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

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 ngun tắc có hồn trả bằng nghiệp vụ cho vay, chiết khấu, cho th tài chính, bao thanh tố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 ngun tắc có hồ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 ln đị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

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="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 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

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>2.4. Đánh giá vai trị và rủi ro trong hoạt động P2P Lending: </b>

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

<i>- 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 </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.

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

đầ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).

<i>- Thứ ba, đối với công ty P2P Lending, đây là một lĩnh vực hoạt động mới, </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.

<i>- 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 </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ỏ

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="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.

<b>3.2. Bloc - State Management. 3.2.1. Giới thiệu về Bloc </b>

<i><small>Hình 7: Logo Bloc </small></i>

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à

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="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.

<b>3.2.2. Kiến trúc. </b>

<i><small>Hình 8: Ví dụ về mơ hình ba lớp của BLoC </small></i>

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

● Feature layer.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="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 q 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.

<b>3.3.2. Lý do sử dụng: </b>

- 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.

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="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.

<i><small>Hình 11: Logo PostgreSQL </small></i>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="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.

<b>3.5.2. Lý do sử dụng </b>

- 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.

<b>3.6. Socket.IO </b>

<i><small>Hình 12: Logo Socket.IO </small></i>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

35

<b>3.6.1. Giới thiệu </b>

- 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ó 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.

<b>3.6.2. Lý do sử dụng </b>

- Đồ á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,...

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

36

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

<b>4.1. Khảo sát: </b>

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

<b>4.2. Phân tích yêu cầu 4.2.1. Yêu cầu chức năng </b>

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

- 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

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="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.

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

- 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

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

38

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

<b>4.2.2. Yêu cầu phi chức năng 4.2.2.1. Website admin </b>

• 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.

<b>4.2.2.2. App cho người dùng </b>

• 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,...).

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="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.

</div>

×