DefiFundr is a decentralized crowdfunding platform built on the Ethereum blockchain. It allows users to create and contribute to crowdfunding campaigns, and allows campaign creators to set a funding goal and deadline. If the funding goal is met before the deadline, the campaign is successful and the funds are released to the campaign creator. If the funding goal is not met before the deadline, the campaign is unsuccessful and the funds are returned to the contributors.
- Flutter SDK
- Android Studio / Xcode
- Golang (for running the local blockchain)
- Ganache (for running the local blockchain)
- Metamask (for interacting with the blockchain)
- Solidity (for writing smart contracts)
The project is structured using the Clean Architecture pattern, which separates the code into different layers based on their responsibilities. The layers are as follows: - Presentation Layer: This layer contains the UI code, including widgets, screens, and navigation. - Domain Layer: This layer contains the business logic of the application, including use cases, entities, and repositories. - Data Layer: This layer contains the data sources of the application, including local and remote data sources.
make clean
This command will remove the build folder and the .dart_tool folder.
make build
This command will build the project.
make run
Generate all freezed files and generated files
make gen
flutter clean
This command will remove the build folder and the .dart_tool folder.
flutter build apk
This command will build the project.
flutter run
Generate all freezed files and generated files
flutter pub run build_runner build
flutter test
This command will run all the tests in the test folder.
flutter test --coverage
This command will run all the tests using the makefile
make test
- Create a new campaign
- Contribute to an existing campaign
- View all campaigns
- View a single campaign
- View the current balance of a campaign
- View the total amount raised by a campaign
- View the total number of contributors to a campaign
- View the deadline of a campaign
- View the funding goal of a campaign
- View the status of a campaign (successful or unsuccessful)
- View the creator of a campaign
- View the contributors to a campaign
- View the amount contributed by a contributor to a campaign
- View the total amount contributed by a contributor to all campaigns
- Change avatar image
- Biometrics authentication
- Otp authentication
- Email authentication
- Password authentication