This open-source VC Admin Dashboard is a joint effort between the Digital Credentials Consortium at MIT and the Learning Economy Foundation. It's designed to provide enterprises, schools, and organizations with a straightforward way to issue Verifiable Credentials in bulk.
- User Management: Efficient user onboarding and management.
- Credential Management: Handle individual credentials—search, view, check status, and revoke.
- Batch Management: Manage groups of credentials, such as annual diploma issuances.
- VC & Email Template Management: Edit and store templates for credentials and emails.
- Claim Page: Allows students to claim and download their credentials.
- White Label Ready: Configurable branding options.
- VC-API & CHAPI Integration: Compatible with the Verifiable Credential API exchange endpoints and CHAPI.
- Deployment: Fully dockerized for ease of deployment.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
The best way to start engaging in the community is to participate in our Github Discussions:
This repository houses the main services for the Admin Dashboard which include Claim Page, Dashboard, and DCC (Digital Credential Consortium) Services. The services are organized within separate directories and are dockerized for easy setup and deployment.
.
├── packages
│ └── claim-page
├── services
│ ├── payload
│ └── dcc-services
└── compose.yaml
Located inside packages/claim-page
, this service handles the webpage that users see when claiming
a credential.
- Environment Setup:
- A sample environment file is provided as
.env.sample
. - Copy
.env.sample
to.env
and replace the PUBLIC_PAYLOAD_URL with the URL to your Dashboard API.- If running locally, the sample value of
http://localhost:3000/api
will be correct. Otherwise, this will be the URL of your Dashboard API!
- If running locally, the sample value of
- A sample environment file is provided as
Located inside services/payload
, this service provides the dashboard functionality for the application.
- Environment Setup:
- A sample environment file is provided as
.env.sample
. - Copy
.env.sample
to.env
and replace the dummy values with actual values for your setup.MONGODB_URI
: URI for connecting to MongoDB. See here for more informationPAYLOAD_SECRET
: A secret value to use when signing JWTs for authentication into the dashboard. You may use anything here, but please change it from the default and keep it safe!COORDINATOR_URL
: If running locally, the sample value ofhttp://localhost:4005
will be correct. Otherwise, this will be the URL of the DCC Workflow Coordinator Service!TENANT_NAME
: The tenant name used to sign credentials. This will need to match what you set up in the DCC Services!STATUS_URL
: If running locally, the sample value ofhttp://localhost:4008
will be correct. Otherwise, this will be the URL of the DCC Credential Status Service!SMTP_HOST
: The SMTP host to use for sending emailsSMTP_USER
: The SMTP user to use for sending emailsSMTP_PASS
: The SMTP password to use for sending emailsEMAIL_FROM
: The Email From to use by default when sending emailsCLAIM_PAGE_URL
: If running locally, the sample value ofhttp://localhost:8080
will be correct. Otherwise, this will be the URL of your Claim Page!PAYLOAD_PUBLIC_SERVER_URL
: If running locally, the sample value ofhttp://localhost:3000
will be correct. Otherwise, this will be the URL of your Dashboard API!
- A sample environment file is provided as
Located inside services/dcc-services
, this service handles digital credential consortium functionalities. This includes three sub-services each with its own environment configuration:
-
Coordinator Service
-
Signing Service
-
Status Service
-
Environment Setup:
- Sample environment files are provided for each service as
.coordinator.env.sample
,.signing-service.env.sample
, and.status-service.env.sample
. - More information on each configuration can be found here.
- Copy these sample files to
.coordinator.env
,.signing-service.env
, and.status-service.env
respectively, replacing the dummy values with actual values for your setup..coordinator.env
ENABLE_STATUS_SERVICE
: Set this to truePUBLIC_EXCHANGE_HOST
: This must be set to the API route of the Dashboard service.- If running locally, you may use
http://localhost:3000/api
- If running locally and you would like to test out the QR codes with your phone, you can use the command
ip a
to find your local IP, and set it to that (e.g.http://192.168.68.68:3000/api
) - At deploy time, this should be set to the API route of the live Dashboard service.
- If running locally, you may use
TENANT_TOKEN_${TENANT_NAME}
: This should be set toUNPROTECTED
for now. We are not using JWTs for tenants (yet)
.signing-service.env
TENANT_SEED_${TENANT_NAME}
: This should be set to a random, secure hex string to be used as the seed for signing VCs
.status-service.env
- See here for information about setting this up
- Additionally, you'll want to set
CRED_STATUS_DID_SEED
to a secure random hex string to use as the seed for signing the Status Service VCs. This can, but does not have to, be different than the seed used in the signing service
- Sample environment files are provided for each service as
The services are dockerized and a top-level compose.yaml
is provided to orchestrate the deployment of the Claim Page, Dashboard, and all DCC services.
For local deployment, you can use Docker Compose to bring up the services:
docker-compose -f compose.yaml up
For cloud deployment (e.g., on an AWS EC2 instance), you can also use the provided compose.yaml
file with Docker Compose. Alternatively, the containers for Claim Page and Dashboard are available on Docker Hub and can be run independently.
docker-compose -f compose.yaml up -d
Note: Ensure that you have Docker and Docker Compose installed on your machine for deploying the services.
MIT © MIT