Thay vì huy động vốn thông qua các kênh trung gian truyền thống như ngân hàng, quỹ đầu tư mạo hiểm hay các nền tảng huy động vốn tập trung, QUCF cho phép các dự án kết nối trực tiếp với
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Viện Công nghệ thông tin và Truyền thông
BÁO CÁO BÀI TẬP LỚNBài tập lớn:
DApp quyên góp, từ thiệnQUCF
Môn: Project 1
Giảng viên hướng dẫn:Thầy Trần Nhật HóaSinh viên thực hiện:Đặng Đình Quý 20215466
Trang 2IV KẾT QUẢ ĐẠT ĐƯỢC 4
4.1 Giao diện của trang 4
4.2 Liệt kê tất các dự án 5
4.3 Tạo dự án mới 6
4.4 Giao diện chi tiết từng dự án 6
4.4 Chức năng đặt số ETH mà muốn gửi vào dự án 7
4.5 Chức năng chỉnh sửa thông tin dự án ( chỉ người khởi tạo dự án mới thấy) 8
4.6 Chức năng xóa dự án (nếu có sai sót và chỉ có thể là người khởi tạo dự án mới có quyềnxóa) 8
4.7 Hiển thị thông tin thống kê của những người tham gia đóng góp 9
4.8 Khi số tiền đã đủ sẽ tự đóng phần góp tiền và trở về trạng thái đã chuyển tiền cho ngườikhởi tạo dự án 9
V KIẾN THỨC ĐÃ HỌC ĐƯỢC VÀ SỰ PHÁT TRIỂN 10
5.1 Lập Trình và Framework: 10
5.2 Thuật Toán và thư viện: 10
VI KẾT LUẬN 10
Trang 3I GIỚI THIỆU DỰ ÁN
Dapp QUCF là một mô hình huy động vốn mới nổi dựa trên công nghệ
blockchain Thay vì huy động vốn thông qua các kênh trung gian truyền thống như ngân hàng, quỹ đầu tư mạo hiểm hay các nền tảng huy động vốn tập trung, QUCF cho phép các dự án kết nối trực tiếp với các nhà đầu tư cá nhân ở mọi nơi thế giới thông qua nền tảng blockchain, tạo ra một hệ thống minh bạch, an toàn và hiệu quả hơn.
1.1 Bài Toán
Với mong muốn tạo ra một nền tảng đơn giản để mọi người dễ dàng sử dụng • Có thể tạo nhiều sự kiện, tự xử lý chúng.
• Theo dõi tiến độ dự án một cách dễ dàng.
1.2 Mục Tiêu
• Tạo trải nghiệm người dùng thoải mái và dễ sử dụng • Quản lý các dự án hiệu quả.
• Bảo mật thông tin người dùng và thanh toán.
II CHỨC NĂNG CHÍNH
2.1 Các tác nhân trong hệ thống
Trang 4Tên tác nhânMô tả tác nhân
1 Người tạo dự án Người quản lý dự án mà họ tạo trên hệ thống 2 Người tham gia Người sử dụng hệ thống sau khi đăng nhập thành
ủng hộ công
3 Khách Người sử dụng hệ thống khi chưa đăng nhập
2.2 Các chức năng cụ thể
• Đăng nhập vào trang web bằng ví Metamask.
• Quản lý dự án (thêm sửa xóa), hiện thị thông tin tiến độ của dự án • Theo dõi từng người tham gia ủng hộ cho dự án.
Trang 52.3 Đăng nhập vào hệ thống
• Đăng nhập: Người dùng không cần đăng ký, chỉ đơn giản click vào nút “Connect Wallet” và đồng ý cho phép kết nối ví Metamask của họ với
2.5 Theo dõi từng người tham gia ủng hộ cho dự án
• Truy cập vào từng dự án để xem chi tiết địa chỉ, số lượng (ETH), thời gian … của những người tham gia quyên góp.
III CÔNG NGHỆ SỬ DỤNG
Trang 6Dự án sử dụng một loạt công nghệ để đảm bảo tính ổn định, hiệu suất và bảo mật của trang web, bao gồm:
• Ngôn ngữ lập trình: Javascript ( tạo giao diện, tương tác với giao diện), Solidity (tạo hợp đồng thông minh).
• Framework cho giao diện: ReactJs • Thư viện: Tailwind CSS
• Môi trường phát triển & deploy contract: Hardhat • Framework cho tương tác với smartcontract: Ether.Js
IV KẾT QUẢ ĐẠT ĐƯỢC4.1 Giao diện của trang
- Nếu chưa có ví thì sẽ hiển thị thông báo yêu cầu người dùng tải ví về
Trang 7- Sau khi tải và kết nối thì ta có giao diện như sau
4.2 Liệt kê tất các dự án
Trang 8- Click load more để xem được nhiều dự án hơn
Trang 94.3 Tạo dự án mới
Khi nhấn Submit thì ví sẽ yêu cầu người tạo dự án xác nhận hoặc từ chối
4.4 Giao diện chi tiết từng dự án
Trang 10- Cả người tạo dự án hay những người khác đều có thể xem chi tiết dự án khi click vào dự án bất kỳ, và chỉ có người tạo dự án mới có thể thấy phần Edit và Delete dự án
Trang 114.4 Chức năng đặt số ETH mà muốn gửi vào dự án
- Có thể đặt số lượng ETH tùy ý mà người dùng muốn quyên góp
- Nếu đặt nhiều hơn số lượng ETH cần thiết thì hệ thống cũng vẫn sẽ tự đóng luôn và không hoàn lại cho họ ( vì ETH rất đắt nên khả năng nhầm là ít ) nên tổng số họ quyên góp vẫn sẽ chuyển thẳng vào ví của người khởi tạo
Trang 124.5 Chức năng chỉnh sửa thông tin dự án ( chỉ người khởi tạo dự án mớithấy)
-Người khởi tạo dự án có thể tự do sửa lại thông tin của dự án y như lúc tạo dự
án mới.
4.6 Chức năng xóa dự án (nếu có sai sót và chỉ có thể là người khởi tạo dựán mới có quyền xóa)
Trang 13Sau khi xóa sẽ có trạng thái như sau
4.7 Hiển thị thông tin thống kê của những người tham gia đóng góp
- Cứ sau khi có một người đóng góp thì sẽ lại tăng thêm 1 người vào trong bảng thống kệ và thêm ngay ở trên đầu
4.8 Khi số tiền đã đủ sẽ tự đóng phần góp tiền và trở về trạng thái đãchuyển tiền cho người khởi tạo dự án
Trang 14- Nếu quá hạn thời gian dự án tồn tại mà người dùng vẫn gửi tiền vào thì contract sẽ tự gửi lại số ETH cho người quyên góp mà họ đã đặt vào dự án
Trang 15V KIẾN THỨC ĐÃ HỌC ĐƯỢC VÀ SỰ PHÁT TRIỂN
5.1 Lập Trình và Framework:
• Sử dụng Javascript và học thêm được Reactjs cơ bản để xây dựng Dapp • Học được thêm về cách dùng Tailwind CSS, tiết kiệm được thời gian
• Sử dụng Solidity để viết Smartcontract.
• Sử dụng Hardhat để tạo môi trường Blockchain chạy cục bộ cho Dapp • Sử dụng Etherjs để tương tác với Smartcontract.
5.2 Thuật Toán và thư viện:
• Áp dụng các cách dùng đối với mảng, đối tượng để xử lý dữ liệu • Sử dụng các hàm và thuật toán để cắt chuỗi
• Sử dụng các thư viện trong javascript
Hiện tại thì dự án vẫn rất là sơ sài, và có thể có sai sót ở đâu đó như: • Phần giao diện quá đơn giản.
• Bố cục chưa được đẹp mắt và thô sơ.
Trang 16• Các chức năng và tính năng còn ít.
Vì thế, nên tương lai dự án này vẫn có thể phát triển với giao diện đẹp hơn, thêm nhiều các tính năng hơn để phục vụ cho nhu cầu người tham gia một cách tốt nhất.
VI KẾT LUẬN
- Nhìn chung, Dapp này là một giải pháp thay thế đầy hứa hẹn cho các dự án đổi mới nhằm đảm bảo nguồn vốn đồng thời mang lại sự thuận tiện cho các nhà đầu tư và người đóng góp Nếu áp dụng được trong thực tế, nó sẽ giúp giải quyết được rất nhiều vấn đề như chuyển tiền, quyên góp đa quốc gia, kêu gọi được các nhà hảo tâm mà không cần tốn công sức Vì vậy, đây cũng là vấn đề chung để tiếp tục phát triển mở rộng thêm trong lĩnh vực này.