-
Notifications
You must be signed in to change notification settings - Fork 526
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
51 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Milestone Delivery :mailbox: | ||
|
||
**The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** | ||
|
||
* **Application Document:** [AgriDot.md](https://github.com/w3f/Grants-Program/blob/master/applications/AgriDot.md) | ||
* **Milestone Number:** 1 | ||
|
||
**Context** | ||
|
||
Milestone has introduced the first Web3 application for farmers on the Polkadot network. This platform allows farmers to closely track weather conditions on their fields and verify the origin of their crops using blockchain technology. It also creates a space where farmers can share pest reports, exchange knowledge, and support one another, building a strong and connected farming community. All this is done by utilizing the power of the Polkadot blockchain. | ||
|
||
**Deliverables** | ||
| Number | Deliverable | Link | Notes | | ||
| ------------- | ------------- | ------------- |------------- | | ||
| 0a. | License |[APP MIT](https://github.com/kacena123/AgriDot/blob/main/LICENSE), [BE MIT](https://github.com/kacena123/agridot-backend/blob/main/LICENSE), [DOCS MIT](https://github.com/kacena123/agridot-docs/blob/main/LICENSE)| MIT| | ||
| 0b. | Documentation |[AgriDot Mobile dAPP Readme](https://github.com/kacena123/AgriDot/blob/main/README.md), [AgriDot Backend readme](https://github.com/kacena123/agridot-backend/blob/main/README.md), [Official documentation link](https://kacena123.github.io/agridot-docs/)| Comprehensive documentation in Readme and in Official documentation | | ||
| 0c. | Testing guide | [BE Unit tests guide](https://github.com/kacena123/agridot-backend?tab=readme-ov-file#run-tests), [AgriDot dAPP Unit tests guide](https://github.com/kacena123/AgriDot?tab=readme-ov-file#other-commands) | Core unit tests covering Mobile dAPP and Server | | ||
| 0d. | Docker | [Dockerfile AgriDot dAPP](https://github.com/kacena123/AgriDot/blob/main/Dockerfile), [Dockerfile Agridot BE](https://github.com/kacena123/agridot-backend/blob/main/Dockerfile) | Docker file provided to test the functionality of the solution | | ||
| 0e. | Article | [AgriDot - Revolutionary Web3 mobile dApp for Farmers](https://medium.com/@valova.katarin/5e4a886c1604) | Comprehensive article summing up AgriDot's contribution to the state-of-the-art approach in agriculture. | | ||
| 1.a | Fields as NFTs (Private) | [Private fields feature commit](https://github.com/kacena123/AgriDot/commit/c54553b96181ed2a46c53c8c3073c5fe1c4c257a), [Fields final v1](https://github.com/kacena123/AgriDot/commit/50260f847e94f37a194868d6896969bbb4568c15), [Fields final v2](https://github.com/kacena123/AgriDot/commit/ad6fe12ed44473a63f24389fbba4b58cf2709ae6)| Fields are represented as Collections (And crops as NFTs). The private fields have a name, location, image, and image type encrypted by a password chosen by the user (So no one other than the farmers's AgriDot dApp is able to decrypt it. | | ||
| 1.b | Fields as NFTs (Public) | [Public fields feature commit](https://github.com/kacena123/AgriDot/commit/c54553b96181ed2a46c53c8c3073c5fe1c4c257a), [Fields final v1](https://github.com/kacena123/AgriDot/commit/50260f847e94f37a194868d6896969bbb4568c15), [Fields final v2](https://github.com/kacena123/AgriDot/commit/ad6fe12ed44473a63f24389fbba4b58cf2709ae6) | Fields are represented as Collections (And crops as NFTs). Public fields have their Name, location and images available publicly, meaning all the indexers are able to display them (Their metadata is uploaded in a standard format understood by the indexers). | | ||
| 1.c | See the weather for your NFT fields | [Weather field monitoring feature commit](https://github.com/kacena123/AgriDot/commit/ca482d19104931bc3c78b076a1053bb0cc7dce43), [Weather v2 commit](https://github.com/kacena123/AgriDot/commit/3018f2c0357c28ee617449274d18ce9779957599), [Weather final](https://github.com/kacena123/AgriDot/commit/ad6fe12ed44473a63f24389fbba4b58cf2709ae6) | Every field is able to display weather in hourly intervals and daily intervals (One week in advance) | | ||
| 2.a | Pests as NFTs | [Pests v1 commit](https://github.com/kacena123/AgriDot/commit/079be259edf1b6ec9ec46769dd2f857f0f8b8832), [Pests v2 commit](https://github.com/kacena123/AgriDot/commit/a6add3b95b53fed7c06d27f5d30434aab11210d3), [Pests v3 commit](https://github.com/kacena123/AgriDot/commit/a929a7db63ad1d9b8992a878b3ea2cf334d230ce), [Pests BE commit](https://github.com/kacena123/agridot-backend/commit/2dec6512d361d5c4d76b86bc463b0cd672b29988), [Pest v4 commit](https://github.com/kacena123/AgriDot/commit/0d2778819fda23be5549ee4754c48fa04ff3ff10), [Pest final commit](https://github.com/kacena123/AgriDot/commit/b50725419536ac1cffcb0156b63dddf52cd065a5) | When a pest is discovered in a farmer's field, they can choose to create a pest report. This report will work as a warning for other farmers that there may be pests near their fields (They can display pests near their fields up to the custom range they choose). Pests are represented as NFTs in the unified collection owned by AgriDot (So we can moderate false pest reports). The encryption of the location happens on the server, and the server retrieves only the distance from the fields - so there is no concrete location only distance. The server calculates this distance. | | ||
| 2.b | Donation system for Pest reporters | [Donation feature commit v1](https://github.com/kacena123/AgriDot/commit/a929a7db63ad1d9b8992a878b3ea2cf334d230ce) | Farmers can incentivize other farmers by giving donations to the Farmers that report pests if their reports are useful. Reports like these can often save lots of crops. | | ||
| 3.a | Guides as NFTs | [Guides v1 commit](https://github.com/kacena123/AgriDot/commit/248413676f6e75612947c76d7e4d992edefa77f4), [Guides v2 commit](https://github.com/kacena123/AgriDot/commit/5fcf1543b4d3b994d7b9990d6a57879ad0d1c81f), [Guides v3 commit](https://github.com/kacena123/AgriDot/commit/d11d37a677dcd4795ea9174bda28476b67471ae1), [Guides BE commit](https://github.com/kacena123/agridot-backend/commit/2dec6512d361d5c4d76b86bc463b0cd672b29988), [Guides v4 commit](https://github.com/kacena123/AgriDot/commit/9a6324f64a8e0ce98ea594223ca6b414f924f0e6), [Guides final commit](https://github.com/kacena123/AgriDot/commit/60943dde034af7a67cbe6c7e229f88d9963481ac) | Farmers can create useful guides for other farmers. These guides are also created in a shared collection owned by AgriDot so we can moderate false guides. | | ||
| 3.b | Rating and donation system for Guides | [Donation feature commit v1](https://github.com/kacena123/AgriDot/commit/a929a7db63ad1d9b8992a878b3ea2cf334d230ce) | Same as with pests, Farmers can incentivize other farmers by giving donations to the Farmers who create guides if their guides are useful. Guides and tips like these can often save lots of money in repairs or maintenance or prevent DIY faults. Each tip yields new Likes to the guide, and the best-rated guides are sorted at the top. | | ||
| 4. | Crop origin proofs | [Crops feature commit](https://github.com/kacena123/AgriDot/commit/c54553b96181ed2a46c53c8c3073c5fe1c4c257a), [Crops feature commit final](https://github.com/kacena123/AgriDot/commit/24793da52b46c70e247d96ac12b9920b90165c43) | Each field can have crops (NFTs) that would help farmer keep logs of their crops and also create a proof of crop origins. If the field is private, the crop is also created with encryption of everything, so only the farmers' AgriDot dApp can decrypt the data. | | ||
| 5.a | Comprehensive documentation I | [Link to the documentation section](https://kacena123.github.io/agridot-docs/dev-guide/introduction.html), [Link to the commit adding the dev section](https://github.com/kacena123/agridot-docs/commit/3c364f52fd9b35c8274069f0d065ecf061a93abf) | This part of the documentation is meant for developers. It guides them through setting up the application for local development. | | ||
| 5.b | Comprehensive documentation II | [Link to the documentation section](https://kacena123.github.io/agridot-docs/user-guide/intro.html), [Link to the commit adding the user section](https://github.com/kacena123/agridot-docs/commit/31b1f28f094f5a891605fd56a73dbd9421069fe3), [Commit adding Video guide](https://github.com/kacena123/agridot-docs/commit/33b724328bc69cc3b6149eaaab7051537088d458) | The second part of the documentation is meant to show users how to work with the application, how to create a wallet and how to get the currency that AgriDot uses (KSM) into it. | | ||
|
||
**Additional Information** | ||
|
||
We have created a video guide for users on how to use AgriDot - [link](https://www.youtube.com/watch?v=3khnW3acfJk). It is also added to the official documentation. | ||
|
||
**The structure of the application consists of:** | ||
|
||
- [AgriDot repository](https://github.com/kacena123/AgriDot) - Mobile dAPP repository | ||
- [Agridot backend](https://github.com/kacena123/agridot-backend) - Server responsible for creating guides | ||
- [AgriDot documentation](https://github.com/kacena123/agridot-docs) - Official documentation for both Users and Developers | ||
|
||
**Design decisions made during implementation:** | ||
|
||
We specifically went for mnemonic login instead of wallet connect to ease the user's interaction with the dApp (Once the user is logged in with the mnemonic, they are logged until they log out - so no need to re-enter the phrase every time). We wanted to make it as simple as possible for every farmer (Even less technical ones) to be able to interact with the application. (The only prerequisite is to have a wallet with the currency in it). Because of this decision, there is also no need to switch between applications (Between AgriDot and Wallet app), and everything can be done inside of AgriDot, which is convenient. The mnemonics are never sent anywhere or to the server. They are stored in expo secure storage on the device itself. They are also only accessible through user authentication - either a passcode or biometric entry (FaceID, Fingerprint scanner - whatever the device supports). | ||
|
||
**Notable achievement** | ||
|
||
The use of this application is not expensive at all. Each field, crop, pest report or guide creation costs less than 0.05$ on average. This creates a very viable option for farmers who wish to leverage their business to the Web3 world. | ||
|
||
**Other information** | ||
|
||
Every aspect of the project defined in the proposal was implemented according to it. No changes in plans were required. |