wearekickback / app Goto Github PK
View Code? Open in Web Editor NEWFront-end app for Kickback
License: MIT License
Front-end app for Kickback
License: MIT License
Hi Kickback team! I was trying out your app for our DappDevs event and here's what happened.
Now I'm signed up for the event under acct#2, but the account info was stored for account#1. Acct#2 has no username, and cannot update the user info. I can successfully sign in under acct#1. I can sign in and create another account under#2. Initially my new username was still not showing on the event attendance page, even after a refresh that updates the username/icon in the upper right. Given a short time, it's now showing up.
Overall, not surprised that jacking the flow caused inconsistent state, and I was able to get things sorted out (except needing to create a second account with a different username.) Nice work!
Thoughts on addressing: allow user accounts to have multiple addresses, or confirm the event staking address matches the user account address of a valid account.
This only happens to this scenario.
This will not happen if Metamask was connecting to the wrong network before signout.
Import this in the app to support ethvault
http://github.com/ethvault/iframe-provider-polyfill
Currently authereum.kickback.events point to mainnet so we cannot test freely. Can we at least have an endpoint which connects to kovan?
When I go to a direct event link, or try to view events from the kickback home page, i get this red banner:
"Error: Network error: Response not successful: Received status code 400"
Click sign in and after ~3 seconds of showing the sign in form, it reverts to the same banner.
I am signed into main net.
Create event page uses the PartyForm component, which is shared between the Create and Admin page and should have its styles enhanced if any styles from the Admin page need adjusting
If the url is the same, filter out the previous and just use the latest. E.g they want to change count.
100 DAI
Frontend (react/js/graphql)
Currently, there is an QR code reader to scan user's Ethereum address on our admin panel.
Pressing "Scan QR code" will pop up QR code reader if underlying web3 provider supports it.
It reads Ethereum Address from the QR code and place the address into search input so that it filters out the participant.
However this feature is not widely used as not many web3 provider supports it.
The challenge is to replace the implementation of
qrCodeResolvers with more generic qr code reader so that it works across any browsers.
Before submitting, make sure that QR code works on the following environment.
For any other env where QR code does not work, disable "Scan QR code" button by greying out the button with click disabled (rather than hiding) so that users know that the utility exists.
23rd Jan 2020
Makes sure that your code follows our contribution style guide
As soon as approved by @makoto or @jefflau
200 DAI
We are considering to add donation feature. .
Please implement the following UI
Currently smart contract does not support yet, so you can just call WITHDRAW_PAYOUT
mutation discarding the actual donation address and amount (There is smart contract bounty if you are interested as well)
[UPDATED ON 4th Dec]Currently smart contract does not support yet, so create sendAndWithdrawPayout(_, { addresses, values })
resolver which copies the implementation of withdrawPayout
works for both eth and dai
TBD
TBD
As someone RSVPing to an event, I would like to be able to add a +1, which indicates that I will bring another person with me to the event.
In order to sign up more than one person, I would need to create another account on Kickback, and also to create another Ethereum account, transfer some ETH / DAI to that account (which costs gas), and then to submit another set of Approve and RSVP transactions, which is kinda long-winded and costly.
Or, I would need to encourage the other person to sign up for themselves, which might be a good way to raise awareness of Ethereum / Kickback, to educate them on the systems available, and to get them a wallet and ETH, but also this represents a barrier to entry to the eco-system, and risks making it feel exclusive and unfriendly.
I would like to be able to add a +1 to my RSVP, so that I can easily bring people who are not already in the Ethereum ecosystem to the party - so that they can more easily engage with the lovely humans of Ethereum ("Ethereans"), and learn about this wonderful world.
This would be an inclusive way to grow the ecosystem, and engage new humans in our friendly ecosystem.
I would love feedback on this.
Currently Travis does not seem to allow external party to run CI test. So I created a branch out of the fork but it shows the following error
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 0x317e29625879 <JSObject>
1: /* anonymous */ [/home/travis/build/wearekickback/app/node_modules/webpack-sources/node_modules/source-map/lib/source-map-generator.js:~48] [pc=0x35d25b59b8dd](this=0x10d20670c209 <JSGlobal Object>,mapping=0x3fca9fb23171 <Object map = 0x831becfbb49>)
2: arguments adaptor frame: 3->1
3: forEach(this=0x174e64ff39b1 <JSArray[593886]>)
4: SourceMapConsumer_eachMapping [/home/travi...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
When I tried to run thee task which CI is running, I am failing to install authereum.
$yarn deploy:pr
yarn run v1.15.2
$ yarn build:release:kovan && scripts/deployTravisBuildToSurge.sh
$ yarn setup --kovan && yarn build
$ scripts/setup.js --kovan
{
"DEPLOYER_CONTRACT_ADDRESS": "0xB7465Eef8d3334E1f78Af0382201bd079E3d926B",
"API_URL": "https://kovan.api.kickback.events",
"NUM_CONFIRMATIONS": 1,
"ENV": "kovan",
"DAI_CONTRACT_ADDRESS": "0x1246Ddaf0885A87D9F3DdF0f08d8B6cc57b68c5f",
"GIT_COMMIT": "ac82ceb13be9c24f8d226149c29084bbc7aae537",
"LOGROCKET_TOKEN": "",
"ROLLBAR_TOKEN": "",
"BLOCKNATIVE_DAPPID": ""
}
$ react-scripts build
Browserslist: caniuse-lite is outdated. Please run next command `yarn upgrade caniuse-lite browserslist`
Creating an optimized production build...
Browserslist: caniuse-lite is outdated. Please run next command `yarn upgrade caniuse-lite browserslist`
Failed to compile.
Links
Popups
Similar to how EventBrite does but you can use your own judgement to make it look better.
You can use off the shelf react component like following
Admin page is currently largely unstyled.
1st : $500
2nd: $200
3nd: $100
Currently each admin has to manually check in each attendee which have multiple drawbacks.
Can you create a solution to allow attendees into self check-in via GPS, IOT device, “Bump” style peer 2 peer check in, or integrating with other protocols such as https://foam.space/ , http://poap.xyz/ , https://xyo.network/?
23rd Jan 2020
31st Jan 2020
Currently Kickback is often used for crypto related events and hackathons. Some event organisers prefer to use us purely because Kickback is a blockchain based application.
However, we want to start appealing to meetup organisers outside of crypto/blockchain ecosystem for mass adoption.
The last blog post we wrote is almost 16 months old under old brand name and therefore we would like to have a new blog entry which we can point to any event organisers considering using Kickback.
Please write a blog post targeted for non crypto / blockchain audience why they can benefit by using our service.
23rd Jan 2020
31st Jan 2020
Currently, in order to sign up for Kickback events, a user must create a username, provide their real name, and provide an email address.
I want to be able to RSVP solely based on my ETH address, without needing to provide my personal information.
I understand that this adds complexity in terms of verifying people when they arrive, if they haven't provided their real name.
Up to 500 DAI. Many submissions, multiple winners.
[NOTE] If the winning submission turned out to be feasible, we may commission further work to productionize it.
Kickback is a popular choice to manage free events. User commit Eth/DAI to attend events. If they don't their commitment gets distributed to the one who attended.
Burner wallet is a popular choice to bring "Token economy" to events. User receives xDAI in their mobile browser and can claim drinks and swags at event without waiting for long confirmation time or needing ETH to pay gas price.
These two are the perfect combo for any events and there will be a great synergy if they can seemlessly integrate but here are the problems.
If you want to use Kickback and Burner wallet as is, here is the flow.
Simplify step 4&5 by somehow linking Kickback wallet address and Burner wallet address.
Here are some ideas Kickback and Burner team have brainstormed in the past but you can be creative to have your own solution.
Burner wallet has a way to generate contract based wallet using contract wallet plugin so it can generate new burner wallet address which is unique to the signer.
The advantage is that there is no need to store the information which links burner and kickback wallet addreses. The downside is that something like Metamask chrome plugin does not work on mobile browser hence we have to restrict the usage of Metamask plugin.
User has Kickback page open on his laptop, click "Scan QR code" will display a QR code, then user scan the code using his/her mobile phone which opens up burner wallet page preloaded with some xDAI. We couldn't figure out how wwe can preload xDAI with the link, so not sure if this is feasible.
Utilize signed messages and contracts to let them attach their burner account to a contract that's already linked to their kickback account.
Currently, burner modules have InjectedSigner
.
As long as we discourage users not to use desktop Metamask plugin but use others (eg: Opera mobile, Metamask mobile, Status, Trust Wallet, etc), then it can use the same address.
If this is the case, please also investigate if this can work not only injected wallet but with any other wallets such as Torus, Authereum, Wallet Connect, etc as we are planning to integrate with onboard.js
If we compare Kickback to its competitor Meetup, its very difficult to contact an event organiser before an event. This is useful to be able to ask questions beforehand, etc. Otherwise it can feel a little impersonal and possibly creating a barrier to entry.
One possible decentralised solution would be to use 3box.
Though smart contract enable on-chain way to control the flow of money or governance, the discussion is often made in discord, xoom, hangout, and now lots of experiments in virtual space such as CryptoVoxels, Decentraland, etc. We would like a way to enforce on-chain logic into off-chain communication tools.
Create a chat system SDK which enforces on-chain logics as well as logs the member activity ( so that admin can use it as a proof of attending an online event).
You can use any existing chat system with bot moderation framework or create own chat system using existing SDK such as 3box thread
Though we intend to use on Kickback, we would like this project to be generic to be used in other systems. The SDK should make contract specific function names configurable so that it can easily be reused.
AbstractConference.isRegistered(addr)
returns true
) can write. (link to source code)GroupAdmin.isAdmin(addr)
returns true
) can be joined as admin. (link to source code)Pretty much the same logic as above, but use Moloch.member(addr)
instead of AbstractConference.isRegistered
(link to source)
First issue: I cannot find a way to create an event in the GUI for the app - I must navigate manually to /create
Second, once I do get an event created:
I then don't see it.
I generated a transaction (on kovan but the event page does not display on http://localhost:3000/event/0x71646dC2f4960f74554D3eF98301582522046793
Also not on https://kovan.kickback.events/event/0x71646dC2f4960f74554D3eF98301582522046793
https://mystifying-joliot-5254b7.netlify.com/
(scroll down to click "Create account")
-- Check if user has gas to pay
-- Check if user has token to RSVP
-- If ENS reverse record is set, suggest to send fund to ENS name
Amount TBD
During Devcon5, we hosted dozens of events and 100s of people attended various events but there aren’t good ways to visualise/gamify to encourage participants to attend more events. Also our user activity page is very primitive.
Can you create some sort of dashboard to visualise participation activities or create an additional mechanism?
Successful submission may utilise our two data endpoint.
You may add Youtube videos to supplement your submission but you have to have working prototype hosted somewhere online.
You can either fork our frontend and add features, or it can be standalone app which interacts with our dataset.
TBD
Something fun and engaging.
TBD
Use the address to link to googlemaps or have a maps widget.
Current page is confusing for admin users and also does not have full functionality. Best approach would be to add the table view as the main admin view and then have all admin controls including clear as well as mark attended
I recently spoke with @makoto and he we discussed the idea of a Kickback License.
The main goal is for Kickback to fund itself using crypto by charging event organizers when they want to deploy their own kickback contract.
As detailed on this page, to deploy Kickback contracts, event organizers go to https://kickback.events/create then the Kickback team uses a backend processor which listens to blockchain. When the event contract is created, the Kickback team joins the contract address with the event data in their backend.
Unlock is a protocol for memberships. It lets creators like Kickback deploy their own memberships to grant access to some features to paid members only. Users can then easily purchase access to a given membership by sending a payment to the locks directly. In return their receive a NFT (ERC721) which they can use to gain access to custom features.
The Kickback team wants to provide paid benefits for people willing to deploy their own kickback contract. In order to do that, the kickback will deploy one or more locks (one for each level of benefits).
The front-end form will then ensure that the user owns a key to any of the kickback locks in order to deploy their kickback contract. If the user does not have a key, they are offered the ability to purchase a key to any of the lock (either thru crypto or credit card) thru Unlock.
Later the Kickback team can also verify ownership of a key on their backend service in order to guarantee that only the paying members have deployed a kickback contract.
The Kickback team will own several locks, with different levels of memberships. Each of these locks should have non-transferable keys, as well as having a short expiration date to prevent someone from deploying too many kickback contracts with a single key.
Unlock provides a JS snippet to integrate on the frontend: https://docs.unlock-protocol.com/ which should be used to ensure that only members can complete the form.
200 DAI
Currently Kickback smart contract supports any ERC20 yet we only support DAI at frontend because we hardcode lots of code.
Please refactor our code as well as extending admin page so that users can add any ERC20 tokens.
23rd Jan 2020
31st Jan 2020
200 DAI
One of the most requested feature is to be able to add event specific social card.
We already have a generic one here, but we want to show event specific card.
You can get the basic information through our graphql https://live.api.kickback.events/graphql
query{
party(address:"0xe784ed60b5b3b3f721d97c7f0c2abc236175cc2e"){
id
name
description
headerImg
address
}
}
The key problem of this challenge is that our entire frontend stack is built based on create-react-app but to be able to show on twitter, chat channel, etc, it has to be render by server side (We tried https://www.npmjs.com/package/react-meta-tags before but it did not seem to work).
One possible workaround is to create a very simple node.js server to wrap our frontend and call our backend api directly but we don't know exactly what would be the best way, so feel free to suggest better way if you know.
23rd Jan 2020
As soon as approved by @makoto or @jefflau
NOTE: We actually don't know if this is actually technically feasible or not. Please discuss with our team at Discord with your proposed solution before you jump into implementing one.
31st Jan 2020
The first submission which satisfies all the submission requirement wins.
400 DAI
Currently, we use the old version of BlockNative assist.js (bnc-assist) to onboard users who have accessed with no wallet to show the warning message. At that time, it did not support mobile wallets hence we created a wrapper file which detects mobile it was falling back to our own warning message.
Now that onboardjs has mobile onboarding as well as "select wallet", replace the file with onboard js and show proper "select wallet" window.
Currently, BlockNative popup happens at 2 places.
Make sure that onboard popup events get emitted correctly detecting
The design will be similar to how UniSwap does (though they don't use onboard.js) with a bit more explanation about the difference of each wallet.
Please configure to be able to select Web3/Metamask, WalletConnect, Torus, Authereum, and Fortmatic.
[NOTE]: I got feedback from Blocknative that labeling by category (eg: "I have my own wallet", "I am new to this") is not supported yet, so it's not necessary.
Currently we have track()
function which tracks the result of getstate() function. Please keep that if possible.
connectToCloudNode
function).Until closed
Before submitting PR make sure that you tested on all supported wallets.
As a minimum, we expect that it works on any EOA(Externally Owned Account) wallets, such as the following.
As soon as the PR is approved by @makoto or @jefflau
(NOTE: If there are anything unclear, please either add into a comment or ask questions at our Discord channel).
Checking the mobile version, I noticed that some footer information is too compressed and misaligned, so you'll need to check the alignment of the information next to the social buttons.
Amount TBD
At Kickback, we currently store some privacy information (user name and email address) so that event organisers can use information to notify participants and well as to identify people at check-in
Even though these are necessary features to make event dapp usable, the leakage of this information would cause inconvenience and distress to the end users who have been affected).
This problems is nothing new in the web2.0 world, but web3.0 users face additional challenges as their financial information is tied into the Ethereum address.
The two most realistic solutions have some drawbacks.
In this challenge, we welcome any practical solutions which overcome our problems. Some ideas for the solution would be the followings.
TBD
TBD
50 DAI
Kickback is one of the few Dapps which people are "forced to use" to attend the event they want to go (as contrary to Defi or Games which no one forces you to). This sometimes cause confusion and stress to participants who are completely new to cryptos and blockchains.
In this challenge, we would like you to diagnose our current UX, articulate problems, and suggest better solutions.
TBD
TBD
https://kovan.kickback.events/create
spinner continues forever, no console errors reported.
All other pages seem to work, including account creation
Even though Kickback does not show ETH address of the registered users, it is relatively easy to tie the username/twitter handle to the eth address as all the transaction data is in the public chain. This is very worrying for security concerned people. To solve the problem, some people actually uses Torndao to hide the information of where the fund for the commitment came from but Tornado is not widely used yet.
To help educating the safe use of Dapps, please write a blog post detailing the step by step tutorial of how to setup Tornado, sending the fund to the ETH account you use to RSVP on our event.
23rd Jan
I have never used Tornado so I will actually use your article to try it out so you must be willing to answer any questions while I am following through the guide and update anything missing / unclear accordingly.
31st Jan 2020
Currently if I try to make an event and click the "create event" button then the button moves to the "sending transaction" state and I get a metamask popup. If I then decide that I don't want to sign that transaction and reject it then the "create event" button doesn't return to its original state, preventing me from clicking it again.
This requires a refresh to clear which in turn clears out the inputted form data. Ideally the button would listen for the callback from a transaction being rejected and become available for interaction again.
Copying this from #263
Currently when a user is using a web3 enabled browser but hasn't given metamask access to kickback.events the Approve button shows the below error message.
A complaint about insufficient balance is obviously not ideal as the user may have the required balance, leading to confusion.
A check should be placed on the Approve button which in the case of the user not being logged in, displays a button with the text "Log in to RSVP" in its place. This button should be functionally identical to the "Sign in" button on the header except for styling.
50 DAI (We are calling more top ups from various other orgs such as MarketingDAO :-P )
When it comes to organising events, event organisers often struggle to find sponsors to cover venues, drinks, catering, and so on.
To tackle the problem, I have been experimenting with lots of small ideas from event donation, NFT token, to forming event focused DAO, aka OrochiDAO.
Towards EthDenver, we are planning to rebump OrochiDAO and trying to do something interesting (such as hosting whisky tasting events in Osaka or sponsoring burner wallet powered after party of EthWaterloo).
Can you come up with some interesting ideas which we can do during EthDenver #buidlweek?
TBD
TBD
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.