ĐẠ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
BÁO CÁO ĐỒ ÁN 1
WEB 3.0 HỖ TRỢ TỪ THIỆN
GVHD:
ThS. Huỳnh Tuấn Anh
Nhóm thực hiện:
Ngô Tấn Hoài – 19520086
Lâm Văn Hồng - 19520094
TP. HỒ CHÍ MINH, 2022
MỤC LỤC
Chương 1.
THÔNG TIN CHUNG.................................................................................6
1.1. Tên đề tài: Web 3.0 Hỗ trợ từ thiện .......................................................................6
1.2. Thông tin nhóm: .....................................................................................................6
Chương 2.
CÔNG NGHỆ .............................................................................................. 7
2.1. ReactJs ...................................................................................................................7
2.1.1.
ReactJs là gì? ............................................................................................... 7
2.1.2.
Lợi ích khi sử dụng ReactJs .........................................................................7
2.2. Spring Boot ............................................................................................................7
2.2.1.
Spring Boot là gì? ........................................................................................7
2.2.2.
Lợi ích khi sử dụng Spring Boot..................................................................8
2.3. MySQL...................................................................................................................8
2.3.1.
MySQL là gì?............................................................................................... 8
2.3.2.
Lợi ích khi sử dụng MySQL ........................................................................9
2.4. Figma .....................................................................................................................9
2.4.1.
Figma là gì? .................................................................................................9
2.4.2.
Lợi ích khi sử dụng Figma .........................................................................10
2.5. NodeJs ..................................................................................................................11
2.5.1.
NodeJs là gì? .............................................................................................. 11
2.5.2.
Lợi ích khi sử dụng NodeJs .......................................................................11
2.6. Mailtrap ................................................................................................................12
2.6.1.
Mailtrap là gì? ............................................................................................ 12
2.6.2.
Các tính năng nổi bật của Mailtrap ............................................................ 12
2.7. Hardhat .................................................................................................................12
2.7.1.
Hardhat là gì? ............................................................................................. 12
2.7.2.
Các tính năng nổi bật của Hardhat ............................................................. 13
2.8. Ethers.js ................................................................................................................13
2.8.1.
Ethers.js là gì? ............................................................................................ 13
2.8.2.
Các tính năng nổi bật của Ethers.js ............................................................ 13
2.9. Alchemy ...............................................................................................................14
2.9.1.
Alchemy là gì? ...........................................................................................14
2.9.2.
Alchemy Build là gì? .................................................................................14
Chương 3.
PHÁT BIỂU BÀI TOÁN ...........................................................................14
3.1. Khảo sát hiện trạng .............................................................................................. 14
3.2. Phát biểu bài toán .................................................................................................15
3.3. Yêu cầu ................................................................................................................15
3.3.1.
Yêu cầu chức năng .....................................................................................15
3.3.2.
Yêu cầu phi chức năng ...............................................................................25
Chương 4.
THIẾT KẾ CƠ SỞ DỮ LIỆU ....................................................................27
4.1. Sơ đồ ERD ...........................................................................................................27
4.2. Mô tả chi tiết ........................................................................................................27
4.2.1.
User ............................................................................................................27
4.2.2.
Verification_token .....................................................................................28
4.2.3.
Refresh_token ............................................................................................ 28
4.2.4.
Post.............................................................................................................29
4.2.5.
Image .........................................................................................................29
4.2.6.
Donation.....................................................................................................30
4.2.7.
Volunteer ...................................................................................................30
Chương 5.
USE CASE .................................................................................................31
5.1. Sơ đồ ....................................................................................................................31
5.2. Danh sách các Actor ............................................................................................ 32
5.3. Danh sách các Use-case .......................................................................................32
5.4. Đặc tả Use-case ....................................................................................................35
5.4.1.
Đặc tả Use-case “Đăng nhập” ....................................................................35
5.4.2.
Đặc tả Use-case “Thông tin tài khoản”......................................................36
5.4.3.
Đặc tả Use-case “Tạo tài khoản” ............................................................... 37
5.4.4.
Đặc tả Use-case “Các chương trình từ thiện” ............................................38
5.4.5.
Đặc tả Use-case “Chọn chương trình từ hiện để ủng hộ” ..........................39
5.4.6.
Đặc tả Use-case “Thanh toán bằng Crypto” ..............................................40
5.4.7.
Đặc tả Use-case “Lựa chọn thanh toán online” .........................................42
5.4.8.
Đặc tả Use-case “Đăng ký làm tình nguyện viên” ....................................43
5.4.9.
Đặc tả Use-case “Xem phân tích của từng chương trình” .........................43
5.4.10.
Đặc tả Use-case “Xem trang dashboard chi tiết”.......................................44
5.4.11.
Đặc tả Use-case “Xem tất cả các chương trình dưới quyền admin” .........45
5.4.12.
Đặc tả Use-case “Duyệt tình nguyện viên” ...............................................46
5.4.13.
Đặc tả Use-case “Lựa chọn thanh toán online” .........................................47
Chương 6.
THIẾT KẾ GIAO DIỆN ............................................................................48
6.1. Danh sách màn hình ............................................................................................. 48
6.2. Mô tả chi tiết từng màn hình ................................................................................49
6.2.1.
Màn hình chính ..........................................................................................49
6.2.2.
Màn hình danh sách chương trình từ thiện ................................................50
6.2.3.
Màn hình đăng ký tình nguyện viên ..........................................................51
6.2.4.
Màn hình trợ giúp ......................................................................................52
6.2.5.
Màn hình thông tin cá nhân .......................................................................53
6.2.6.
Màn hình đăng nhập ..................................................................................54
6.2.7.
Màn hình dashboard từng chương trình.....................................................55
6.2.8.
Màn hình tổng quan tất cả chương trình ....................................................56
6.2.9.
Màn hình người đóng góp..........................................................................57
6.2.10.
Màn hình nhập thông tin và thanh toán .....................................................59
Chương 7.
KẾT LUẬN................................................................................................ 60
7.1. Môi trường phát triển ...........................................................................................60
7.2. Môi trường triển khai ...........................................................................................60
7.3. Link đồ án ............................................................................................................60
7.4. Hướng phát triển: .................................................................................................60
7.5. Bảng phân công ....................................................................................................60
Chương 1. THÔNG TIN CHUNG
1.1.
Tên đề tài: Web 3.0 Hỗ trợ từ thiện
1.2.
Thông tin nhóm:
STT
MSSV
Họ và tên
Email
1
19520086
Ngô Tấn Hoài
[email protected]
2
19520094
Lâm Văn Hồng
[email protected]
Chương 2. CÔNG NGHỆ
2.1.
ReactJs
2.1.1. ReactJs là gì?
-
ReactJS là một opensource được phát triển bởi Facebook, ra mắt vào năm 2013,
bản thân nó là một thư viện Javascript được dùng để để xây dựng các tương tác
với các thành phần trên website. 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.
2.1.2. Lợi ích khi sử dụng ReactJs
-
ReactJS giúp cho việc viết các đoạn code Javascript sẽ trở nên dễ dàng hơn vì
nó sử dụng một cú pháp đặc biệt đó chính là cú pháp JSX. Thông qua JSX cho
phép nhúng code HTML và Javascript.
-
ReactJS cho phép Developer phá vỡ những cấu tạo UI phức tạp thành những
component độc lập. Dev sẽ không phải lo lắng về tổng thể ứng dụng web, giờ
đây Developer dễ dàng chia nhỏ các cấu trúc UI/UX phức tạp thành từng
component đơn giản hơn.
-
Đi kèm với ReactJS là rất nhiều các công cụ phát triển giúp cho việc debug
code một cách dễ dàng hơn.
-
Một trong những ưu điểm nữa của ReactJS đó là sự thân thiện với SEO. Hầu
như các JS Frameworks không thân thiện với các tìm kiếm mặc dù đã được cải
thiện nhiều nhưng dưới sự hỗ trợ của các render dữ liệu trả về dưới dạng web
page giúp cho SEO chuẩn hơn.
2.2.
Spring Boot
2.2.1. Spring Boot là gì?
-
Spring Boot là một mô-đun nằm trong Spring Framework nổi tiếng của Java.
Sự ra đời của nó năm 2014 tuy muộn so với các mô-đun khác nhưng là một
sáng kiến tuyệt vời của Spring Team, nó giúp giảm tải công việc cấu
hình(configuration) của các lập trình viên cho việc phát triển dự án.
-
Spring là toàn bộ hệ sinh thái để phát triển Java bao gồm một số lượng lớn các
mô-đun có sẵn như Spring MVC, Spring JDBC, Spring Security và các mô-đun
khác.
2.2.2. Lợi ích khi sử dụng Spring Boot
-
Sở hữu đầy đủ các tính năng của Spring Framework
-
Tạo ứng dụng một cách độc lập, có thể chạy trên cả nền tảng Java Web
-
Cho phép nhúng trực tiếp các web server như Jetty, Tomcat,… mà không cần
phải triển khai các file WAR.
-
Cung cấp nhiều plugin
-
Tối ưu hóa công đoạn cấu hình cho ứng dụng, không sinh ra code cấu hình và
nó cũng không yêu cầu người dùng phải cấu hình lại bằng XML. Từ đó, giúp
tiết kiệm thời gian viết code và tăng năng suất lao động.
-
Có thể đóng gói ứng dụng Spring dưới dạng là file JAR và có thể dễ dàng khởi
động ứng dụng chỉ với một câu lệnh ngắn gọn, quen thuộc: java – jar,…
-
Giảm thiểu thời gian phát triển code, tăng hiệu suất phát triển chung của cả dự
án.
-
Dễ dàng tích hợp các mô-đun liên quan như Sping-MVC, Spring Data, Spring
Sercurity, Spring Cloud,v.v…
-
Nó cung cấp các HTTPs servers như Tomcat, Jety,.. để phát triển, kiểm thử,
deploy một cách dễ dàng.
-
Cung cấp công cụ CLI(Command Line Interface) cho việc phát triển và test
ứng dụng nhanh chóng từ command line
-
Ngoài ra còn có nhiều plugins để phát triển nhanh chóng bằng các công cụ như
Build như Maven hoặc Gradle.
2.3.
MySQL
2.3.1. MySQL là gì?
-
Như đã đề cập ở bài viết trước về Database (cơ sở dữ liệu), các database được
lưu trữ và quản lý trong các hệ quản trị cơ sở dữ liệu, trong đó, MySQL là một
trong những hệ quản trị cơ sở dữ liệu – Database Management System
(DBMS).
-
MySQL là một phần mềm mã nguồn mở ưa chuộng hoàn toàn miễn phí và phổ
biến nhất thế giới. MySQL được phát triển, phân phối và hỗ trợ bởi Oracle
Corporation. Phần mềm được đặt tên theo tên của con gái người đồng sáng lập
Monty Widenius: My.
2.3.2. Lợi ích khi sử dụng MySQL
-
Là cơ sở dữ liệu tốc độ cao, ổn định
-
Độ bảo mật thông tin cao
-
Dễ sử dụng và có tính khả chuyển: tuy có tính năng cao nhưng thực sự,
MySQL là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp .
-
Có thể hoạt động trên nhiều hệ điều hành với lượng lớn các hàm tiện ích:
MySQL rất thích hợp cho các ứng dụng có truy cập cơ sở dữ liệu trên Internet.
MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32
cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD,
NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,..
-
Hoàn toàn miễn phí: Là một mã nguồn mở, MySQL sử dụng GNU General
Public License nên hoàn toàn miễn phí. Tuy nhiên,trong trường hợp bạn cần
được hỗ trợ từ MySQL, bạn vẫn phải trả phí.
-
Cộng đồng hỗ trợ : Vì lượng người dùng MySQL vô cùng lớn nên sự hỗ trợ từ
cộng đồng này cũng lớn theo. Khi trở thành một thành viên của cộng đồng
người dùng, bạn sẽ được mọi người trong cộng đồng tư vấn giải pháp họ biết
cho vấn đề bạn gặp phải.
2.4.
Figma
2.4.1. Figma là gì?
-
Figma là công cụ được ra mắt vào năm 2016, với giao diện thân thiện và tính dễ
sử dụng, Figma đã nhanh chóng nổi lên và trở thành một công cụ thiết kế giao
diện người dùng phổ biến trong cộng đồng công nghệ toàn cầu. Một số thương
hiệu lớn sử dụng Figma cho tới thời điểm hiện tại có thể kể đến như Microsoft,
Twitter, GitHub, Dropbox…Khác với những công cụ thiết kế trước đây, Figma
được thiết kế trên nền tảng đám mây. Đây là công cụ có tính năng tương tự như
Sketch, tuy nhiên nó hỗ trợ làm việc nhóm tốt hơn.
2.4.2. Lợi ích khi sử dụng Figma
-
Khả năng tương thích cao: Là một phần mềm trên nền tảng website, Figma có
thể được truy cập và sử dụng trên hầu hết các hệ điều hành phổ biến hiện nay
như Windows, MacOS hay thậm chí là Linux, chỉ cần thiết bị của bạn được kết
nối internet. Hiện tại, Figma còn có các phiên bản ứng dụng trên máy
tính và điện thoại để người dùng có thể sáng tạo hay theo dõi các dự án ở bất
cứ nơi đâu.
-
Tính cộng tác cao: Ưu điểm hàng đầu của Figma phải kể đến tính cộng tác
trong thời gian thực. Với Figma, làm việc nhóm từ xa trở nên dễ dàng khi nó
cho phép những người khác trong dự án có thể cộng tác về thiết kế, cung cấp
phản hồi, kiểm tra tiến độ công việc hoặc gắn cờ các vấn đề có thể xảy ra theo
thời gian thực.
-
Trang bị nhiều công cụ plugin mạnh mẽ: Kho plugin khổng lồ và cực kỳ hữu
ích chỉ có ở Figma sẽ giúp bạn khắc phục được những lỗi nhỏ và tăng hiệu suất
làm việc. Việc quản lý màu sắc, nội dung hình ảnh hay hoạt ảnh đều trở nên dễ
dàng hơn bao giờ hết.
-
Thiết kế nhiều layout trong một sản phẩm: Tính năng quản lý nhiều artboard
cùng lúc cũng được tích hợp trên Figma. Với tính năng này, bạn có thể sáng
tạo nhiều layout với các kích thước khác nhau trên cùng một sản phẩm mà
không cần phải tạo thêm tệp mới.
- Xuất được đa dạng file ảnh cực sắc nét: Tương tự
như Illustrator, Figma thiết kế hình ảnh dưới dạng vector nên chất lượng
của hình ảnh sẽ không bị giảm khi bạn thay đổi kích thước của chúng. Hình
ảnh xuất ra cũng sẽ giữ được độ sắc nét với nhiều định dạng khác nhau
như PNG, SVG, JPG hay thậm chí là PDF.
- Hỗ trợ lưu trữ đám mây: Figma sử dụng dịch vụ đám mây để lưu trữ và
chỉnh sửa dữ liệu, điều này tương tự như khi bạn thay đổi nội dung
trên Google Docs. Bạn sẽ không còn phải lo lắng về việc ổ cứng đầy dung
lượng hay quên sao lưu vì Figma sẽ tự động thực hiện cho bạn.
2.5.
NodeJs
2.5.1. NodeJs là gì?
-
Node.js là một nền tảng JavaScript cực kì mạnh mẽ được sử dụng để phát triển
ác ứng dụng chat online, các trang phát video trực tiếp, các ứng dụng một trang,
và rất nhiều ứng dụng web khác. Được xây dựng trên JavaScript V8 Engine của
Google Chrome, nó được sử dụng rộng rãi bởi cả các công ty lớn và các startup
mơi nổi (Netflix, Paypal, NASA, và Walmart).
-
Node.js có mã nguồn mở, hoàn toàn miễn phí và được hàng ngàn lập trình viên
trên thế giới sử dụng. Nó mang lại rất nhiều lợi ích so với các nền tảng phía máy
chủ khác như Java hoặc PHP.
2.5.2. Lợi ích khi sử dụng NodeJs
-
Ứng dụng Nodejs phần đông đều được viết bằng ngôn ngữ lập trình javascript một ngôn ngữ thông dụng, được sử dụng rộng rãi và chạy được trên nhiều trình
duyệt, nền tảng, hệ điều hành,...
-
Nodejs khá nhẹ nhưng lại hiệu quả nhờ vào cơ chế non-blocking I/O, chạy đa
nền tảng trên Server và dùng Event-driven.
-
Tương thích với nhiều thiết bị. Bạn có thể chạy các ứng dụng phát triển bởi
Nodejs trên bất cứ thiết bị nào, dù là Mac, Window, Linux,...
-
Cộng đồng Nodejs khá lớn và được cung cấp miễn phí cho người dùng.
-
Ứng dụng NodeJS có khả năng chạy đa nền tảng, thiết bị, đồng thời đáp ứng
được yêu cầu về thời gian thực.
-
Node.js có tốc độ cực kỳ nhanh, xử lý được nhu cầu sử dụng của lượng khách
truy cập ‘khổng lồ’ trong thời gian cực ngắn.
-
Ứng dụng phát triển bởi Node.js có khả năng xử lý nhiều yêu cầu truy cập cùng
lúc, ‘cứu’ website của bạn khỏi nguy cơ bị ‘sập’ khi lượng truy cập quá nhiều.
2.6.
Mailtrap
2.6.1. Mailtrap là gì?
-
Mailtrap cung cấp một máy chủ SMTP giả (fake SMTP server) dành cho đội ngũ
phát triển. Được sử dụng để test các emails được gửi từ các môi trường preproduction và môi trường test với dữ liệu thực tế mà vẫn tránh được nguy cơ gửi
thư rác (test email) tới các khách hàng thật của hệ thống cần test.
2.6.2. Các tính năng nổi bật của Mailtrap
-
Không bao giờ xảy ra việc spam mail các khách hàng thật bởi những sơ suất
của đội phát triển
-
Phân tích email cho spam và blacklist
-
Test HTML cho việc hỗ trợ bởi các common email clients
-
Mặc định bảo mật (HTTPS & TLS)
-
Cài đặt nhanh chóng và dễ dàng bằng cách dùng config code
-
Cải thiện RESTful & POP3 API autotests
-
Tự động Forward emails tới những người cần chúng
-
Sắp xếp các Email test vào hộp thư đặc biệt
-
Chia sẻ inboxes với team của bạn
2.7.
Hardhat
2.7.1. Hardhat là gì?
-
Hardhat cung cấp cho chúng ta một bộ tài liệu rất rõ ràng và được cấu trúc
rất tốt. Bạn có thể tìm thấy các hướng dẫn khác nhau về cách khởi động CLI
hardhat và sử dụng các chức năng cốt lõi của Hardhat rất hiệu quả. Mọi thứ
đã được sắp xếp gọn gàng và ngăn nắp để các developer bắt đầu hành trình
khám phá & phát triển các ứng dụng blockchain của riêng mình.
-
Ngoài ra, phần tốt nhất của tài liệu hardhat là họ đã cung cấp các hướng dẫn
cho các tác vụ và chức năng khác nhau có sẵn trong hardhat, cung cấp các
phương pháp hay nhất để cho các developer sử dụng, không phải mất thời
gian loay hoay. Vì vậy, nếu bạn là một lập trình viên mới và muốn đi sâu vào
phát triển blockchain, hardhat sẽ trở thành lựa chọn đầu tiên của bạn để bắt
đầu.
2.7.2. Các tính năng nổi bật của Hardhat
-
Tích hợp mạng local hardhat, dễ dàng chạy và debug code ngay trên local.
-
Debug dễ dàng hơn: Với Hardhat, chúng ta có thể debug code Solidity dễ
dàng hơn khi có thể console.log ra các biến (Solidity vốn ko hỗ trợ
console.log)
-
Hệ thống plugin: Giúp developer có thể bổ sung chức năng, tùy vào từng dự
án cụ thể
2.8.
Hỗ trợ TypeScript
Ethers.js
2.8.1. Ethers.js là gì?
-
Thư viện ethers.js nhằm mục đích trở thành một thư viện hoàn chỉnh và nhỏ
gọn để tương tác với Ethereum Blockchain và hệ sinh thái của nó. Ban đầu
nó được thiết kế để sử dụng với ethers.io và sau đó đã mở rộng thành một thư
viện có mục đích chung hơn.
2.8.2. Các tính năng nổi bật của Ethers.js
-
Giữ private key ở client một cách an toàn
-
Import và export JSON wallets
-
Import và export ví theo chuẩn BIP 39
-
Hỗ trợ ABI, ABIv2 và Human-Readable ABI
-
Kết nối với Ethereum nodes thông qua nhiều provider như JSON-RPC,
INFURA, Etherscan, Alchemy, Cloudflare, MetaMask ...
-
Hỗ trợ ENS
-
Nhẹ (88kb khi nén và 284kb khi không nén)
-
Hỗ trợ TypeScript
2.9.
Alchemy
2.9.1. Alchemy là gì?
-
Alchemy là một nền tảng nhà phát triển blockchain tập trung vào việc phát
triển Ethereum dễ dàng. Họ đã xây dựng một bộ công cụ dành cho nhà phát
triển, các API nâng cao và cơ sở hạ tầng node cao cấp để giúp việc xây dựng và
chạy các ứng dụng blockchain trở nên liền mạch.
-
Alchemy cung cấp nền tảng phát triển blockchain hàng đầu cung cấp năng
lượng cho hàng triệu người dùng ở 197 quốc gia trên toàn thế giới.
2.9.2. Alchemy Build là gì?
-
Bộ công cụ dành cho nhà phát triển không cần cấu hình để tạo mẫu, gỡ lỗi và
vận chuyển sản phẩm nhanh hơn
Chương 3. PHÁT BIỂU BÀI TOÁN
3.1.
-
Khảo sát hiện trạng
Hoạt động từ thiện xã hội là hoạt động nhân đạo, phù hợp với văn hóa, đạo đức
của nhân dân ta, nhằm góp phần giải quyết các khó khăn cho người nghèo, người
có hoàn cảnh đặc biệt khó khăn, các địa phương vùng sâu, vùng xa còn thiếu
thốn về điều kiện cơ sở hạ tầng, các điều kiện chăm lo về đời sống vật chất, tinh
thần của người dân, đặc biệt trong hoàn cảnh bị thiệt hại do thiên tai, dịch họa.
Sự đóng góp của các tổ chức, cá nhân trong thời gian qua ngoài giá trị bằng vật
chất to lớn, còn phản ảnh về mặt tinh thần thực hiện tốt công tác an sinh xã hội,
ổn định chính trị, bảo đảm an toàn xã hội, đồng thời truyền cảm hứng của lòng
yêu nước, sự đoàn kết thương yêu nhau trong nhân dân.
-
Tuy nhiên, vẫn còn một số cá nhân thực hiện công tác từ thiện xã hội không có
động cơ, mục đích trong sáng, đánh bóng tên tuổi, chưa có sự phối hợp chặt chẽ
với các tổ chức, đơn vị có chức năng, nhiệm vụ, trong đó cụ thể là các địa phương
có người dân cần được giúp đỡ. Hệ lụy của tình trạng này là nội bộ của người
dân giữa người được giúp đỡ, người chưa được giúp đỡ, người không có lý do
gì để được giúp đỡ, bị rạn nứt, tình làng nghĩa xóm bị nhạt phai. Ngay cả những
cá nhân tổ chức giúp đỡ trực tiếp cũng gặp không ít phiền toái về tính công khai
minh bạch, những khiếu nại của người dân về những điều có liên quan.
-
Cùng với sự phát triển của công nghệ và mạng internet, việc áp dụng công nghệ
thông tin vào công việc là rất cần thiết. Việc có một Website giúp những người
đang cần sự giúp đỡ và những người muốn quyên góp từ thiện dễ dàng kết nối
với nhau là hết sức cần thiết, đảm bảo được tính minh bạch và bảo mật hơn giữa
những người quyên góp và các chương trình từ thiện. Cùng với xu hướng phát
triển của Blockchain cũng như tiền mã hoá, việc tích hợp Blockchain vào website
để tăng tính bảo mật và giúp những người quyên góp có thể dùng tiền mã hoá
của mình để ủng hộ thay vì sử dụng tiền mặt cũng là hết sức cần thiết
3.2.
Phát biểu bài toán
Tầm nhìn
Áp dụng kiến thức về Blockchain vào xây dựng một website hỗ trợ từ thiện
Mục tiêu
Hướng tới một website giúp người cần sự hỗ trợ và người muốn quyên góp
từ thiện dễ dàng kết nối với nhau. Một website mà mọi thông tin và quyên
góp từ thiện đều được sao kê rõ ràng minh bạch, tạo độ tin cậy cao đối với
người dùng
Đối tượng
Người muốn kêu gọi từ thiện để ủng hộ cho một chương trình từ thiện cụ
thể nhưng không biết tổ chức kêu gọi như thế nào cho hiệu quả
Người muốn quyên góp tiền của mình cho những chương trình từ thiện,
người có hoàn cảnh khó khăn đang cần sự giúp đỡ
Người muốn trở thành tình nguyện viên giúp đỡ cho các chương trình, tổ
chức từ thiện
3.3.
Yêu cầu
3.3.1. Yêu cầu chức năng
3.3.1.1.
Chức năng đăng ký
Chức năng
Đăng ký
Mô tả
Tạo tài khoản cho người dùng
Mục đích
Tạo tài khoản dành riêng cho người dùng
Vấn đề
Không có
Giải pháp
Không có
Rủi ro
Không có
Ngoại lệ
Không có
Tiêu chí chấp nhận
Người dùng có email hoặc số điện thoại để kích hoạt tài
khoản
3.3.1.2.
Chức năng đăng nhập
Chức năng
Đăng nhập
Mô tả
Đăng nhập vào website
Mục đích
Để hệ thống xác thực được người dùng và giúp người dùng
thực hiện các tính năng của trang web
Vấn đề
Không có
Giải pháp
Không có
Rủi ro
Không có
Ngoại lệ
Không có
Tiêu chí chấp nhận
Người dùng đã đăng ký và kích hoạt tài khoản
3.3.1.3.
Chức năng chỉnh sửa thông tin cá nhân
Chức năng
Mô tả
Chỉnh sửa thông tin cá nhân
Người dùng vào “Tài khoản” và cập nhật lại các thông tin
như: họ tên, địa chỉ, mô tả
Mục đích
Chỉnh sửa và cập nhật các thông tin như: họ tên, địa chỉ, mô
tả
Vấn đề
Không có
Giải pháp
Không có
Rủi ro
Không có
Ngoại lệ
Không có
Tiêu chí chấp nhận
Người dùng đã đăng nhập vào hệ thống
3.3.1.4.
Chức năng đổi mật khẩu
Chức năng
Đổi mật khẩu
Người dùng nhập mật khẩu cũ và mật khẩu mới để đổi mật
Mô tả
khẩu
Mục đích
Cập nhật lại mật khẩu mới cho tài khoản
Vấn đề
Không có
Giải pháp
Không có
Rủi ro
Không có
Ngoại lệ
Không có
Tiêu chí chấp nhận
Người dùng đã đăng nhập vào hệ thống
3.3.1.5.
Chức năng
Chức năng xem bài viết
Xem bài viết
Người dùng chọn vào bài viết mình quan tâm để xem thông
Mô tả
tin chi tiết về chương trình
Cùng cấp thông tin về chương trình từ thiện đang hoạt động
Mục đích
cho người dùng
Vấn đề
Không có
Giải pháp
Không có
Rủi ro
Không có
Ngoại lệ
Không có
Tiêu chí chấp nhận
Không có
3.3.1.6.
Chức năng đăng ký tình nguyện viên
Chức năng
Mô tả
Đăng ký tình nguyện viên
Người dùng chọn “Đăng ký tình nguyện viên” và đợi quản
trị viên duyệt yêu cầu
Mục đích
Đăng ký trở thành tình nguyện viên cho chương trình từ
thiện
Vấn đề
Không có
Giải pháp
Không có
Rủi ro
Không có
Ngoại lệ
Không có
Tiêu chí chấp nhận
Người dùng đã đăng nhập vào hệ thống
3.3.1.7.
Chức năng quyên góp
Chức năng
Quyên góp
Người dùng nhập vào số tiền mình muốn quyên góp. Có thể
Mô tả
chuyển khoản bằng Credit Card, Viettel Pay, Momo hoặc
chuyển bằng đồng ETH qua ví Metamask
Giúp người dùng ủng hộ tiền của mình cho chương trình từ
Mục đích
thiện
Vấn đề
Không có
Giải pháp
Không có
Rủi ro
Không có
Ngoại lệ
Không có
Tiêu chí chấp nhận
Người dùng đã đăng nhập vào hệ thống
3.3.1.8.
Chức năng xem báo cáo