1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng

108 2 0

Đ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

Thông tin cơ bản

Tiêu đề Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Tác giả Lê Phi Long, Nguyễn Đình Đức Thịnh
Người hướng dẫn Nguyễn Tấn Toàn
Trường học Đại học Quốc gia Tp. Hồ Chí Minh
Chuyên ngành Công nghệ phần mềm
Thể loại báo cáo đồ án
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 108
Dung lượng 15,07 MB

Cấu trúc

  • 1.1.1. Các hình thức gây vốn của doanh nghiệp (13)
  • 1.1.2. Hình thức gây quỹ cộng đồng (14)
  • 1.1.3. Một số thiếu sót của các nền tảng gây vốn cộng đồng hiện nay (15)
  • 1.2. Mục đích đề tài............................................................................................................ 1.3. Đối tượng và phạm vi nghiên cứu.................................................................................. 1.3.1. Đối tượng sử dụng (16)
    • 1.3.2. Phạm vi nghiên cứu (19)
  • 2. TỔNG QUAN.......................................................................................................... 1. Phân tích các trang web gây vốn cộng đồng hiện nay...................................................... 1.1. Kickstarter.com (19)
    • 2.1.2. RocketHub.com (21)
    • 2.1.3. Gofundme.com.........................................................................................12 2.2. Phân tích những vấn đề hạn chế hiện nay của các trang web gây vốn cộng đồng (22)
    • 2.2.1. Ưu điểm (22)
    • 2.2.2. Nhược điểm (23)
    • 2.3. Những yêu cầu cần giải quyết của trang web đồ án hướng đến........................................ 2.4. Tổng quan về các yêu cầu của hệ thống......................................................................... 2.4.2. Yêu cầu phi chức năng (23)
      • 2.4.2.1. Yêu cầu giao diện (25)
      • 2.4.2.2. Yêu cầu về độ tin cậy, bảo mật (25)
      • 2.4.2.3. Yêu cầu về độ tương thích (25)
      • 2.4.2.4. Yêu cầu về khả năng mở rộng (25)
      • 2.4.2.5. Yêu cầu về tính hiệu quả (26)
    • 2.5. Phương pháp phát triển............................................................................................... 3. NGHIÊN CỨU CƠ SỞ LÝ THUYẾT................................................................... 3.1. Quy trình phát triển phần mềm Scrum.......................................................................... 3.1.1. Tổng quan về Scrum (26)
      • 3.1.2. Ưu điểm và nhược điểm của Scrum (29)
        • 3.1.2.1. Ưu điểm (29)
        • 3.1.2.2. Nhược điểm (29)
      • 3.1.3. Lý cho chọn quy trình phát triển phần mềm Scrum (29)
    • 3.2. Phương pháp phân tích thiết kế hướng đối tượng............................................................ 1. Cách tiếp cận (30)
      • 3.2.2. Ưu điểm và nhược điểm của phương pháp phân tích thiết kế hướng đối tượng 22 1. Ưu điểm (31)
        • 3.2.2.2. Nhược điểm (31)
      • 3.2.3. Lý do chọn phương pháp phân tích thiết kế hướng đối tượng (32)
    • 3.3. Các nền tảng công nghệ sử dụng.................................................................................. 1. ReactJS (32)
      • 3.3.2. NodeJS (34)
      • 3.3.4. Stripe (37)
      • 3.3.5. JSON Web Tokens (38)
      • 3.3.6. MongoDB (40)
      • 3.3.7. Styled-Component (41)
      • 3.3.8. React-Router (43)
      • 3.3.9. Socket.IO (45)
    • 3.4. Chiến lược “Thiên chúa 3 ngôi” và phương pháp SEO................................................... 1. Xây dựng chiến lược phát triển “Thiên chúa 3 ngôi” cho Happy Fund (47)
      • 3.4.1.1. Chi phí hoa hồng luôn rẻ (47)
      • 3.4.1.2. Phản hồi nhanh chóng (48)
      • 3.4.1.3. FulFill By Happy Fund (FBHF) (48)
      • 3.4.2. Phương pháp SEO (49)
  • 4. TRÌNH BÀY KẾT QUẢ......................................................................................... 1. Xây dựng hệ thống..................................................................................................... 1.1. Kiến trúc hệ thống MVC (50)
    • 4.1.2. Mô tả các thành phần trong hệ thống (52)
      • 4.1.2.1. Models (52)
      • 4.1.2.2. Views (52)
      • 4.1.2.3. Controller (52)
      • 4.1.2.4. Thành phần tối ưu hóa SEO (53)
    • 4.2. Đặc tả hệ thống.......................................................................................................... 1. Sơ đồ Use-case (54)
      • 4.2.2. Sơ đồ Activity (54)
        • 4.2.2.1. Sơ đồ Activity cho Use-case Đăng nhập (54)
        • 4.2.2.2. Sơ đồ Activity cho Use-case Quản lý dự án (55)
        • 4.2.2.3. Sơ đồ Activity cho Use-case Quản lý thanh toán (57)
        • 4.2.2.4. Sơ đồ Activity cho Use-case Quản lý người dùng (58)
        • 4.2.2.5. Sơ đồ Activity cho Use-case Quản lý liên hệ (59)
        • 4.2.2.6. Sơ đồ Activity cho Use-case Đăng kí (60)
        • 4.2.2.7. Sơ đồ Activity cho Use-case Xác thực thông tin (60)
        • 4.2.2.8. Sơ đồ Activity cho Use-case Quản lý dự án cá nhân (61)
        • 4.2.2.9. Sơ đồ Activity cho Use-case Xem dự án (63)
        • 4.2.2.10. Sơ đồ Activity cho Use-case Đánh giá và bình luận (64)
        • 4.2.2.11. Sơ đồ Activity cho Use-case Ủng hộ dự án (64)
      • 4.2.3. Sơ đồ Sequence (65)
        • 4.2.3.1. Sơ đồ Sequence cho Use-case Đăng nhập (65)
        • 4.2.3.2. Sơ đồ Sequence cho Use-case Quản lý dự án (66)
        • 4.2.3.3. Sơ đồ Sequence cho Use-case Quản lý thanh toán (68)
        • 4.2.3.4. Sơ đồ Sequence cho Use-case Quản lý người dùng (68)
        • 4.2.3.5. Sơ đồ Sequence cho Use-case Quản lý liên hệ (70)
        • 4.2.3.6. Sơ đồ Sequence cho Use-case Đăng kí (70)
        • 4.2.3.7. Sơ đồ Sequence cho Use-case Xác thực thông tin (71)
        • 4.2.3.8. Sơ đồ Sequence cho Use-case Quản lý dự án cá nhân (72)
        • 4.2.3.9. Sơ đồ Sequence cho Use-case Xem dự án (74)
        • 4.2.3.10. Sơ đồ Sequence cho Use-case Đánh giá và bình luận (74)
        • 4.2.3.11. Sơ đồ Sequence cho Use-case Ủng hộ dự án (75)
      • 4.2.4. Sơ đồ Class (76)
        • 4.2.4.1. Sơ đồ Class hoàn chỉnh (76)
        • 4.2.4.2. Mô tả các thành phần có trong sơ đồ (77)
        • 4.2.4.3. Mô tả chi tiết các thành phần có trong sơ đồ (78)
    • 4.3. Thiết kế hệ thống........................................................................................................ 1. Sơ đồ màn hình (81)
      • 4.3.2. Sơ đồ thiết kế chi tiết từng màn hình (84)

Nội dung

Các hình thức gây vốn của doanh nghiệp

Sự phát triển của doanh nghiệp hiện nay đóng góp quan trọng vào sự phát triển xã hội Ngoài việc tạo ra việc làm và nâng cao thu nhập, doanh nghiệp cũng đầu tư trong cộng đồng, thúc đẩy sáng tạo và công nghệ, thực hiện trách nhiệm xã hội và tạo ra giá trị bền vững Điều này góp phần xây dựng một xã hội phát triển và bền vững trong tương lai.

Trong quá trình tạo dựng và phát triển doanh nghiệp cũng như các dự án, điều quan trọng không thể thiếu đó chính là nguồn vốn Hiện nay, các hình thức gây vốn của doanh nghiệp đã phát triển đa dạng, bao gồm những phương pháp sau đây:

- Gây vốn truyền thống: bao gồm gây vốn từ nguồn vốn riêng (sử dụng tài sản và tài nguyên của mình để gây vốn cho các hoạt động kinh doanh) và vay vốn từ ngân hàng (doanh nghiệp mượn tiền từ các ngân hàng hoặc tổ chức tín dụng để đầu tư hoặc mở rộng kinh doanh).

- Gây vốn từ nhà đầu tư: bao gồm gây vốn từ nhà đầu tư thiên thần (thu hút sự quan tâm và đầu tư từ những người cá nhân giàu có có khả năng tài chính và kinh nghiệm trong lĩnh vực kinh doanh) và gây vốn từ công ty môi giới đầu tư (investment firms) (hợp tác với các công ty môi giới đầu tư để tìm kiếm nhà đầu tư và huy động vốn từ các quỹ đầu tư)

- Gây vốn cộng đồng: bao gồm gây vốn từ quỹ đầu tư công (tham gia các dự án công cộng và góp vốn cho các công trình cơ sở hạ tầng, như cầu đường, nhà máy điện, công viên, ); gây vốn từ cổ đông (phát hành cổ phiếu hoặc chứng chỉ quyền chọn cổ phiếu để mời cổ đông tham gia góp vốn) và gây quỹ cộng đồng (tạo ra các chương trình gây quỹ thông qua trang web, ứng dụng di động hoặc các sự kiện để thu hút sự ủng hộ tài chính từ cộng đồng)

Hình thức gây quỹ cộng đồng

Gây quỹ cộng đồng là quá trình tạo ra các chương trình gây quỹ thông qua các nền tảng trực tuyến như trang web, ứng dụng di động hoặc tổ chức các sự kiện để thu hút sự ủng hộ tài chính từ cộng đồng Mục tiêu của gây quỹ cộng đồng là tạo ra nguồn tài trợ để hỗ trợ các dự án, hoạt động xã hội, hoặc giải quyết các vấn đề quan trọng trong xã hội.

Gây quỹ cộng đồng bộc lộ nên nhiều ưu điểm đáng kể, có thể kể đến:

- Sự tương tác và sự kết nối với cộng đồng: Gây quỹ cộng đồng tạo ra một môi trường tương tác mạnh mẽ giữa doanh nghiệp và cộng đồng Nó cho phép doanh nghiệp giao tiếp trực tiếp với người ủng hộ, tạo ra sự kết nối, sự tin tưởng và sự cam kết tăng cường giữa hai bên.

- Tăng cường lòng trung thành và sự ủng hộ: Gây quỹ cộng đồng tạo ra một môi trường trong đó cộng đồng có thể đóng góp và ủng hộ một mục tiêu chung Sự tham gia và đóng góp của cộng đồng thường đi kèm với một cảm giác sở hữu và lòng trung thành với dự án, do đó khả năng thành công của dự án có thể tăng lên.

- Tiếp cận đối tượng rộng: Gây quỹ cộng đồng cho phép doanh nghiệp tiếp cận một đối tượng người ủng hộ rộng lớn Với việc sử dụng các nền tảng kỹ thuật số và các phương tiện truyền thông xã hội, doanh nghiệp có thể thu hút được sự quan tâm từ nhiều người trong cộng đồng, không chỉ giới hạn trong phạm vi địa lý.

- Tạo ra tâm điểm chung: Gây quỹ cộng đồng thường tập trung vào mục tiêu chung hoặc vấn đề mang tính xã hội, và doanh nghiệp có thể tạo ra sự nhận thức và sự quan tâm xung quanh mục tiêu đó Điều này có thể thu hút sự chú ý của cộng đồng rộng hơn và tạo ra một tâm điểm chung để kết nối và hỗ trợ.

- Mở rộng tiềm năng quyên góp: Gây quỹ cộng đồng cho phép người ủng hộ có thể đóng góp theo khả năng tài chính của họ Ngay cả những khoản quyên góp nhỏ cũng có thể tích lũy thành số lượng đáng kể, khiến cho quyên góp trở nên phổ biến và đa dạng hơn.

Một số thiếu sót của các nền tảng gây vốn cộng đồng hiện nay

Các nền tảng gây quỹ cộng đồng cung cấp một phương thức thuận tiện và trực tuyến để người tổ chức hoặc cá nhân tạo ra các chiến dịch gây quỹ, chia sẻ thông tin về mục tiêu và mục đích của dự án, và kêu gọi cộng đồng tham gia đóng góp tài chính Người ủng hộ có thể đóng góp bằng cách quyên tiền mặt, tài trợ, hoặc sử dụng các phương thức thanh toán trực tuyến để góp phần vào dự án.

Hiện nay các nền tảng gây vốn cộng đồng đang bộc lộ một số khuyết điểm, có thể kể đến như:

- Rủi ro về độ tin cậy: Một số trang web gây quỹ cộng đồng không đảm bảo tính đáng tin cậy và minh bạch Có thể xảy ra tình trạng lạm dụng hoặc lạm quyền sử dụng quỹ gây quỹ và việc không rõ ràng về cách sử dụng tiền quyên góp có thể làm mất lòng tin của người ủng hộ.

- Chi phí giao dịch và phí hoạt động: Một số trang web gây quỹ cộng đồng có thể tính phí giao dịch hoặc phí hoạt động, khiến cho một phần tiền quyên góp không được chuyển đến mục tiêu cuối cùng Điều này có thể giới hạn số tiền thực sự đến được cho dự án hoặc tổ chức từ quỹ gây quỹ.

- Sự cạnh tranh và sự chú ý phân tán: Với số lượng trang web gây quỹ cộng đồng ngày càng tăng, có một sự cạnh tranh lớn để thu hút sự quan tâm và quyên góp từ cộng đồng Điều này có thể làm giảm khả năng tiếp cận đối tượng ủng hộ và tạo ra sự chú ý phân tán cho các dự án khác nhau.

- Hạn chế địa lý: Một số trang web gây quỹ cộng đồng có giới hạn địa lý, giới hạn quyền truy cập và quyên góp chỉ dành cho một số quốc gia hoặc khu vực nhất định Điều này có thể làm giảm tiềm năng của trang web trong việc thu hút sự ủng hộ từ cộng đồng toàn cầu.

- Sự đa dạng của dự án: Một số trang web gây quỹ cộng đồng có xu hướng tập trung vào một số lĩnh vực hoặc loại dự án nhất định Điều này có thể làm giới hạn sự lựa chọn của người ủng hộ và không đáp ứng được nhu cầu đa dạng của cộng đồng.

Mục đích đề tài 1.3 Đối tượng và phạm vi nghiên cứu 1.3.1 Đối tượng sử dụng

Phạm vi nghiên cứu

Phạm vi nghiên cứu của dự án website gây quỹ cộng đồng tập trung vào việc phát triển và cung cấp một nền tảng trực tuyến hiệu quả và bền vững để tạo cơ hội gây quỹ cho các doanh nghiệp, chủ dự án và người sáng tạo, đồng thời thu hút và tạo mối quan hệ với người ủng hộ Nghiên cứu cũng có thể xoay quanh việc khắc phục các điểm yếu của các trang web gây quỹ cộng đồng trước đây và tăng cường giá trị bền vững của các dự án gây quỹ cộng đồng.

TỔNG QUAN 1 Phân tích các trang web gây vốn cộng đồng hiện nay 1.1 Kickstarter.com

RocketHub.com

Nếu chủ dự án muốn bảo đảm tài trợ cho một mục đích từ thiện hoặc hướng đến cộng đồng hoặc muốn cam kết hỗ trợ tài chính cho các sáng kiến như vậy, không có nơi nào tốt hơn để bắt đầu hơn RocketHub.com.

Người dùng đăng tải dự án của mình bằng các phương tiện truyền thông xã hội khác nhau được cung cấp trên website Trong đó ghi rõ chi phí vốn cần có, thời gian cần thiết để gọi vốn và công bố phần thưởng cho người quyên góp vốn sẽ nhận được (hàng hóa hoặc dịch vụ) khi đóng góp vốn thành công để phát triển dự án. Đối tượng phục vụ: Những dự án có tác động tích cực đến các mặt xã hội, nghệ thuật, khoa học và kinh doanh.

Nếu kêu gọi vốn thành công, người dùng phải trả 4% phí hoa hồng và 4% phí duy trì thẻ tín dụng Ngược lại, người dùng phải trả 8% phí hoa hồng và 4% phí duy trì thẻ tín dụng.

Hình 2.2 Website gây vốn cộng đồng RocketHub

Gofundme.com .12 2.2 Phân tích những vấn đề hạn chế hiện nay của các trang web gây vốn cộng đồng

Với GoFundMe, người dùng đăng ký, tạo website gọi vốn cộng đồng, chia sẻ hình ảnh và video, sau đó chia sẻ link cho bạn bè và gia đình.

GoFundMe khuyến khích người kêu gọi vốn đăng các tin nhắn update và ghi chú cảm ơn đến những người ủng hộ thành công cho dự án của họ trên chính website GoFundMe.

Với chi phí 5% trên mỗi lượt quyên góp, bất cứ ai có nhu cầu kêu gọi quyên góp vốn đều có thể tham gia.

Hình 2.3 Website gây vốn cộng đồng Gofundme.com

2.2 Phân tích những vấn đề hạn chế hiện nay của các trang web gây vốn cộng đồng

Ưu điểm

- Tiếp cận vốn dễ dàng: Các trang web gây vốn cộng đồng hiện nay tạo được một vị thế và chỗ đứng tốt trên thị trường, thu hút nhiều nhà đầu tư và chủ dự án.Điều này tạo một hệ sinh thái tốt trong hoạt động kêu gọi vốn Do đó, các chủ dự án có thể tiếp cận vốn dễ dàng, người đầu tư cũng có quyền chọn dự án mà mình cho là tiềm năng với một thị trường dự án rộng rãi.

- Quảng cáo rộng rãi: Các trang web gây vốn cộng đồng hiện nay hỗ trợ các dịch vụ quảng cáo trực tuyến cho phép người chủ dự án có thể chạm tới cộng đồng và các đối tượng mục tiêu một cách tốt nhất.

- Có thị phần lớn: Các trang web gây vốn cộng đồng đang có thị phần lớn trong thị trường, có vị thế, tạo sự cạnh tranh khốc liệt giữa các trang web Điều này khuyến khích các nhà sáng tạo nội dung ngày càng hoàn thiện website hơn, trải nghiệm người dùng ngày càng hiệu quả hơn.

Nhược điểm

- Cạnh tranh khốc liệt: Sự đa dạng về nền tảng thu hút vốn cộng đồng hiện nay đã tạo nên sự canh tranh khốc liệt về thị phần Điều này làm cho các trang web trở nên mờ nhạt nếu như không có các tính năng tốt, mới lạ hay trải nghiệm người dùng kém.

- Chi phí giao dịch và phí hoạt động cao: Hiện nay các trang web thu phí từ

15 – 20% cho mỗi dự án và 5 – 10% cho mỗi lần giao dịch, con số này là rất cao trong việc gọi vốn Do đó, số tiền thực sự phục vụ cho dự án không cao

- Hạn chế địa lý: Một số trang web gây quỹ cộng đồng có giới hạn địa lý, giới hạn quyền truy cập và quyên góp chỉ dành cho một số quốc gia hoặc khu vực nhất định Điều này có thể làm giảm tiềm năng của trang web trong việc thu hút sự ủng hộ từ cộng đồng toàn cầu.

- Sự đa dạng của dự án: Một số trang web gây quỹ cộng đồng có xu hướng tập trung vào một số lĩnh vực hoặc loại dự án nhất định Điều này có thể làm giới hạn sự lựa chọn của người ủng hộ và không đáp ứng được nhu cầu đa dạng của cộng đồng.

Những yêu cầu cần giải quyết của trang web đồ án hướng đến 2.4 Tổng quan về các yêu cầu của hệ thống 2.4.2 Yêu cầu phi chức năng

- Mang lại một trải nghiệm khác biệt cho người dùng: trải nghiệm khác biệt về giao diện và sự đơn giản hóa trong các thao tác, không rườm rà trong khâu thanh toán, hỗ trợ các tag phân chia và các tính năng quản trị tốt, cho người dùng một trải nghiệm tốt nhất

- Cho phép đa dạng hóa dự án: Sự phân chia các tag trong dự án cho phép trang web đa dạng trong các lĩnh vực dự án từ khoa học, công nghệ, sinh học, chăm sóc sức khỏe, hạnh phúc đến giải trí, giáo dục,

- Mở rộng về địa lý: Sử dụng phương thức thanh toán điện tử quốc tế như Paypal, Credit Card, Master Card, thu hút cả nguồn vốn đầu tư trong nước và đầu tư nước ngoài, kêu gọi nhiều hơn về nguồn vốn cho nhà đầu tư

- Chi phí giao dịch thấp: thu 3% cho mỗi dự án và 2% trên mỗi giao dịch để duy trì trang web, con số này là khá thấp và không ảnh hưởng đến nguồn vốn của nhà đầu tư và số tiền nhận được của chủ dự án.

- Tối ưu hóa trang web bằng SEO: điều này giúp dễ dàng hơn trong khâu tìm kiếm và sử dụng trang web của khách vãng lai, từ đó tạo sự tin tưởng và tin cậy cho người dùng có thể sử dụng hệ thống

- Xây dựng một hệ thống chính sách hỗ trợ người dùng và các dự án: chính sách này sẽ tạo sự yên tâm và giải quyết nhanh chóng các vấn đề của người dùng, từ đó tăng trải nghiệm và số lượng truy cập của trang web theo hiệu ứng Snow ball effect.

2.4 Tổng quan về các yêu cầu của hệ thống

2.4.1 Yêu cầu về chức năng

- Hệ thống có khả năng phân quyền người dùng (Admin, người dùng vãng lai, người dùng chưa xác thực, người dùng đã xác thực) với các quyền truy cập và quyền thực thi khác nhau

- Hệ thống quản lý được danh sách các dự án, cho phép người dùng xem,

- Hệ thống hỗ trợ dịch vụ thanh toán trực tuyến, đồng thời cho phép thống kê, sao lưu và công khai minh bạch về tiền tệ trên hệ thống

- Hệ thống cho phép người dùng tương tác trực tiếp với nhau thông qua các cửa sổ chat, hệ thống bình luận,

- Hệ thống cho phép thống kê và báo cáo về lưu lượng truy cập, số tiền nhận và cung cấp tính năng hoàn trả tự động khi cần thiết

2.4.2 Yêu cầu phi chức năng

- Giao diện thân thiện, bố cục hợp lý.

- Giao diện thống nhất, đồng bộ, không gây sự bất ngờ cho người sử dụng.

- Màu sắc, vị trí, hiển thị của các control có tính đồng bộ.

2.4.2.2 Yêu cầu về độ tin cậy, bảo mật

- Phân quyền người sử dụng một cách hợp lý.

- Dữ liệu tài khoản người dùng được bảo mật, đặc biệt là các dữ liệu về thẻ thanh toán, số dư và các kênh thanh toán.

2.4.2.3 Yêu cầu về độ tương thích

- Thích hợp sử dụng trên các trình duyệt web như Microsoft Edge, Google Chrome, Cốc cốc, Opera,

- Tương thích với Microsoft Excel từ 2003 trở đi

2.4.2.4 Yêu cầu về khả năng mở rộng

- Dễ dàng nâng cấp khi muốn nâng cao tính năng sẵn có nhờ vào sự hệ thống hóa trong việc xử lý.

- Dễ dàng mở rộng khi có nhu cầu phát triển.

2.4.2.5 Yêu cầu về tính hiệu quả

- Hệ thống quản lý dữ liệu một cách logic.

- Hiệu năng ổn định, tránh gây khó chịu cho người dùng.

Phương pháp phát triển 3 NGHIÊN CỨU CƠ SỞ LÝ THUYẾT 3.1 Quy trình phát triển phần mềm Scrum 3.1.1 Tổng quan về Scrum

- Tiếp cận phát triển website theo hướng đối tượng, sử dụng UML để phân tích thiết kế hệ thống

- Nền tảng: ReactJS Framework, NodeJS, ExpressJS

- Ngôn ngữ: Javascript, HTML, CSS, JSX

- Công cụ vẽ và phân tích yêu cầu: Draw.io

- Công cụ quản lý source code: Github

3 NGHIÊN CỨU CƠ SỞ LÝ THUYẾT

3.1 Quy trình phát triển phần mềm Scrum

Nhịp độ môi trường kinh doanh ngày càng nhanh buộc các công ty phải nhanh chóng thay đổi để đáp ứng với các điều kiện thị trường đang biến động Để có thể duy trì tính cạnh tranh, các sản phẩm cần phải thích ứng với những thay đổi, nhu cầu trên thị trường, cho ra các tính năng mới và bổ sung với tốc độ nhanh Do đó, phần lớn các công ty về phần mềm hiện nay đang chuyển sang mô hình Agile.

Agile là một quy trình có nhiều khung công tác như SCRUM, Kanban,Scrumban,

SCRUM được khởi xướng bởi Ken Swaber vào năm 1995 Nó là một trong các quy trình phát triển Agile vì nó có chứa tất cả các đặc điểm cốt lõi của Agile SCRUM là một nhóm hoạt động, được ví như là một bao gói, trong đó mọi người trong nhóm cùng nhau thực hiện các công việc Nó thực hiện dự án với thời gian và chi phí tối thiểu.

SCRUM là quy trình mạnh và có cấu trúc thể hiện rõ nhất của Agile Người ta nói rằng “SCRUM giống như một người mẹ chồng Mong đợi bạn tuân theo mọi yêu cầu mà nó đã xác định và tuyệt vời trong việc chỉ ra các sai sót ”.

Hình 3.1 Mô hình phát triển phần mềm SCRUM

Có một số bước cụ thể, không thay đổi trong quy trình Scrum Bao gồm:

- Product backlog: Product Backlog là danh sách các chức năng cần được phát triển của sản phẩm Danh sách này do Product Owner quyết định Nó thường xuyên được cập nhật để đáp ứng được nhu cầu thay đổi của khách hàng cũng như các điều kiện của dự án.

- Sprint planning: Như chúng ta đã biết ở trên Sprint là một giai đoạn phát triển có thời gian từ 2-4 tuần Để chuẩn bị cho mỗi Sprint team cần phải họp để xác định những chức năng nào (story) sẽ phát triển trong giai đoạn này (sprint backlog), kết quả đầu ra dự kiến (Goal, kết quả Release), Estimate (ước lượng ai làm việc gì) và thảo luận các giải pháp Tất cả được ghi thành biên bản để có cơ sở thực hiện và Review sau này.

- Backlog refinement/grooming: Vào cuối một sprint, nhóm phát triển và PO phải đảm bảo backlog đã sẵn sàng cho sprint tiếp theo Nhóm có thể loại bỏ các chức năng không liên quan, tạo vấn đề mới, đánh giá lại mức độ ưu tiên của các vấn đề hoặc chia nhỏ các yêu cầu của người dùng thành các tác vụ nhỏ hơn Mục đích của cuộc họp này là đảm bảo việc tồn đọng chỉ chứa các mục có liên quan, chi tiết, và đáp ứng các mục tiêu của dự án.

- Daily Scrum meetings: là một cuộc họp đứng lên 15 phút, nơi mỗi thành viên trong nhóm nói về mục tiêu của họ và bất kỳ vấn đề nào nảy sinh cuộc họp diễn ra mỗi ngày trong Sprint, giúp dễ dàng theo dỗi các công việc đang thực hiện , chưa thực hiện hay sắp thực hiện.Thường cuộc họp này mỗi người sẽ phải tự trả lời

3 câu hỏi: Hôm qua đã làm những gì ? Có gặp khó khăn gì không? Hôm nay sẽ làm gì ?

- Sprint review meeting: Vào cuối mỗi Sprint, nhóm trình bày công việc họ đã hoàn thành tại cuộc họp đánh giá Cuộc họp này phải trình bày trực tiếp, không thông qua báo cáo hay bản trình bày PowerPoint.

- Sprint retrospective meeting: Vào cuối mỗi Sprint, nhóm nghiên cứu phản ánh mức độ làm việc với nhau và thảo luận về bất kỳ thay đổi nào cần được thực hiện trong Sprint tiếp theo Nhóm có thể nói về những gì diễn ra tốt đẹp trong thời gian Sprint vừa qua , điều gì đã xảy ra và những gì họ có thể làm khác đi.

3.1.2 Ưu điểm và nhược điểm của Scrum

- Một người có thể làm nhiều việc ví dụ như developer cũng có thể thực hiện chức năng tương tự như một tester.

- Tương tự các quy trình phát triển phần mềm theo quy cách Agile, nhà phát triển có thể phát hiện lỗi sớm hơn rất nhiều so với các phương pháp truyền thống.

- Khách hàng nhanh chóng thấy được sản phẩm qua đó đưa ra phản hồi sớm.

- Có khả năng áp dụng được cho những dự án mà yêu cầu khách hàng không rõ ràng ngay từ đầu.

- Trình độ của nhóm là có một kỹ năng nhất định

- Phải có sự hiểu biết về mô hình aglie

- Khó khăn trong việc xác định ngân sách và thời gian.

- Luôn nghe ý kiến phản hồi từ khách hàng và thay đổi theo nên thời gian sẽ kéo dài khi có quá nhiều yêu cầu thay đổi từ khách hàng.

- Vai trò của PO (Product Owner) rất quan trọng, PO là người định hướng sản phẩm Nếu PO làm không tốt sẽ ảnh hưởng đến kết quả chung.

3.1.3 Lý cho chọn quy trình phát triển phần mềm Scrum

Quy trình phát triển phần mềm Scrum thực sự phù hợp với những dự án phần mềm có các đặc điểm sau:

- Dự án có tính phức tạp trung bình đến cao

- Yêu cầu và mục tiêu không rõ ràng từ đầu

- Đội ngũ phát triển tự quản lý

- Khách hàng muốn có sự tương tác và phản hồi liên tục.

- Dự án có tính ưu tiên cao và thay đổi thường xuyên

- Dự án có sự phụ thuộc cao vào phản hồi từ khách hàng

Dựa vào các đặc điểm của Website hỗ trợ gây vốn cộng đồng Happy Fund,chúng tôi quyết định lựa chọn quy trình phát triển phần mềm Scrum để đạt được hiệu quả tốt nhất trong quá trình phát triển phần mềm, đi đến kết quả cao nhất.

Phương pháp phân tích thiết kế hướng đối tượng 1 Cách tiếp cận

Phân tích và thiết kế hướng đối tượng là một kỹ thuật tiếp cận phổ biến dùng để phân tích, thiết kế một ứng dụng, hệ thống Nó dựa trên bộ các nguyên tắc chung, đó là một tập các hướng dẫn để giúp chúng ta tránh khỏi một thiết kế xấu 5 nguyên tắc SOLID trong thiết kế hướng đối tượng:

- Single Responsibility: Một lớp chỉ nên có một lý do để thay đổi, tức là một lớp chỉ nên xử lý một chức năng đơn lẻ, duy nhất thôi Nếu đặt nhiều chức năng vào trong một lớp sẽ dẫn đến sự phụ thuộc giữa các chức năng với nhau và mặc dù sau đó ta chỉ thay đổi ở một chức năng thì cũng phá vỡ các chức năng còn lại.

- Open/Closed: Các lớp, module, chức năng nên dễ dàng Mở (Open) cho việc mở rộng (thêm chức năng mới) và Đóng (Close) cho việc thay đổi.

- Liskov Substitution Principle: Lớp dẫn xuất phải có khả năng thay thế được lớp cha của nó.

- Interface Segregation: Chương trình không nên buộc phải cài đặt một interface mà nó không sử dụng đến.

- Dependency Inversion: Các module cấp cao không nên phụ thuộc vào các module cấp thấp Cả hai nên phụ thuộc thông qua lớp trừu tượng Lớp trừu tượng không nên phụ thuộc vào chi tiết Chi tiết nên phụ thuộc vào trừu tượng

Khác với phương pháp hướng cấu trúc chỉ tập trung vào dữ liệu hoặc vào hành động, phương pháp hướng đối tượng tập trung vào cả hai khía cạnh của hệ thống là dữ liệu và hành động.

Cách tiếp cận hướng đối tượng là một lối tư duy theo cách ánh xạ các thành phần trong bài bài toán vào các đối tượng ngoài đời thực Với cách tiếp cận này, một hệ thống được chia tương ứng thành các phần nhỏ gọi là đối tượng Mỗi đối tượng bao gồm đầy đủ cả dữ liệu và hành động liên quan đến đối tượng đó Các đối tượng trong một hệ thống tương đối độc lập với nhau và phần mềm sẽ được xây dựng bằng cách kết hợp các đối tượng đó lại với nhau thông qua các mối quan hệ và tương tác giữa chúng.

Phương pháp thiết kế từ dưới lên (bottom-up) Bắt đầu từ những thuộc tính cụ thể của từng đối tượng sau đó tiến hành trừu tượng hóa thành các lớp (Đối tượng).

3.2.2 Ưu điểm và nhược điểm của phương pháp phân tích thiết kế hướng đối tượng

- Gần gũi với thế giới thực.

- Tái sử dụng dễ dàng.

- Đóng gói che giấu thông tin làm cho hệ thống tin cậy hơn.

- Thừa kế làm giảm chi phí, hệ thống có tính mở cao hơn

- Xây dựng hệ thống phức tạp.

Phương pháp này khá phức tạp, khó theo dõi được luồng dữ liệu do có nhiều luồng dữ liệu ở đầu vào Hơn nữa giải thuật lại không phải là vấn đề trọng tâm của phương pháp này.

3.2.3 Lý do chọn phương pháp phân tích thiết kế hướng đối tượng

Website hỗ trợ gây vốn cộng đồng Happy Fund được xây dựng với số lượng yêu cầu cao và phức tạp, do đó nó phù hợp vơi phương pháp hướng đối tượng này - thường được áp dụng cho các bài toán phức tạp hoặc có nhiều luồng dữ liệu khác nhau mà phương pháp cấu trúc không thể quản lý được Do đó nhóm quyết định dùng phương pháp hướng đối tượng để để tận dụng khả năng bảo vệ giữ liệu ngoài ra còn tiết kiệm công sức và tài nguyên.

Các nền tảng công nghệ sử dụng 1 ReactJS

ReactJS là một thư viện JavaScript mã nguồn mở được sử dụng rộng rãi để xây dựng giao diện người dùng (UI) cho ứng dụng web Nó được phát triển bởi Facebook và hiện đang được quản lý bởi Facebook và một cộng đồng lớn các nhà phát triển.

Một số đặc điểm quan trọng của ReactJS có thể kể đến như:

- Công nghệ giao diện dựa trên thành phần: ReactJS cho phép phát triển giao diện người dùng theo hướng thành phần Mỗi thành phần (component) đại diện cho một phần nhỏ của giao diện và có thể được tái sử dụng, tương tác với nhau và tự quản lý trạng thái của mình.

- Virtual DOM: ReactJS sử dụng một cơ chế gọi là Virtual DOM để tối ưu hoá hiệu suất và cải thiện trải nghiệm người dùng Virtual DOM là một bản sao của DOM (cấu trúc cây HTML) và ReactJS sử dụng nó để thực hiện các thay đổi trên giao diện một cách hiệu quả, chỉ cập nhật những phần cần thiết thay vì cập nhật toàn bộ DOM.

- Tính khả chuyển: ReactJS có khả năng tương thích với nhiều môi trường phát triển và cấu trúc dự án Nó có thể được sử dụng để phát triển ứng dụng đơn trang (Single-Page Applications - SPA) hoặc tích hợp vào các dự án web hiện có.

- Quản lý trạng thái dễ dàng: ReactJS cung cấp một cách tiếp cận dễ dàng để quản lý trạng thái của ứng dụng Thay vì thay đổi trực tiếp DOM, ReactJS cho phép các thành phần quản lý trạng thái của chính mình Điều này giúp duy trì mã nguồn gọn gàng và dễ bảo trì.

- Hệ sinh thái mạnh mẽ: ReactJS được hỗ trợ bởi một hệ sinh thái phong phú và đông đảo của các thư viện và công cụ bổ sung như React Router, Redux, React Native (cho phát triển ứng dụng di động), và nhiều hơn nữa Điều này giúp mở rộng khả năng của ReactJS và tăng tính linh hoạt của nó.

- Cộng đồng lớn: ReactJS có một cộng đồng phát triển rất lớn và năng động. Điều này có nghĩa là có rất nhiều tài liệu, hướng dẫn và ví dụ có sẵn, cùng với sự hỗ trợ từ cộng đồng để giúp bạn trong quá trình phát triển ứng dụng.

ReactJS đã trở thành một trong những công nghệ phát triển giao diện người dùng phổ biến nhất và được sử dụng rộng rãi trong cộng đồng phát triển phần mềm. Với tính linh hoạt, hiệu suất và cách tiếp cận thành phần, ReactJS là một công cụ mạnh mẽ để xây dựng giao diện người dùng đẹp và tương tác trên web.

NodeJS là một môi trường chạy mã JavaScript phía máy chủ (server-side) được xây dựng trên JavaScript Engine V8 của Google Chrome Nó cho phép chúng ta viết mã JavaScript để xây dựng ứng dụng máy chủ hiệu quả và mở rộng được trên nền tảng web.

Một số đặc điểm quan trọng của NodeJS có thể kể đến như:

- Khả năng xây dựng ứng dụng phía máy chủ: Node.js cho phép phát triển các ứng - dụng phía máy chủ bằng JavaScript, thay vì phải sử dụng ngôn ngữ lập trình khác như Java hay Python Điều này giúp đơn giản hóa việc phát triển ứng dụng toàn diện và đồng thời tận dụng được kiến thức và kỹ năng JavaScript đã có.

- Kiến trúc không đồng bộ (asynchronous): Node.js sử dụng mô hình xử lý không đồng bộ (non-blocking) để xử lý các yêu cầu và tương tác với các tài nguyên ngoại vi như cơ sở dữ liệu hoặc API Điều này cho phép ứng dụng Node.js xử lý nhiều yêu cầu cùng lúc mà không phụ thuộc vào việc chờ đợi phản hồi từ yêu cầu trước đó.

- Hiệu suất cao: Nhờ sử dụng JavaScript Engine V8 nhanh chóng và khả năng xử lý không đồng bộ, Node.js cho phép xử lý một lượng lớn yêu cầu mà không ảnh hưởng đến hiệu suất của ứng dụng Điều này đặc biệt hữu ích trong việc xây dựng các ứng dụng thời gian thực hoặc có yêu cầu về lưu lượng cao.

- Cộng đồng và hệ sinh thái phong phú: Node.js có một cộng đồng phát triển rất lớn và năng động, với nhiều thư viện và framework hữu ích Các công cụ như Express.js, Socket.IO, và Sequelize cung cấp giải pháp cho việc phát triển ứng dụng web, xử lý thời gian thực và kết nối cơ sở dữ liệu.

- Đa nền tảng: Node.js có sẵn trên nhiều nền tảng khác nhau, bao gồmWindows, macOS và Linux, điều này giúp phát triển và triển khai ứng dụng trên nhiều môi trường một cách dễ dàng.

NodeJS đã trở thành một công cụ mạnh mẽ trong việc xây dựng các ứng dụng web phía máy chủ Khả năng xử lý không đồng bộ, hiệu suất cao và sự phát triển mạnh mẽ từ cộng đồng đã làm cho NodeJS trở thành một lựa chọn phổ biến cho việc phát triển ứng dụng web hiện đại và đáp ứng.

Hình 3.3 Logo của NodeJS 3.3.3 ExpressJS

Chiến lược “Thiên chúa 3 ngôi” và phương pháp SEO 1 Xây dựng chiến lược phát triển “Thiên chúa 3 ngôi” cho Happy Fund

3.4.1 Xây dựng chiến lược phát triển “Thiên chúa 3 ngôi” cho Happy Fund

Chiến lược “Thiên chúa 3 ngôi” được học tập theo chiến lược phát triển của sàn thương mại điện tử Amazon từ những năm đầu của thế kỉ XXI Chiến lược

“Thiên chúa 3 ngôi” của Amazon đem lại sự khác biệt và biến đây thành một sàn thương mại điện tử có sức cạnh tranh nhất Dựa theo sự học tập đó, Happy Fund cũng xây dựng cho mình một chiến lược “Thiên chúa 3 ngôi” tạo nên một sự khác biệt về trải nghiệm người dùng so với các trang web gây quỹ cộng đồng hiện có, đó là: Chi phí hoa hồng luôn rẻ, Phản hồi nhanh chóng và FulFill by Happy Fund (FBHF).

3.4.1.1 Chi phí hoa hồng luôn rẻ

Dựa trên sự nghiên cứu về các trang web gây quỹ cộng đồng hiện nay trên thị trường, chi phí hoa hồng cố định cho mỗi loại dự án là rất cao (chi phí lên đến15% - 30%) cho mỗi dự án Đồng thời, khi người ủng hộ thực hiện ủng hộ thì cũng thu phụ thu từ 5 – 8% cho mỗi giao dịch Con số này là rất lớn với một dự án khởi nghiệp cần thu hút vốn cộng đồng bởi lẽ số tiền kêu gọi được sẽ không thể chạm đến chủ dự án trọn vẹn Do đó, Happy Fund mong muốn có thể mang đến một mức hoa hồng rẻ, phù hợp với toàn bộ các dự án theo mức kêu gọi đầu tư, có thể liệt kê như sau:

- Dự án kêu gọi dưới 50 triệu đồng: Hoa hồng thu 3% trên 1 dự án

- Dự án kêu gọi từ 50 triệu đồng đến 500 triệu đồng: Hoa hồng thu 5% trên 1 dự án

- Dự án kêu gọi từ 500 triệu đồng đến 5 tỷ đồng: Hoa hồng thu 7% trên 1 dự án

Ngoài ra, Happy Fund còn thu 2% chi phí trên mỗi giao dịch ủng hộ để duy trì dịch vụ thanh toán điện tử Với con số này, số tiền khấu hao tối đa chủ dự án phải nhận chỉ dừng ở mức 9% cho những dự án cực lớn Điều này giúp tối đa hóa số tiền xã hội hóa vốn, tạo cho chủ dự án khoản thu lớn để thực hiện thành công mục tiêu của mình.

Happy Fund cung cấp cơ chế cập nhật tiến độ dự án cùng các minh chứng tiền bạc đi kèm, tạo tương tác ngược giữa người chủ dự án với nhà đầu tư Đồng thời cung cấp cửa sổ chat để tiến hành tương tác qua lại giữa các bên liên quan Từ đó cung cấp sự phản hồi và tương tác nhanh chóng, tạo niềm tin và sự thoải mái trong cung cấp vốn, tạo một môi trường bền vững.

3.4.1.3 FulFill By Happy Fund (FBHF)

Chiến lược FulFill được học tập bởi Amazon, nơi mà người bán hàng chỉ cần mang hàng hóa đến, mọi vấn đề còn lại được Amazon lo Tại Happy Fund, các chủ dự án chỉ cần mang sản phẩm và mô tả dự án đến với trang web, mọi hoạt động như thống kê, tính toán, quản lý dự án và chạy các chiến dịch quảng cáo đều được hệ người dùng tìm đến Happy Fund, tạo một cộng đồng vững mạnh cho việc gây quỹ cộng đồng.

SEO là viết tắt của Search Engine Optimization, được hiểu là tối ưu hóa công cụ tìm kiếm Nó là một quy trình tối ưu hóa trang web để cải thiện vị trí và hiển thị của nó trên các kết quả tìm kiếm tự nhiên của các công cụ tìm kiếm như Google, Bing, và Yahoo.

Mục tiêu của SEO là làm cho trang web của bạn trở nên hấp dẫn và thân thiện với công cụ tìm kiếm, giúp nó xếp hạng cao hơn trong kết quả tìm kiếm liên quan đến ngành, sản phẩm hoặc dịch vụ của bạn Khi bạn tối ưu hóa trang web của mình cho SEO, bạn đảm bảo rằng nội dung của bạn phù hợp và hấp dẫn cho người dùng, cùng với việc tuân thủ các quy tắc và tiêu chuẩn của công cụ tìm kiếm.

Các yếu tố chính trong SEO bao gồm:

- Từ khóa: Nghiên cứu và chọn các từ khóa phù hợp để tăng khả năng xuất hiện trên kết quả tìm kiếm.

- Nội dung: Tạo ra nội dung chất lượng, hữu ích và có giá trị cho người dùng, với sự tập trung vào từ khóa và các yếu tố tối ưu hóa khác.

- Kiến trúc trang web: Xây dựng một cấu trúc trang web rõ ràng và dễ dàng cho công cụ tìm kiếm hiểu và lập chỉ mục.

- Liên kết: Xây dựng mạng lưới liên kết bên trong và bên ngoài, bao gồm cả liên kết đến trang web của bạn từ các trang web khác có uy tín cao.

- Trải nghiệm người dùng: Đảm bảo trang web của bạn có trải nghiệm tốt cho người dùng, bao gồm tốc độ tải trang nhanh, thiết kế responsive và dễ sử dụng trên các thiết bị di động.

SEO là một quá trình liên tục và đòi hỏi nỗ lực và kiên nhẫn để đạt được kết quả tốt Tuy nhiên, nó có thể mang lại lợi ích lớn cho sự tăng trưởng và hiệu quả của trang web và kinh doanh trực tuyến.

TRÌNH BÀY KẾT QUẢ 1 Xây dựng hệ thống 1.1 Kiến trúc hệ thống MVC

Mô tả các thành phần trong hệ thống

Thành phần model lưu trữ dữ liệu và logic liên quan của nó Bao gồm các class function xử lý các tác vụ như truy vấn, thêm, sửa hoặc xóa dữ liệu Ví dụ, một đối tượng Controller sẽ lấy thông tin khách hàng từ cơ sở dữ liệu Nó thao tác dữ liệu và gửi trở lại cơ sở dữ liệu hoặc sử dụng nó để hiển thị dữ liệu.

- View là một phần của ứng dụng đại diện cho việc trình bày dữ liệu.

- View được tạo bởi các dữ liệu mà chúng ta lấy từ dữ liệu trong model Một view yêu cầu model cung cấp đầy đủ dữ liệu để nó hiển thị đầu ra cho người dùng.

- View chính là nới chứa những giao diện như một nút bấm, khung nhập, menu, hình ảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với hệ thống.

Controller là một phần của ứng dụng xử lý tương tác của người dùng Bộ điều khiển diễn giải đầu vào chuột và bàn phím từ người dùng, thông báo cho model và view để thay đổi khi thích hợp.

Controller là nới tiếp nhận những yêu cầu xử lý được gửi từ người dùng, nó sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị dữ liệu đó ra cho người dùng nhờ lớp View.

Controller gửi các lệnh đến model để làm thay đổi trạng thái của nó (Ví dụ: ta thêm mới 1 user hoặc cập nhật tên 1 user) Controller cũng gửi các lệnh đến view liên quan của nó để thay đổi cách hiển thị của view (Ví dụ: xem thông tin 1 user).

4.1.2.4 Thành phần tối ưu hóa SEO

Có nhiều thành phần quan trọng trong quá trình tối ưu hóa SEO cho một trang web Dưới đây là một số thành phần chính:

- Từ khóa: Nghiên cứu và sử dụng các từ khóa phù hợp và liên quan trong nội dung của trang web Điều này giúp công cụ tìm kiếm hiểu được chủ đề và nội dung của trang web và đưa ra kết quả tìm kiếm phù hợp cho người dùng.

- Nội dung: Tạo ra nội dung chất lượng, hữu ích và độc đáo Đảm bảo nội dung của bạn liên quan đến từ khóa mục tiêu và cung cấp giá trị cho người đọc. Đồng thời, sắp xếp nội dung theo cấu trúc logic, sử dụng tiêu đề và đoạn văn ngắn để tăng khả năng đọc và hiểu bài viết.

- Meta Tags: Đặt các meta tags như title tag, meta description, và meta keywords Title tag là tiêu đề của trang hiển thị trên kết quả tìm kiếm và meta description là mô tả ngắn gọn về nội dung của trang Meta tags giúp tăng khả năng nhấp vào trang web từ kết quả tìm kiếm.

- URL thân thiện: Sử dụng URL dễ đọc, có cấu trúc rõ ràng và chứa từ khóa liên quan URL thân thiện giúp người dùng và công cụ tìm kiếm hiểu được nội dung của trang chỉ từ URL.

- Liên kết nội bộ: Xây dựng một cấu trúc liên kết nội bộ chặt chẽ và có ý nghĩa giữa các trang trong trang web Điều này giúp công cụ tìm kiếm hiểu và lập chỉ mục trang web của bạn một cách hiệu quả.

- Liên kết ngoại vi: Xây dựng mạng lưới liên kết chất lượng từ các trang web khác đến trang web của bạn Điều này cung cấp một tín hiệu cho công cụ tìm kiếm về sự uy tín và giá trị của trang web của bạn.

- Tốc độ tải trang: Đảm bảo trang web tải nhanh để cung cấp trải nghiệm tốt cho người dùng Tối ưu hóa hình ảnh, sử dụng caching và nén tệp tin để giảm thời gian tải trang.

- Responsive design: Thiết kế trang web để hiển thị tốt trên các thiết bị di động Điều này đảm bảo trải nghiệm người dùng tốt trên điện thoại di động và tablet.

Đặc tả hệ thống 1 Sơ đồ Use-case

Hình 4.2 Sơ đồ Use-case cho hệ thống Happy Fund 4.2.2 Sơ đồ Activity

4.2.2.1 Sơ đồ Activity cho Use-case Đăng nhập

4.2.2.2 Sơ đồ Activity cho Use-case Quản lý dự án

4.2.2.3 Sơ đồ Activity cho Use-case Quản lý thanh toán

4.2.2.4 Sơ đồ Activity cho Use-case Quản lý người dùng

4.2.2.5 Sơ đồ Activity cho Use-case Quản lý liên hệ

4.2.2.6 Sơ đồ Activity cho Use-case Đăng kí

4.2.2.7 Sơ đồ Activity cho Use-case Xác thực thông tin

4.2.2.8 Sơ đồ Activity cho Use-case Quản lý dự án cá nhân

4.2.2.9 Sơ đồ Activity cho Use-case Xem dự án

4.2.2.10 Sơ đồ Activity cho Use-case Đánh giá và bình luận

4.2.2.11 Sơ đồ Activity cho Use-case Ủng hộ dự án

4.2.3.1 Sơ đồ Sequence cho Use-case Đăng nhập

4.2.3.2 Sơ đồ Sequence cho Use-case Quản lý dự án

4.2.3.3 Sơ đồ Sequence cho Use-case Quản lý thanh toán

4.2.3.4 Sơ đồ Sequence cho Use-case Quản lý người dùng

4.2.3.5 Sơ đồ Sequence cho Use-case Quản lý liên hệ

4.2.3.6 Sơ đồ Sequence cho Use-case Đăng kí

4.2.3.7 Sơ đồ Sequence cho Use-case Xác thực thông tin

4.2.3.8 Sơ đồ Sequence cho Use-case Quản lý dự án cá nhân

4.2.3.9 Sơ đồ Sequence cho Use-case Xem dự án

4.2.3.10 Sơ đồ Sequence cho Use-case Đánh giá và bình luận

4.2.3.11 Sơ đồ Sequence cho Use-case Ủng hộ dự án

4.2.4.1 Sơ đồ Class hoàn chỉnh

4.2.4.2 Mô tả các thành phần có trong sơ đồ

1 NguoiDung Lớp lưu trữ thông tin người dùng của hệ thống

2 DuAn Lớp lưu trữ thông tin dự án của hệ thống

3 ThanhToan Lớp lưu trữ các thông tin thanh toán

4 DanhGia Lớp lưu trữ các đánh giá của người dùng về dự án

5 BinhLuan Lớp lưu trữ các bình luận của người dùng về dự án

6 HopThu Lớp lưu trữ các thông tin về hộp thư của người dùng

7 Tag Lớp lưu trữ các thể loại của dự án

9 Trạng thái Lưu trữ các trạng thái của người dùng

Bảng 4.1 Mô tả các thành phần trong sơ đồ lớp 4.2.4.3 Mô tả chi tiết các thành phần có trong sơ đồ

STT Lớp Thuộc tính/Phương thức Ý nghĩa

1 NguoiDung id Số id của người dùng tenNguoiDung Tên hiển thị của người dùng soTaiKhoan Tài khoản thanh toán của người dùng diaChi Địa chỉ giao hàng của người dùng cho món quà được nhận soDienThoai Số điện thoại liên lạc trangThai Trạng thái người dùng, bao gồm: Đã xác thực, Đang xác thực và Chưa xác thực Online và Offline giaoDich Lưu trữ các thông tin về các lần giao dịch của người dùng duAn Lưu trữ các dự án cúa nhân của người dùng

CapNhatTrangThai() Cập nhật lại trạng thái cho người dùng isXacThuc() Kiểm tra người dùng đã được xác thực chưa

ThanhToan() Thanh toán hóa đơn cho người dùng

2 DuAn id Mã của dự án tenDuAn Tên dự án soVonGoi Số vốn kêu gọi cho dự án soVonDaGop Số vốn đã kêu gọi thành công thoiHan Thời hạn gọi vốn moTa Mô tả về dự án anhMinhHoa Ảnh của dự án tag Thông tin về thể loại của dự án

Show() Hiển thị dự án trên trang

CapNhat() Cập nhật trạng thái của dự án, tiến độ,

3 ThanhToan id Mã thanh toán soTien Số tiền cho lần thanh toán ngayThanhToan Ngày thực hiện thanh toán noiDung Nội dung của thanh toán nguoiChuyen Người dùng thực hiện thanh toán duAn Dự án được thanh toán tiền

HoanTra() Hoàn trả lại tiền cho người dùng

4 DanhGia id Mã đánh giá soSao Số sao cho đánh giá ngayDanhGia Ngày thực hiện đánh giá gioDanhGia Thời gian thực hiện đánh giá nguoiDanhGia Người thực hiện đánh giá duAn Dự án đánh giá

5 BinhLuan id Mã bình luận noiDung Nội dung bình luận ngayBinhLuan Ngày thực hiện bình luận gioBinhLuan Thời gian thực hiện bình luận nguoiBinhLuan Người thực hiện bình luận duAn Dự án được bình luận

ChinhSua() Chỉnh sửa bình luận

6 HopThu id Mã hộp thư nguoiDung1 Người dùng sở hữu hộp thư nguoiDung2 Người dùng sở hữu hộp thư hienThi() Hiển thị tất cả tin nhắn trong hộp thư

Xoa() Thực hiện xóa hộp thư

7 TinNhan id Mã tin nhắn hopThu Mã hộp thư noiDung Nội dung tin nhắn trangThai Trạng thái tin nhắn, bao gồm đang gửi, đã gửi, đã nhận, đã xem hienThi() Hiển thị tin nhắn

PhanLoai() Phân chia dự án theo tag

9 TrangThai id Mã trạng thái tenTrangThai Tên trạng thái

PhanLoai() Phân loại trạng thái

Bảng 4.2 Mô tả chi tiết các thành phần trong sơ đồ lớp

Thiết kế hệ thống 1 Sơ đồ màn hình

Hình 4.2 Sơ đồ hệ thống màn hình cho Người dùng

Hình 4.3 Sơ đồ hệ thống màn hình cho Admin

4.3.2 Sơ đồ thiết kế chi tiết từng màn hình

Hình 4.4 Giao diện trang chủ

Hình 4.5 Giao diện đăng nhập

Hình 4.6 Giao diện đăng kí

Hình 4.7 Giao diện Quản lý dự án

Hình 4.8 Giao diện Quản lý dự án kèm chức năng lọc

Hình 4.9 Giao diện liên hệ chủ website

Hình 4.10 Giao diện Quản lý dự án - admin

Hình 4.11 Giao diện quản lý tài khoản - 1

Hình 4.13 Giao diện quản lý tài khoản - 3

Hình 4.15 Giao diện Dự án – Chi tiết

Hình 4.16 Giao diện dự án – cập nhật

Hình 4.17 Giao diện Dự án – Đã ủng hộ

Hình 4.18 Giao diện Dự án – Đánh giá

Hình 4.19 Giao diện Thêm dự án mới

Hình 4.20 Giao diện cập nhật tiến độ dự án

Hình 4.21 Giao diện chỉnh sửa dự án

Hình 4.22 Giao diện Trang chủ của Admin

Hình 4.23 Giao diện Quản lý người dùng - Admin

Hình 4.24 Giao diện quản lý dự án - Admin

Hình 4.25 Giao diện Quản lý thanh toán - Admin

Hình 4.26 Giao diện quản lý dự án đang chờ - Admin

Hình 4.27 Giao diện quản lý người dùng – chi tiết

Hình 4.28 Giao diện quản lý dự án – chi tiết – Admin

Hình 4.29 Giao diện Thêm dự án mới – Admin

Hình 4.30 Giao diện thêm người dùng mới – Admin

Hình 4.31 Giao diện thanh toán

- Xây dựng được bản phân tích hoàn thiện hệ thống, xây dựng được bản thiết kế hoàn thiện hệ thống

- Nghiên cứu khái quát và tìm ra được các ưu điểm, nhược điểm của các Website gây quỹ cộng đồng trên thị trường, từ đó tìm ra được lợi thế cạnh tranh của sản phẩm

- Xây dựng được chiến lược cạnh tranh “Thiên chúa 3 ngôi”, xây dựng được một nền tảng gây quỹ cộng đồng

- Xây dựng được website với các tính năng theo phân tích và thiết kế

- Tiến hành kiểm thử đơn vị và kiểm thử hệ thống cho các chức năng và sửa chữa một số lỗi

- Có thêm kiến thức về lập trình website, thiết kế giao diện người dùng, kiến thức về nền tảng ReactJS, NodeJS, Socket, Cơ sở dữ liệu không quan hệ MongoDB,

- Có thêm kĩ năng làm việc nhóm, kĩ năng phân tích và giải quyết vấn đề, kĩ năng quản lý dự án cơ bản,

- Ứng dụng được các môn học khác vào trong đồ án 1 như Phân tích thiết kế hướng đối tượng, Công nghệ Web và ứng dụng, Thương mại Điện tử,

5.2 Đóng góp và đề xuất mới

- Xây dựng được một website gây quỹ cộng đồng với hoa hồng rẻ, tiện dụng, tích hợp thêm các chức năng như người dùng, nhắn tin,

- Tăng cường trải nghiệm người dùng với chiến lược “Thiên chúa 3 ngôi”

- Góp phần phát triển thị phần doanh nghiệp hiện đại, tạo một công cụ cho các dự án non trẻ có tiềm năng phát triển

- Cung cấp khả năng tương tác xã hội mạnh mẽ: Đề xuất tích hợp các tính năng tương tác xã hội như bình luận, đánh giá và chia sẻ ý kiến Điều này tạo điều kiện cho người dùng thảo luận, chia sẻ ý kiến và tạo sự tương tác tích cực trong cộng đồng gây quỹ.

- Cải tiến quy trình quản lý dự án: Đề xuất cải tiến quy trình quản lý dự án bằng cách cung cấp các công cụ quản lý dự án linh hoạt và dễ sử dụng Điều này giúp người dùng tạo và quản lý các chiến dịch gây quỹ một cách hiệu quả hơn, từ việc thiết lập mục tiêu, theo dõi tiến độ, định lịch công việc cho đến báo cáo và phân tích kết quả.

- Phát triển thêm nhiều hình thức thanh toán điện tử mới như Momo, VN-

QR, Thẻ ngân hàng nội địa,

- Xuất bản và phát triển SEO cho trang web, đẩy trang web lên top những công cụ tìm kiếm như Google, Cốc cốc, Yahoo, Bing,

- Phát triển trang web trở thành một mạng xã hội của những chủ dự án, nơi họ có thể tìm kiếm và chia sẻ với nhau, tạo một cộng đồng của những chủ dự án thực sự, nơi họ có thể chia sẻ và bày tỏ quan điểm cũng như cập nhật các trạng thái cá nhân,

- Tích hợp chatbot và các thuật toán tối ưu mạng xã hội để đề xuất tốt hơn những dự án cho cộng đồng người dùng

2 https://recharts.org/en-US/guide

3 https://www.youtube.com/@WebDevSimplified

5 https://axios-http.com/docs/intro

6 https://firebase.google.com/docs

7 https://stripe.com/docs/stripe-js/react

8 https://github.com/rt2zz/redux-persist

9 https://styled-components.com/docs

10 https://github.com/hustcc/timeago.js/

12 https://mui.com/material-ui/getting-started/

13 https://reactrouter.com/en/main/start/tutorial

14 https://www.youtube.com/@Fireship

PHỤ LỤC 1: DANH MỤC BẢNG

Bảng 4.1 Mô tả các thành phần trong sơ đồ lớp 69

Bảng 4.2 Mô tả chi tiết các thành phần trong sơ đồ lớp 72

PHỤ LỤC 2: DANH MỤC HÌNH ẢNH Hình 2.1 Website gây vốn cộng đồng Kickstarter 11

Hình 2.2 Website gây vốn cộng đồng RocketHub 12

Hình 2.3 Website gây vốn cộng đồng Gofundme.com 13

Hình 3.1 Mô hình phát triển phần mềm SCRUM 18

Hình 3.5 Nền tảng thanh toán Stripe 29

Hình 3.6 Logo của hệ quản trị cơ sở dữ liệu MongoDB 32

Hình 3.7 Logo của Styled-Component 34

Hình 3.8 Logo của React Router 36

Hình 3.9 Logo của Socket.IO 38

Hình 4.2 Sơ đồ Use-case cho hệ thống Happy Fund 45

Hình 4.3.1 Sơ đồ hệ thống màn hình cho Người dùng 73

Hình 4.3.2 Sơ đồ hệ thống màn hình cho Admin 74

Hình 4.4 Giao diện trang chủ 75

Hình 4.5 Giao diện đăng nhập 76

Hình 4.6 Giao diện đăng kí 76

Hình 4.7 Giao diện Quản lý dự án 77

Hình 4.8 Giao diện Quản lý dự án kèm chức năng lọc 78

Hình 4.9 Giao diện liên hệ chủ website 79

Hình 4.10 Giao diện Quản lý dự án - admin 80

Hình 4.11 Giao diện quản lý tài khoản - 1 81

Ngày đăng: 04/09/2023, 20:41

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Website gây vốn cộng đồng Kickstarter - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 2.1. Website gây vốn cộng đồng Kickstarter (Trang 20)
Hình 2.3. Website gây vốn cộng đồng Gofundme.com - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 2.3. Website gây vốn cộng đồng Gofundme.com (Trang 22)
Hình 3.1. Mô hình phát triển phần mềm SCRUM - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 3.1. Mô hình phát triển phần mềm SCRUM (Trang 27)
Hình 3.5. Nền tảng thanh toán Stripe 3.3.5. JSON Web Tokens - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 3.5. Nền tảng thanh toán Stripe 3.3.5. JSON Web Tokens (Trang 38)
Hình 3.7. Logo của Styled-Component 3.3.8. React-Router - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 3.7. Logo của Styled-Component 3.3.8. React-Router (Trang 43)
Hình 3.8. Logo của React Router 3.3.9. Socket.IO - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 3.8. Logo của React Router 3.3.9. Socket.IO (Trang 45)
Hình 3.9. Logo của Socket.IO - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 3.9. Logo của Socket.IO (Trang 47)
Hình 4.1. Mô hình MVC - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 4.1. Mô hình MVC (Trang 51)
4.2.2.2. Sơ đồ Activity cho Use-case Quản lý dự án - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.2.2. Sơ đồ Activity cho Use-case Quản lý dự án (Trang 55)
4.2.2.3. Sơ đồ Activity cho Use-case Quản lý thanh toán - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.2.3. Sơ đồ Activity cho Use-case Quản lý thanh toán (Trang 57)
4.2.2.5. Sơ đồ Activity cho Use-case Quản lý liên hệ - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.2.5. Sơ đồ Activity cho Use-case Quản lý liên hệ (Trang 59)
4.2.2.8. Sơ đồ Activity cho Use-case Quản lý dự án cá nhân - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.2.8. Sơ đồ Activity cho Use-case Quản lý dự án cá nhân (Trang 61)
4.2.2.9. Sơ đồ Activity cho Use-case Xem dự án - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.2.9. Sơ đồ Activity cho Use-case Xem dự án (Trang 63)
4.2.3.2. Sơ đồ Sequence cho Use-case Quản lý dự án - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.3.2. Sơ đồ Sequence cho Use-case Quản lý dự án (Trang 66)
4.2.3.7. Sơ đồ Sequence cho Use-case Xác thực thông tin - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.3.7. Sơ đồ Sequence cho Use-case Xác thực thông tin (Trang 71)
4.2.3.8. Sơ đồ Sequence cho Use-case Quản lý dự án cá nhân - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.3.8. Sơ đồ Sequence cho Use-case Quản lý dự án cá nhân (Trang 72)
4.2.3.9. Sơ đồ Sequence cho Use-case Xem dự án - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.3.9. Sơ đồ Sequence cho Use-case Xem dự án (Trang 74)
4.2.3.11. Sơ đồ Sequence cho Use-case Ủng hộ dự án - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.3.11. Sơ đồ Sequence cho Use-case Ủng hộ dự án (Trang 75)
4.2.4. Sơ đồ Class - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.2.4. Sơ đồ Class (Trang 76)
4.3.1. Sơ đồ màn hình - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
4.3.1. Sơ đồ màn hình (Trang 82)
Hình 4.3. Sơ đồ hệ thống màn hình cho Admin - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 4.3. Sơ đồ hệ thống màn hình cho Admin (Trang 83)
Hình 4.10. Giao diện Quản lý dự án - admin - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 4.10. Giao diện Quản lý dự án - admin (Trang 89)
Hình 4.16. Giao diện dự án – cập nhật - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 4.16. Giao diện dự án – cập nhật (Trang 93)
Hình 4.17. Giao diện Dự án – Đã ủng hộ - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 4.17. Giao diện Dự án – Đã ủng hộ (Trang 94)
Hình 4.18. Giao diện Dự án – Đánh giá - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 4.18. Giao diện Dự án – Đánh giá (Trang 95)
Hình 4.20. Giao diện cập nhật tiến độ dự án - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 4.20. Giao diện cập nhật tiến độ dự án (Trang 97)
Hình 4.21. Giao diện chỉnh sửa dự án - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 4.21. Giao diện chỉnh sửa dự án (Trang 98)
Hình 4.22. Giao diện Trang chủ của Admin - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 4.22. Giao diện Trang chủ của Admin (Trang 99)
Hình 4.28. Giao diện quản lý dự án – chi tiết – Admin - Nghiên cứu và xây dựng website hỗ trợ gây quỹ cộng đồng
Hình 4.28. Giao diện quản lý dự án – chi tiết – Admin (Trang 102)

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w