Project Setup

What We Are Doing:

  • Initializing a Node.js/Express project.

  • Installing necessary dependencies.

  • Preparing the base structure for integration with the Issuer and Verifier.

Why: We need a backend server that:

  • Interacts with the Issuer to request credential issuance.

  • Interacts with the Verifier to request verification.

  • Serves a frontend for user input and QR code display.

Steps:

  1. Create a new directory and initialize a Node.js project:

 mkdir evdi-tutorial && cd evdi-tutorial
 npm init -y
  1. Install dependencies:

 npm install express dotenv @empe/verifier-client @empe/identity jsonwebtoken node-fetch
  1. Project structure:

 evdi-tutorial/
   src/
     index.ts
     routes.ts
   public/
     index.html
     style.css
   .env
  1. Create a basic Express server (src/index.ts):

 import express from "express";
 import path from "path";
 import { fileURLToPath } from "url";
 import dotenv from "dotenv";
 import router from "./routes.js";

 dotenv.config();

 const __filename = fileURLToPath(import.meta.url);
 const __dirname = path.dirname(__filename);
 const PORT = process.env.PORT || 3000;
 const BASE_URL = process.env.BASE_URL ||`http://localhost:${PORT}`;
 const app = express();

 app.use(express.static(path.join(__dirname, "../public")));
 app.use(express.json());
 app.use(express.urlencoded({ extended: true }));
 app.use("/", router);

 app.listen(PORT, () => {
   console.log(`Server is running on ${BASE_URL}`);
 });

Next, we will deploy an Issuer and Verifier service via the One-Click Deployment portal.

Last updated