algorandfoundation / grow-algorand

Grow Algorand and Earn ALGOs ❤️
90 stars 33 forks source link

Code Solutions And Tutorials for the Algorand Developer Portal [+1500 ALGO For Winner] (11 October - 22 November) #104

Closed michielmulders closed 2 years ago

michielmulders commented 2 years ago

Overview

This bounty runs from October 11, 2021 to November 22, 2021 The Community Vote will begin on November 29, 2021

What is this task?

Create a Solution or a Tutorial using Algorand’s technology that will be published on the Algorand Developer Portal. We are looking for more advanced tutorials or solutions that illustrate Reach.sh or (Py)teal smart contract development, testing contracts, etc. We aren't interested in basic tutorials illustrating how to handle payments or assets.

Please submit an outline about your article first!

Solutions A solution should demonstrate a substantial end-to-end code example or prototype of an application in an open source GitHub repository. It should be accompanied by an explanation that provides a broader real-world context and use cases for the solution.

Tutorials Tutorials outline a specific learning goal, set context for why it is important, and then take the developer step-by-step through the process to accomplish that goal.

Deliverable

What are the requirements for the bounty taker?

They must be an experienced programmer who can write clear and informative guides or explanations (depending on the post type) in English or Mandarin Chinese.

Judging Criteria and Metrics

The Algorand team will choose up to 8 submissions per month to be published. The following criteria will be used:

Submission Procedure

Submit your blog post following these steps:

  1. Submit your completed Github Repository to Gitcoin
  2. Sign Up or Log In onto the Algorand Developer Portal.
  3. Create a new publication, of type "Tutorial" or "Solution" on the Algorand Developer Portal.
  4. Draft your publication and "Submit for Review".
  5. Provide your Gitcoin bounty project page link in the comment section of the submitted draft page.
  6. Work with the Dev Rel team to edit and finalize the submission.
  7. For more synchronized communication, provide a discord username in the comment section.

Community Vote Winner

At one week after the end of the bounty, the tasks that were published through this bounty will be posted to the Algorand Community Forum as part of a vote that will last a week. The winner of this vote will receive an extra 1500 ALGO tokens.

Community Vote Date

November 29, 2021 - December 3, 2021

Other Requirements

gitcoinbot commented 2 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 550.0 ALGO (957.0 USD @ $1.74/ALGO) attached to it as part of the algorandfoundation fund.

gitcoinbot commented 2 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 5 months ago. Please review their action plans below:

1) camilledubois has been approved to start work.

Hi there, I've been slowly learning about Algorand, TEAL, consuming dev office hours on YouTube. I would like to write a document that guides developers on the best path and resources to learn about Algorand, L1 features, TEAL dev, etc. The goal of this article is to share my experience and to help other to optimise the learning process while linking the most valuable resources, such as specific moments in dev office hours or community calls. Happy to get started if you find this helpful? Thanks! 2) murasame233 has been approved to start work.

I builded a crowdfunding on Algorand. I will redo the dev process, and this time will focus on the details of the implementation and the problem solved on the dev, like how to combine stateful contract and stateless contract, correct way to store address on state and so on. The most important of my tutorial is make reader can know how to solve some tricky problem. 3) eadlam has been approved to start work.

I'd like to create a solution/tutorial for configuration-based provisioning of local private networks, accounts/wallets, and smart contracts using cuelang. I think a configuration-based approach will make it much easier for developers to manage and share their environments for testing smart contracts and dApps. 4) kevinwarrendev has been approved to start work.

I am building a desktop app which runs natively in SuperCollider (Audio Synthesis Server/Language). I struggled to find documentation regarding a simple way to connect a desktop app written in an uncommon language to either mobile or hardware wallets. My submission will:

  1. Point developers towards the resources they would need to implement the walletconnect/ledger protocols from scratch.
  2. Present my quicker solution of building a transaction daemon in <Python/TypeScript>. This process is initiated via shell command and communicates with the main application via UDP/TCP.

This will create a bridge for a great number of creative folks working in domain-specific scripting languages like SuperCollider, Processing.js, Max/MSP, PureData, R, and more to start building functional dApps on Algorand. 5) gconnect has been approved to start work.

I have been doing some study around Reach. I would like to create a tutorial on how to interact with the Reach frontend using React to connect to MyAlgo wallet for performing and signing transactions as well as integrating your DApps with the AlgoSigner web extension for signing transactions. Thereby Giving developers preference how which wallet to integrate on their DApp and how to go about it. 6) fionnachan has been approved to start work.

Oops sorry, I wanted to submit work but stopped work instead. 7) damees has applied to start work _(Funders only: approve worker | reject worker)_.

Hello, The goal of a blockchain Oracle is to provide access to offchain data. Smart contracts cannot directly access to external API providing services (like a Restful API). I want to demonstrate how to combine Pyteal Smart Contract and a Java Application to implement an Oracle on Algorand. 8) 3dlifee has been approved to start work.

The objective of this tutorial is to teach how to create a decentralized application using the Reach platform. Through a backend consensus network like Algorand, we will allow this game to transfer, receive value in the form of network-specific tokens, like ALGO.

Learn more on the Gitcoin Issue Details page.

michielmulders commented 2 years ago

@pfed-prog Can you clarify here what you want to write about? I can't approve an article without knowing the subject. Thanks for understanding.

Pfed-prog commented 2 years ago

@michielmulders I am still researching the platform, but currently the basic idea is the creation of trading algorithm connected to machine learning model.

michielmulders commented 2 years ago

@Pfed-prog Hi Pavel, take your time learning more about Algorand. Once you have a detailed idea about your solution, ping me here with your idea/project so I can provide you with feedback. Looking forward :)

gitcoinbot commented 2 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 550.0 ALGO (995.5 USD @ $1.81/ALGO) has been submitted by:


michielmulders commented 2 years ago

@dispa1r I've rejected your application for now. Once you are in the hackathon and you have a better idea what you want to write about, please apply with an outline (what you want to talk about/teach, why this matters, and some headings + descriptions). This would be helpful to evaluate! You can reapply once you have this info :) Thanks!

michielmulders commented 2 years ago

@camilledubois We are happy to get your feedback in writing. We are trying to compile developer feedback, would it be possible to submit the article within a week? No rush, but it would be nice to have it by the end of next week. Thanks!

michielmulders commented 2 years ago

@d-mastrocola Sorry for rejecting, it's a basic use case that's already shown by others.

michielmulders commented 2 years ago

Feel free to submit alternative ideas tho!

michielmulders commented 2 years ago

@murasame233 Very much interested in:

I will redo the dev process, and this time will focus on the details of the implementation and the problem solved on the dev, like how to combine stateful contract and stateless contract, correct way to store address on state and so on. The most important of my tutorial is make reader can know how to solve some tricky problem.

You will do this in TEAL, right?

Murasame233 commented 2 years ago

@Murasame233 Very much interested in:

I will redo the dev process, and this time will focus on the details of the implementation and the problem solved on the dev, like how to combine stateful contract and stateless contract, correct way to store address on state and so on. The most important of my tutorial is make reader can know how to solve some tricky problem.

You will do this in TEAL, right?

Actually, I will do this in PyTeal. But not just PyTeal, I will make a frontend that show reader how to use sdk and connect with wallet.

michielmulders commented 2 years ago

@Murasame233 Sounds good!

gitcoinbot commented 2 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 550.0 ALGO (990.00 USD @ $1.84/ALGO) has been submitted by:

  1. @squazher

@michielmulders please take a look at the submitted work:


camilledubois commented 2 years ago

@michielmulders Was able to submit it a little bit later than expected, I hope that's ok?

To add to my blog post, here's some general feedback about learning Algorand development:

  1. When starting with Algorand development, it feels very overwhelming. Information is all over the place. You can find a lot of good information in the developer office hours but it took me some time to figure out these resources existed (I found them via Twitter). Also, the solutions/tutorials are pretty helpful in finding resources.
  2. It's hard to get started with TEAL or PyTEAL development. A few months ago, few examples existed (read useful examples) and it was not easy to learn TEAL. PyTEAL is often pushed but I think that TEAL also serves an important purpose. As explained in the article, PyTEAL is useful for quickly writing simple logic/conditions but not so useful for more complex logic. On top of that, not everyone is familiar with Python. TEAL looks very hard in the beginning (and it is), but once you understand the concept of the stack, it's much easier to write code in TEAL. Still, development in TEAL is slow but I like the freedom the language gives.
  3. I think there's lack of education on security resources. There's a list of best practices but there should be more resources that outline the effects of these best practices. Also, more TEAL and PyTEAL resources in general would help a lot!
  4. I miss information about using the teal debugger, like how to add an account state or application state to the debugger to debug more complex programs.

With the documentation update, much more info is available for smart contract development. Kudos on that! Happy to provide more info when requested (via Discord) 💯

Pfed-prog commented 2 years ago

@michielmulders I have gathered further information and would like to create a solution in React that would interact with Machine Learning model as in https://dev.to/omrigm/run-machine-learning-models-in-your-browser-with-tensorflow-js-reactjs-48pe. The application would also access data to assist users in issuing standard and more exotic financial instruments.

michielmulders commented 2 years ago

@Pfed-prog Can you explain how this makes use of Algorand technology? Does it use payments, smart contracts, or indexer data?

Pfed-prog commented 2 years ago

@michielmulders Yes, indexer data to assess the credibility of the issuer. Smart contracts to decentralize and eliminate the broker. I am also interested in implementing a contract akin to collateralized debt that would use Nfts as collateral. Would also use ML to value the NFT.

michielmulders commented 2 years ago

@Pfed-prog I'm a bit confused here. What kind of standard financial instruments are we talking about here? And how does Algorand data help with verifying the credibility of the issues? I also don't understand who/what is the broker here? Can you provide a more detailed description of your solution?

Pfed-prog commented 2 years ago

@michielmulders Issuance of Debt. Algogrand Data can assist in verifying the history of transactions. The broker is usually the agent that verifies the data. Instead of the broker in this instance there is an automatic system that takes the inputs and decides whether seller can be trusted or not. https://www.pwc.com/gx/en/audit-services/ifrs/publications/ifrs-9/ifrs-9-understanding-the-basics.pdf

Pfed-prog commented 2 years ago

Indexer data can provide determinants of the available collateral and history of income that can be loaned against. Meahwhile the NFTs can be assessed separately. For instance, the owner of the NFT can create a contract that sells the right to the future value appreciation. In real world the contracts can be even more complicated with various timeframes and contract obligations. That is why these financial instruments are usually called standard.

michielmulders commented 2 years ago

Ok sounds good, let's give it a try! Make sure to document all steps and write them down for the article so other developers understand how to replicate this application and how it works. You can submit the code + blog via the developer portal (make an account here: developer.algorand.org) Thanks!

michielmulders commented 2 years ago

@kevinwarrendev Can you elaborate further on what you want to build? If you are using a different language, you can use the API to interact with the algod or indexer REST API?

How would you connect Processing.js with Algorand? Looking forward to your reply!

damees commented 2 years ago

Hello @michielmulders, I may be late, but I have been testing my application to make sure I could successfully create an oracle that can bring offchain data to smart contracts. I also worked on a way to onboard new user and make sure the system is accessible to whitelisted users only. Can I still apply? I will try to publish the documentation today.

damees commented 2 years ago

Hello @michielmulders I just finished the tutorial, but kept it as a draft. I also wait for your approval to submit the complete github repository. The project is an Oracle for Algorand blockchain. It uses Pyteal smart contract, Indexer and a Java application to demonstrate how to feed Algorand smart contract with real world data provided by official and trusted third party. One use case could be for a smart contract to check if a fiat settlement has occured before transfering Token to an account.

michielmulders commented 2 years ago

@damees can you submit the link to the developer portal with your blog here: https://gitcoin.co/issue/algorandfoundation/grow-algorand/82/100026182 and make sure to make a comment on the submission that links your GH repository? Fits under this bounty instead the generic one here.

damees commented 2 years ago

Hello @michielmulders I just submitted my work, but it looks like I sent the link to the github repository in the submission instead of the blog post. I couldn't find a link to edit my submission so I here is the blog link: https://developer.algorand.org/solutions/oracle-for-algorand-smart-sontracts/ Thanks!

michielmulders commented 2 years ago

@damees Ok thank you, recorded it! Expect a little longer wait time to review all content + community vote because we are hosting a big Algorand event which has delayed content reviews, sorry for that!

gitcoinbot commented 2 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 550.0 ALGO (814.00 USD @ $1.48/ALGO) attached to this issue has been approved & issued to @fionnachan.

Pfed-prog commented 2 years ago

Got a post update/edit request only a week ago. Will definitely make the requested edits. @michielmulders could you, please, tell if it will qualify for any payouts? Would really like to make a proper project that would involve better app that connects to Python and NextJS. Python appeared a lot easier to implement Ml in then in plain JS.

michielmulders commented 2 years ago

@Pfed-prog Hi Pavel, yes, definitely! You can submit on developer portal and link to the Gitcoin bounty in the comments section of the dev portal tutorial submission (although the bounty is expired). Also, please include your wallet address and country of residence to handle payments. Thanks!

Pfed-prog commented 2 years ago

@michielmulders Hi Michiel, really great that an article got published https://developer.algorand.org/solutions/artificial-intelligence-on-algorand/. Had to completely rewrite two initial drafts. Would be great to make also an explanation on Pyteal contracts. A lot of time has definitely passed since the initial application, could you tell me whether i qualified for the payment.