animo / animo-demo Goto Github PK
View Code? Open in Web Editor NEWInteractive demo explaining the concepts of self-sovereign identity.
Home Page: https://demo.animo.id
License: Apache License 2.0
Interactive demo explaining the concepts of self-sovereign identity.
Home Page: https://demo.animo.id
License: Apache License 2.0
Lately when going through the onboarding flow, sometimes the issuance of the started credentials shows the following page. When resetting the dashboard and starting over it is often resolved, but I've had occurrences where it will happen twice in a row.
Not sure what is going on here. No errors are logged in the browser console.
@janrtvld any idea what is happening here?
Currently, when we update the redux store with some new functionality we have to up the version. This is because if the store differs from the store that is being replenished from the localStorage there might be issues.
This is quite annoying and easy to forget. I think we can fix this with the following:
Currently we do a check in App.tsx
to check if the server has been reset. This is because we wipe the server over the weekend to not clutter it up with billions of connections. What if we also save the current date in the store and then check before replenishing if this date is after the last server reset. If the server has been reset we don't replenish the store.
Does this make sense? It does feel a bit hacky so open to other suggestions.
Got an inquiry from someone about which ledger the demo uses so they can test it for interop with their wallet. Even though it's mentioned in the trinsic modal, it maybe be good to add a small hint to the wallet selection page about the ledger being used. This will make it easier to use a wallet not in the list
The wallets and character list are scrollable. This leads to a annoying effect on mobile because on some screen sizes you also have to scroll the page. This makes it so you have two scrollable elements:
Hello. Great app. I am learning and trying to set up my env. But I do not know what to use in this parameter.
Besides, when y scan de code with the Trinsic wallet I get an error. I follow the url and get:
{"@type":"https://didcomm.org/connections/1.0/invitation","@id":"4a2c35fa-e9f5-4793-91ea-8e27f3e0e085","label":"justech-wallet","imageUrl":"https://i.imgur.com/g3abcCO.png","recipientKeys":["6NuFTh6kkWfDdmp7fJFQB3aqdQFaMy7qAuP1bYY5iRv2"],"serviceEndpoint":"https://825d-181-231-126-165.ngrok.io","routingKeys":[]}
Thank you for your help.
S.
To prevent broken code from being merged
Currently if you finished the demo for a part, and then go back the next time you won't be able to finish as new credential definitions are created after each restart. We should add some counter to the frontend (in addition to the redux store version) and redux store that will be updated every time we do a new release that resets the database on the backend.
We can set this using an environment variable on the server side and use that to know if the current persistence version number is equal to the latest stored persistence version number
See #87 for general context
protocolVersion
with type "v1" | "v2"
to the credentialSlice.ts
. V1 should be the default.setProtocolVersion
to the reducers in the credential slice that sets the protocol version on the state. input must be "v1" | "v2"
.v1
) and "V2" (v2
) to the KBar.tsx
file./credentials/offer-credential
we should take the protocolVersion
that is configured in the credential slice.I detected this while using the deployed version of the demo at demo.animo.id, not the local version I can test from the main
branch.
The demo has three (3) characters: Jan, Noah and Joyce.
After completing all the use-cases for Jan, it automatically registers the use-cases for Noah and Joyce, and vice-versa.
Thought it was an error on my side, that I had done the use-cases before, but using private browser windows over multiple runs left me with the same outcome.
Also the reset option from the command+k
to reset dashboard didn't seem to affect it.
Definitely needs further investigation, but I thought to mention it here first.
The 'Make it rain' option should display the confetti for longer. It doesn't even reach the bottom of my screen!
Currently the image at "You're all set!" is the same for all use cases. Because it features some characters with their back turned and one central character, it seems especially suited to customize it with the chosen player, instead of a generic pic.
We can do this by dynamically changing the images that we add to the final screen based on the character selected. Images can be found on here.
We can change the getComponentToRender
in OnboardingContainer
to add an image to the Progress.SETUP_COMPLETED
based on the character chosen.
We'd like to get insights in the test coverage % of the animo demo.
We can use tools for this like codecov.io, or look for a custom way to do it with just Github actions (if possible?)
Submitted by an user from the cheqd telegram group. This is possible when you press "I didn't receive anything" but you did. If new credential offers are sent, we should delete (or make inactive) the old ones.
Google seems to have issues with the demo (https://freetools.seobility.net/en/seocheck/demo.animo.id#page-content). Maybe walk through some things of this checker and add/fix where necessary.
Currently when you run the server the credential definitions are created. This can take quite some time. There also isn't something that checks if the credential definitions already exist. In addition, when you change something on the server side, the server restarts and all the credential definitions are created again.
We should find a better way of creating credential definitions.
Currently demo doesn't have a social preview.
Feedback we got from the cheqd telegram group:
I would add one thing though, which is to show who actually issued the initial credentials to begin with. Now you’re kind of just “airdropped” some random credentials. The part where a lot of questions pop up is how you get your initial base credentials in your wallet. Adding this part would make it more “end-to-end”
It would be nice to add a configuration screen (accessed by cmd+k) that allows to configure which features to use for the demo. This way you can use the demo with some of the new feautres, without breaking interop with old wallets. Kind of like flags in your browser (very hidden, but possible to change if you know what you're doing).
The features I'm currently thinking of:
We can add custom configuration to the cmd/ctrl+k screen like we already have with change theme (see screenshot)
Hi,
I am trying to run the demo locally, however yarn install keeps throwing following error:
Current setup:
Ubuntu 20.04
Node - 16.14.0
yarn - 1.22.19
Steps to reproduce:
Any help would be appreciated. Thanks! :)
Great project.
Been trying to run the demo on my local machine (MacOS). I have the latest libindy for my platform, together with other libraries it depends on.
On running
yarn install
I keep getting the
ld: library not found for -lindy
error.
Any leads on what I might be missing?
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
CXX(target) Release/obj.target/indynodejs/src/indy.o
SOLINK_MODULE(target) Release/indynodejs.node
ld: library not found for -lindy
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Release/indynodejs.node] Error 1
gyp ERR! build error
gyp ERR! stack Error: make
failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Users/imac/Documents/newflex/animo-demo/node_modules/indy-sdk/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (node:events:394:28)
gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
gyp ERR! System Darwin 19.6.0
The tests are failing constantly and it seems like a coin flip if every test will pass at the same time. Below are some solutions i came up with:
I think this is the cause:
animo-demo/server/src/index.ts
Lines 68 to 89 in 25c08a5
We should add error handling (catch) to this method and also add a generic uncaught promise rejections handler: https://thecodebarbarian.com/unhandled-promise-rejections-in-node.js.html to prevent the server from crashing
undefined:1
{"@t
SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at Function.fromString (/www/node_modules/@aries-framework/core/build/utils/JsonEncoder.js:45:21)
at Function.fromBuffer (/www/node_modules/@aries-framework/core/build/utils/JsonEncoder.js:61:28)
at Function.fromBase64 (/www/node_modules/@aries-framework/core/build/utils/JsonEncoder.js:29:28)
at Function.fromUrl (/www/node_modules/@aries-framework/core/build/modules/connections/messages/ConnectionInvitationMessage.js:79:62)
at /www/build/index.js:64:73
at Generator.next (<anonymous>)
at /www/build/index.js:8:71
at new Promise (<anonymous>)
at __awaiter (/www/build/index.js:4:12)
Currently, when we issue a credential it shows a loading spinner when the request is being processed. Then, after the credential request is completed the credential card is shown with a loading spinner waiting for the user to accept it.
There is a small flicker in between:
It would be nice if we have a placeholder credential card where the card indicates that the credential is loading (presumably with a pulsing effect). Like this:
We should add an 'empty' credential card as a placeholder while the isLoading property is true.
Is the release branch still used, or do we manually deploy from main?
When the demo was released (almost 1 year ago) we branded it as a way to see the future. I think we should change it to something more accessible/current.
I will think of suggestions but also: suggestions welcome
Currently, we poll for connection/credential/proof changes every second. It would be nice if we could listen to agent events. This can be done with websockets once that has been implemented: openwallet-foundation/credo-ts-ext#155
Currently, when you're on the dashboard of the demo and you'll press change character it just wipes the state and starts fresh. It would be nice if we can drop the user directly into the onboarding flow at the character selection step.
We also keep track of the characters that the user has completed. We could add a checkmark to the characters that are already done?
onboardingSlice
keeps track of the onboarding step that the user is on.See #87 for general context
useLegacyInvitations
boolean type to the connectionSlice.ts
. True should be the defaultsetUseLegacyInvitations
to the reducers in the connections slice that sets wheter to use legacy invitations on the state./oob/create-legacy-invitation
if legacy is enabled, and /oob/create-invitation
otherwise. In both cases we should use the return invitaiton url and encode is as a QR (as is already happening)The dark and light favicons are incorrect on firefox.
Here with the state: it isn't removing the previously issued credential and there is also a dupe in there.
When trying to use the Trinsic Wallet, after selecting the region to connect, I get an error modal (popup) that says :Agent: Wasn't able to provision agent'. This continued happening even after several retries over different days and times. I figured it might have something to do with my location (Nigeria), but I figured you'd want to know.
There are occurrences when people are getting stuck in the demo during the onboarding. This happens in the connection screen as well as the credential screen.
Sometimes when you refresh the page, the state is not properly rehydrated. The state keeps the old connection id in their preferences, but onboarding flow is restarted. We should check if the store is properly rehydrated after a user refreshes the page.
This primarily happens on mobile, probably because users use the cmd+k menu to reset the state on desktop instead of refreshing the page.
Hi team ,
I am trying to run this demo on my local system.
When I run Yarn Dev command
Command is running successfully but localhost:3000 is not returning anything (blank Front end)
Localhost:5000 is working fine .
Could you please help me with this?
Best Regards
Sethi Shivam
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.