Currently, the user is able to choose from the list of templates which automatically changes their layout and design on their public profile page however we now need to add additional functionality to this templating feature.
This is what we should implement:
User chooses from the list of templates on Profile manager
Depending on what template the user chooses, the fields on the right hand side of profile manager page should update accordingly and show up or be hidden. For example, choosing a soccer profile template should automatically list various new fields specific to soccer stats such as "team name", "goals scored", etc that the user can fill in. And these fields would of course be shown on public profile pages of these users.
Let's make this dynamic and modular in that it's very easy to update which fields to show depending on what templates the user has currently selected.
Here are the list of fields to show depending on what template:
Each template will have: avatar, cover photo, basic info, about, social profiles, education, experience
The following fields are in addition to the above fields
General template:
Crypto template:
Wallets(this should work similar to Social profiles whereby the user can add different wallet addresses to their DID document). To start with, let's support EID, ESC, ETH, ELA, XRP, HBAR. Note that EID, ESC and ETH are already implemented. For ELA, XRP and HBAR, for this first version, we can just let the user enter whatever address they want on these fields and we generate self-proclaimed credential for these fields and also save them on verifiable_credentials collection on user vault like how we currently do for EID, ESC and ETH. Note that we generate verifiable credentials for EID, ESC and ETH right now however since ELA, XRP and HBAR are self-proclaimed, the process to generate self-proclaimed credential is a bit different as it's done utilizing the user's DID directly rather than interacting with Profile API service to generate them. You can find the methods for generating self-proclaimed credential under src/services/did.service.new.ts and method names newSelfVerifiableCredential and newSelfVerifiableCredentialFromEssentials.
Gaming template:
Gamer Profiles(this should work similar to Social profiles whereby the user can add different gamer profiles). To start with, let's support PSN, Steam, XBox Live and EA Play(Let's generate self-proclaimed credential for these fields and save them onto verifiable_credentials collection on user vault similar to how we do for other things. You can find the methods for generating self-proclaimed credential under src/services/did.service.new.ts and method names newSelfVerifiableCredential and newSelfVerifiableCredentialFromEssentials.)
Gamer Tags(this is where the user can put in the name of their characters in different games they play such as "HelloKitty" in World of Warcraft). To start with, let's support World of Warcraft, Minecraft, League of Legends, Candy Crush, Super Mario Bros(Let's generate self-proclaimed credential for these fields and save them onto verifiable_credentials collection on user vault similar to how we do for other things. You can find the methods for generating self-proclaimed credential under src/services/did.service.new.ts and method names newSelfVerifiableCredential and newSelfVerifiableCredentialFromEssentials.)
Games Played(this is where the user can add different games they have played in the past and completed): (Let's generate self-proclaimed credential for these fields and save them onto verifiable_credentials collection on user vault similar to how we do for other things. You can find the methods for generating self-proclaimed credential under src/services/did.service.new.ts and method names newSelfVerifiableCredential and newSelfVerifiableCredentialFromEssentials.)
Athletics template:
Teams(this should work similar to Education & Experience). Let's update this to also ask for the sports name.
: (Let's generate self-proclaimed credential for these fields and save them onto verifiable_credentials collection on user vault similar to how we do for other things. You can find the methods for generating self-proclaimed credential under src/services/did.service.new.ts and method names newSelfVerifiableCredential and newSelfVerifiableCredentialFromEssentials.)
Academics template:
Developer Profiles(this should work similar to Social profiles whereby the user can add different developer profiles). To start with, let's support github, gitlab.
Thesis & Papers(this should work similar to Education & Experience): (Let's generate self-proclaimed credential for these fields and save them onto verifiable_credentials collection on user vault similar to how we do for other things. You can find the methods for generating self-proclaimed credential under src/services/did.service.new.ts and method names newSelfVerifiableCredential and newSelfVerifiableCredentialFromEssentials.)
License & Certifications(this should work similar to Education & Experience): (Let's generate self-proclaimed credential for these fields and save them onto verifiable_credentials collection on user vault similar to how we do for other things. You can find the methods for generating self-proclaimed credential under src/services/did.service.new.ts and method names newSelfVerifiableCredential and newSelfVerifiableCredentialFromEssentials.)
Don't need to wait on the design to start this as this is something we can already implement. Design can always be integrated at a later time.
Currently, the user is able to choose from the list of templates which automatically changes their layout and design on their public profile page however we now need to add additional functionality to this templating feature.
This is what we should implement:
Let's make this dynamic and modular in that it's very easy to update which fields to show depending on what templates the user has currently selected.
Here are the list of fields to show depending on what template: Each template will have: avatar, cover photo, basic info, about, social profiles, education, experience The following fields are in addition to the above fields
newSelfVerifiableCredential
andnewSelfVerifiableCredentialFromEssentials
.newSelfVerifiableCredential
andnewSelfVerifiableCredentialFromEssentials
.)newSelfVerifiableCredential
andnewSelfVerifiableCredentialFromEssentials
.)newSelfVerifiableCredential
andnewSelfVerifiableCredentialFromEssentials
.)newSelfVerifiableCredential
andnewSelfVerifiableCredentialFromEssentials
.)newSelfVerifiableCredential
andnewSelfVerifiableCredentialFromEssentials
.)newSelfVerifiableCredential
andnewSelfVerifiableCredentialFromEssentials
.)Don't need to wait on the design to start this as this is something we can already implement. Design can always be integrated at a later time.