In this post, we take a look behind the curtain to look at the setting menu. The current version is scaled down from the internal concepts, which took a lot of inspiration from Mastodon and had things like a security tab, and a directory. These pages have been stripped back to focus on the core functionality, which is payments, decentralized identifiers, verifiable credentials, and verifiable presentations.

The first page in the settings is the Organization page. Right now this basically contains information about the organization's physical address. A logo was stripped out to focus on the core concept, and there are any number of things that can be added like a link to a homepage, social media, or anything the organzation might want other people to see.

Right now the important aspect is only an admin for the organization should be able to edit this page for their organization, but right now the admin and the organization are a single account, so this is something that will need to be addressed.

Right now the profile page is even more minimalistic. This contains information on the specific user logged in under and organization. This contains the slug they use to sign in, their UUID (which has been changed to their DID), job title, and email address for resetting their password.

The ability to add an avatar would be an improvement to make in this area, as well as the ability to update their password. Right now all of the keys are on the server-side, but the ability to sign-in with Metamask, or from local storage would probably be the next step in decentralizing Private Invoice to keep keys off the server. For now it's the simpliest way to implement these concepts.

This is the contacts page. While there are no contacts added when I took the screenshot, this is actually one of the better implemented pages. Clicking on the Export button will create a Verifiable Business Card with your profile and organization details. And a record is created in the database with the uuid assigned to the id field of the business card that get's downloaded.

This business card can then be send to another person as a file in email, or in a chat application with drag and drop. When the other person drops the Business Card into the "Import Contact Details" area, the user will first be asked to confirm they want to add the contact of the Business Card listed. The server will in-turn contact the issuer of the Verifiable Business Card using the same uuid as the one that is being imported.

Doing this will allow both server's to have the other person's contact details. Such that both parties will know the end point and the decentralized identifier of the other contact, such to only white list invoices being sent to them from their list of approved contacts.

Last is the wallet page in settings. This will allow you to manage the balance of the wallet you associated with the Private Invoice account. This should show the list of invoices that have been paid with the application, and link to the invoice. As well as allow you to withdraw funds from the account.

Withdrawing funds is probably more applicable to cases where there are more than one account, and sales and procurement are allocated funds based on what is needed. For now there is only the admin account, so outgoing and in-coming are all allocated with one wallet.

And this concludes the summary of the settings in the application. From here there are two aspects to expand upon. One is how contacts are managed, and the other is performance issues with presentations and how they can be addressed.