Open michielmulders opened 3 years ago
Specifically, you should code one out of three demo solutions:
Am I missing something or should that say "two demo solutions"?
@DragonDev1906 Sorry if that was not clear, updated the description now. We are looking for two people to code both each one solution. So, two people can have a successful bounty submission for this bounty. Let us know in the comments here which solution you'll be working on. We'll pick the best solutions and pay them out. I saw that you'll be working on option 1 the donation app. Good!
@theosch Can you start work on the second option for the balance check login form?
@TheOsch Can you start work on the second option for the balance check login form?
Of course.
Here is my feedback: Overall, I liked using Pipeline-UI, as the components (especially AlgoAddress, AlgoButton and AlgoSendButton) make it really easy to build a user interface for making transfers on Algorand.
Unfortunately it is currently not possible to use the testnet (unless you modify the Pipeline-UI source or change variables using breakpoints). This makes developing a bit more annoying, especially if you don't have some ALGO on mainnet already. I think it might be best to pass a network prop (or a setting in Pipeline.init) that changes txn.genesisID, txn.genesisHash and the algoexplorerapi.io urls. Ideally there would be a component (similar to AsaList) to select the network, perhaps even setting the flag in the Wallet/Pipeline Object directly instead of having to pass the network to every component.
While looking through the docs and using the components I noticed a few things:
p={0}
in order to use py={3} px={3}
, otherwise they have no effect.Warning: Failed prop type: Invalid prop `children` of type `array` supplied to `Field`, expected a single ReactElement.
During installation (after running create-react-app) I had to go back to an older react version (16.x.x), even though react 17.0.0 was released in October. I don't know if that's intentional, just wanted to mention it.
Nice work and feedback @DragonDev1906 I would like to talk with you about the working together during the https://www.encode.club/encode-algorand-hackathon Are you taking part in the hackathon?
@DragonDev1906 Awesome solution! Can you reach out to me on Discord perhaps to share your wallet address and residency? You can reach me in the Algorand Discord at Michiel | Algorand Foundation#6116
For the other people working on this bounty, only Option 2 is still open!
@BooneTB I was not aware of that Hackathon, thank you very much for the Info, I just registered myself.
@DragonDev1906 your donation app is beautiful and functional! Congratulations on being one of the first to put our library to the test!
In response to the issues you encountered with using the "context" and "returnTo" props, we will be working on re-writing the Pipeline class to use a constructor so that the address and txID values can be accessed via Pipeline.txID and Pipeline.address. We will also enable TestNet sometime in the next few weeks.
As for a TransactionLink component, this is a great idea that is straightforward to implement. We had initially considered making this component, but held off due to the delay between receiving the txid and the creation of its corresponding page on AlgoExplorer (the link will 404 for the first few seconds after its creation). We might look into using either a delay or along with a refresh button.
Thanks for all the great feedback and notifying us about the library issues - will add everything to our to-do list!
@headline-design There is one more thing I forgot to mention: I think it is currently not possible to have an Icon in a Field/Checkbox/Radio label because it is passed as a prop. Initially I wanted to use the Algorand Icon instead of writing "ALGO", but I couldn't figure out how to do it.
For Checkbox and Radio this could be done by having the label inside the component: <Radio>LABEL</Radio>
, but this wouldn't work for the Field Component.
Hello,
Well, after the review made by @DragonDev1906 I connot have much to say. First, let me join his opinion that pipeline-ui is a wonderful project. If it will develop further it will be fine. As for the part I touched, I found there's something to do, but these are rathher small things that can be fixed in a few hours. Here they are:
AlgoButton
before, I've nothing to add except that its limitations that you discussed made it impossible to use it in this case (well, it was possible, but result would be ugly). I dared to use my own login button, it's not so visibly attractive (well, it's not attractive at all) but it was more convenient for this task.Pipeline
always retrieves only one. Since the assignment says "check if the user meets the minimum ALGO balance for accounts" I was thinking about going level down to theunderlying MyAlgo client library but decided not to do it - after all it's a Pipeline demo, isn't it? Pipeline.balance
method is perfectly convenient, but it doesn't handle exceptions and even doesn't throw them, just logs to the console and returns undefined
. It's especially unpleasant because there is a case in which an exception is inevitable: if the user recently created an account and doesn't have transactions yet, the underlying REST API point returns 404 which crashes Pipeline.develop
method. Would be nice if it handled at leat this error and returned zero. By the way. why it returns 'N Algos' string instead of a number? Link
component in pipeline-ui
but it isn't actually a link. Also there's a Link
component in react-router-dom
which is actually a link. Putting one <Link>
insifde other works, but... Maybe do something with it?
That's all I've got to tell. Except - Thank you for an interesting assignment.Is anything wrong? Tell me, I'll fix.
Hi, Awesome job with the Pipeline UI library. Without any in-depth knowledge regarding Algorand I was able to build fairly functional application. Here are my points after working with Pipeline UI on the https://github.com/johnmgrimm/algorand-restricted-checkout, some may overlap with the previously mentioned ones as I have written them down during the development:
yarn
while in Getting Started you are using npm
that might be confusing for junior developers, stick with one tool or provide both versionsfont-size: px
(without any value)<Box />
and that you are expecting TypeError: Cannot read property 'amount' of undefined
at Function._callee$ (index.js:56)
at tryCatch (runtime.js:63)
at Generator.invoke [as _invoke] (runtime.js:293)
at Generator.next (runtime.js:118)
at asyncGeneratorStep (index.js:1)
at _next (index.js:3)
ml={2}
@johnmgrimm Great feedback, thank you! Can you share your residency information with me (only country) via DM on Discord via Michiel | Algorand Foundation#6116
or here if you don't mind?
@TheOsch Thank you for sharing your feedback. Recorded your work! :)
At the moment, we are not looking for further submissions for both options! We will open up the bounty again for a new feedback round within one month approximately! Payments for those who've submitted will be processed in the upcoming week or next one. Thanks!
May I have a favor to ask of you? When such a case will appear next time, please don't post a smile. It hurts most of all.
@TheOsch I'm sorry if that was inappropriate. I don't see the reason why I can't share a smile. Everyone who has submitted work, including you will receive a payment. This was a very successful bounty and will be repeated in the future, there's no reason not to smile. Just indicating for new bounty hunters that they can't and shouldn't work on this bounty.
Oh, sorry, I thought I've lost. Now I smile too :-)
@TheOsch and @johnmgrimm, thanks for all the feedback and notifying us about issues (and your apps looks amazing!).We will add all of the issues you both raised to our to-do list.
@TheOsch, in response to the issue of only the first address being imported, we did not add a feature to import multiple addresses because MyAlgo Connect provides an option to select which address you wish to use in its pop-up window. However, we can see that it could be useful to switch between multiple addresses in an app itself, so we will enable this feature in the near future. As for the Pipeline.balance
issue, thanks especially for notifying us about this. We will update the method so that it returns 0 instead of undefined. Also, we made the return value a string and appended it with "Algos" so that it would be very clear that the method is returning the balance in Algos (as opposed to an ASA). However, we can change this return type to a number if developers would prefer.
@johnmgrimm, in response to issue 12, we added an onChange
prop to both Algo buttons in the latest Pipeline-UI update (which enables you to now use the Algo buttons with functional components and apps. We also added the documentation for this feature to their respective pages on pipeline-ui.com.
In response to issue 13, we deliberately did not add any customizable styling props to the buttons with hard-coded Algorand functions (You can only override their default appearance with some effort, which is by design). However, this is also a feature that we might consider changing in the future.
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
Work has been started.
These users each claimed they can complete the work by 265 years, 3 months from now. Please review their action plans below:
1) dragondev1906 has started work.
I will implement the Donation app (option 1) 2) theosch has started work.
I'm going to try to implement both options in a few days 3) johnmgrimm has started work.
I will create an application with a restricted access. It will allow to proceed to the checkout page only if you have at least 10 ALGO in your Algorand Wallet. 4) jotagep has started work.
I'm gonna code Donation App Tech stack:
🚀🚀
Learn more on the Gitcoin Issue Details page.
Payments for those who've submitted will be processed in the upcoming week or next one.
Please excuse me for asking this question here, but it's extremely important for me: when will they be processed exactly?
@BooneTB I was not aware of that Hackathon, thank you very much for the Info, I just registered myself.
@DragonDev1906 :) glad to hear that, I would love to work together on this prototype https://stiffmoney.com/ and rebuild it using Pipeline UI. Interested in working together?
@johnmgrimm Great feedback, thank you! Can you share your residency information with me (only country) via DM on Discord via
Michiel | Algorand Foundation#6116
or here if you don't mind?@TheOsch Thank you for sharing your feedback. Recorded your work! :)
Temp closing bounty
At the moment, we are not looking for further submissions for both options! We will open up the bounty again for a new feedback round within one month approximately! Payments for those who've submitted will be processed in the upcoming week or next one. Thanks!
Unfortunately I did not see this until 99% of the way through my project. It would have been nice if this info was on the main bounty page. I know it hasn't been a month yet but is there an estimate on if/when a new round is open?
I have used following components: Card, Heading, Text, Table, Loader, Button, QR, Input, Textarea, Box, Select
I had issues with form elements: Some of them are default formatted for exact width, while for example select is formatted for full widht.
Loader works good.
Table component is not usable for the production environment. In competitive UI framework it works the way that you put there the table config and data, and sorting, pagination and filtering is handled by the component.
There is lack of documentation, eg how to set the live data to table.
QR is simple qr code and does not create the algorand format qr code.
I wanted to use also the Pipeline component, but it lacks any usable methods. The point of my application is that the donation request is submitted to the network with specific note, and everybody see the donation and can respond by donating. There is no way how to read the public transactions on the blockchain. Also there is lack of support of every other wallet then the MyAlgoWallet.. I have solved this issue by generating standard QR code which is accepted by Official wallet, AWallet as well as MyAlgoWallet.
In Pipeline there is no way how to define custom algod or indexer servers. The choice between mainnet and testnet is fatal because most developers work on sandbox, than they test in testnet and then they publish it to mainnet.
Guys, that temp closing bounty shown only in this thread and not in the gitcoin page is funny.. I did not come here until i had to write the review..
The link to the work I have done: https://github.com/scholtz/algo-donate
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
Work for 749.997 ALGO (892.50 USD @ $1.29/ALGO) has been submitted by:
@michielmulders please take a look at the submitted work:
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
The funding of 749.997 ALGO (997.5 USD @ $1.33/ALGO) attached to this issue has been cancelled by the bounty submitter
@headline-design Can you take a look at @scholtz's feedback? The sandbox is a valuable comment as many use this for development purposes. Let us know! :)
@scholtz You've been paid for the valuable feedback, bit of an unfortunate coincidence
Overview
What is this task?
We are looking for people to try out the React component library created specifically for Algorand. On top of that, the creator of the library is also hoping to receive feedback from developers using their project.
Specifically, you should code one out of two demo solutions. In other words, two people can have a successful submission for this bounty as we don't allow someone to deliver both solutions. You can pick from:
Option 1: Donation app A demo application that provides the user with the choice of several baked-in Algo amounts for the end-user to choose from (radio array). For instance, 1 ALGO, 5 ALGO, 10 ALGO, and 50 ALGO. After selecting an option, the end-user is directed to send the amount to a pre-specified address.
Option 2: Balance check login form Create a website that requires a user to log in via MyAlgo wallet to access it (demo components available). During the login process, the app should check if the user meets the minimum ALGO balance for accounts. If the minimum balance isn't met, the login is denied. If the user has sufficient balance, the user can see the protected web page.
As part of this task, you have to provide development feedback about the UX of using Pipeline-UI or about problems you've encountered. Make sure to explore the icons, provided demos, and components the library offers. We don't expect you to write a blog post.
Deliverable
README.md
) explaining how to set up the project, architecture, and how the project works (which Pipeline components you've used where).Judging Criteria and Metrics
The following criteria will be used:
README.md
) and quality of feedback for PipelineOther Requirements