Skip to content

UVerify-io/uverify-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

244 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ’Ž Welcome to UVerify: Your Gateway to Blockchain Simplicity

Test Workflow Status Test Workflow Status Release Workflow Status Conventional Commits Join our Discord CLA assistant

UVerify makes blockchain technology accessible to everyone, regardless of prior experience. Effortlessly secure your file or text hashes on the Cardano blockchain. Want to try it out before diving into the code? Visit app.uverify.io to explore the app.

πŸš€ Getting Started

To get started, clone the repository and run the following commands:

npm install
npm run dev

🌻 Environment Variables

To run the application, you need to set up the following environment variables in a .env file:

VITE_BACKEND_URL=http://localhost:9090
VITE_CARDANO_NETWORK=preprod
Variable Name Description Default Value
VITE_BACKEND_URL URL of the UVerify backend service http://localhost:9090
VITE_CARDANO_NETWORK Cardano network to connect to (e.g., preprod, preview, mainnet) preprod
ADDITIONAL_TEMPLATES_FILE Path to an alternative additional-templates.json file. Supports ~, absolute, and relative paths (relative to uverify-ui). Set this to load a custom template list without modifying the committed additional-templates.json. ./additional-templates.json

Using ADDITIONAL_TEMPLATES_FILE locally

Add it to your .env to load a local templates file during development:

ADDITIONAL_TEMPLATES_FILE=../uverify-examples/sandbox/vin-additional-templates.json

Using ADDITIONAL_TEMPLATES_FILE in Docker

Pass it as a build argument so templates are baked in at image build time:

# docker-compose.override.yml
services:
  uverify-ui:
    build:
      args:
        ADDITIONAL_TEMPLATES_FILE: ./my-additional-templates.json

The corresponding Dockerfile must declare the arg and export it as an env var before running npm run build:

ARG ADDITIONAL_TEMPLATES_FILE=./additional-templates.json
ENV ADDITIONAL_TEMPLATES_FILE=${ADDITIONAL_TEMPLATES_FILE}
RUN npm run build

πŸš€ Features

  • Blockchain-Backed Notary Service: Securely store file or text hashes on the Cardano blockchain for tamper-proof verification.
  • Intuitive User Interface: Simple and user-friendly design to streamline the notarization process.
  • Customizable Metadata: Add metadata to your hashes to enrich certificate details and personalize their appearance.
  • Flexible Certificate Templates: Tailor the look and feel of certificates using predefined or custom templates.
  • Web3 Partnership System: Contribute new templates or restrict access to specific templates for your users.
  • External Custom UI Templates: Integrate private or external templates from separate repositories for enhanced flexibility.

πŸ› οΈ Key Configuration Options

uverify_template_id

Use the uverify_template_id metadata field to customize the appearance of your certificates. This field allows you to select or define a template that matches your branding or use case.

Creating Custom Templates

You can create and contribute new certificate templates or restrict them to specific users via the Web3 Partnership System. Follow these steps to get started:

  1. Generate a Template: Use the UVerify CLI tool to initialize a new template:
    npx @uverify/cli init my-template
  2. Customize the Template: Modify the Certificate.tsx file in the generated template to suit your needs.
  3. Register the Template: Add an entry to additional-templates.json in the project root.

additional-templates.json

This file is the primary way to register additional certificate templates. It is read at build time by config.js and supports two entry types.

Local file β€” a template located relative to the uverify-ui directory:

[
  {
    "type": "file",
    "name": "MyCertificate",
    "path": "../path/to/my-template/src/Certificate.tsx"
  }
]

External repository β€” a template fetched from a git repository at a pinned commit (cloned into .template-cache/ during the build):

[
  {
    "type": "repository",
    "name": "PartnerTemplate",
    "url": "https://github.com/some-org/partner-template",
    "commit": "a3f1c2d4e5b6...",
    "path": "src/Certificate.tsx"
  }
]

Security note: The commit field pins the exact revision that will be used. This makes external templates fully auditable and prevents unexpected upstream changes from affecting your build. To update an external template, change the commit hash and open a pull request for review.

additional-templates.json is committed to this repository. To have your template included in the standard deployment at app.uverify.io, open a pull request adding a repository entry. All proposed templates undergo a security review before being merged.

For detailed instructions on creating and managing templates, visit the uverify-ui-template repository.

πŸ’™ Contributing

We welcome all contributions! Please read our Contributing Guidelines before getting started.

Important Notes:

  • Use semantic commits for all contributions.
  • Sign the Contributor License Agreement (CLA) before committing. You can review the CLA here and sign it via CLA Assistant. The CLA bot will guide you through the process when you open a pull request.
  • For feature requests or tasks, please open an issue first to align with the project goals.

πŸ“š Additional Documents

πŸ“œ License

This project is licensed under the AGPL. If this license does not match your use case, feel free to reach out to us at hello@uverify.io to discuss alternative licensing options.

About

UVerify makes blockchain technology accessible to everyone, regardless of prior experience. Effortlessly secure your file or text hashes on the Cardano blockchain.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors