KUBEcredentials is a full-stack microservices-based web application for managing digital credential issuance and verification.
It includes two backend microservices (issuance-service and verification-service) and a React-based frontend hosted on Vercel.
NAME - ZIAUL HODA
EMAIL - zia23hoda@gmail.com
CONTACT_NUMER - 7985293610
| Service | URL |
|---|---|
| Frontend (React) | https://kubecredentials-delta.vercel.app/ |
| Issuance Service (Backend) | http://issuance.zia-hoda.org/ |
| Verification Service (Backend) | https://verification.zia-hoda.org/ |
Part-1 -> The web app flow!
Part-2 -> LOCAL K8’s flow!
KUBEcredentials/
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── assets/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── App.tsx
│ │ ├── main.tsx
│ │ ├── index.css
│ │ └── App.css
│ ├── index.html
│ ├── package.json
│ ├── tsconfig.json
│ ├── tsconfig.app.json
│ ├── tsconfig.node.json
│ ├── eslint.config.js
│ ├── vercel.json
│ └── README.md
│
├── issuance-service/
│ ├── src/
│ │ ├── config/
│ │ │ └── types.ts
│ │ ├── Database/
│ │ │ └── db.ts
│ │ ├── router/
│ │ │ └── routes.ts
│ │ ├── services/
│ │ │ └── issuance-serv.ts
│ │ ├── test/
│ │ │ └── issuance-serv.test.ts
│ │ └── index.ts
│ ├── .env
│ ├── Dockerfile
│ ├── jest.config.ts
│ ├── tsconfig.json
│ ├── package.json
│ └── .gitignore
│
├── verification-service/
│ ├── src/
│ │ ├── lib/
│ │ │ ├── db.ts
│ │ │ └── types.ts
│ │ ├── router/
│ │ │ └── routes.ts
│ │ ├── services/
│ │ │ └── verifservice.ts
│ │ ├── test/
│ │ │ └── verification.test.ts
│ │ └── index.ts
│ ├── .env
│ ├── Dockerfile
│ ├── jest.config.ts
│ ├── tsconfig.json
│ ├── package.json
│ └── .gitignore
│
|── K8s/
│ ├── issuance-deployment.yaml
│ ├── issuance-service.yaml
│ ├── kind-cluster.yaml
| ├── verification-deployment.yaml
| ├── verification-service.yaml
└── README.md
- Responsible for issuing digital credentials.
- Exposes REST APIs for credential creation, storage, and metadata handling.
- Built with Node.js, TypeScript, and Express.
- Includes automated tests via Jest.
Docker Image:
zia2025/kubecredentials-issuance-service.
- Handles verification of issued credentials.
- Validates authenticity and integrity.
- Built with Node.js, TypeScript, and Express.
- Includes Vitest/Jest for testing.
Docker Image:
zia2025/kubecredentials-verification-service
- Developed using React + TypeScript (Vite).
- Allows users to issue and verify credentials through an intuitive interface.
- Hosted on Vercel.
Live URL:
https://kubecredentials-delta.vercel.app/
- Frontend: React, TypeScript, Vite, CSS
- Backend: Node.js, Express, TypeScript
- Database: (Add if applicable – e.g., MongoDB, PostgreSQL)
- Testing: Jest / Vitest
- Containerization: Docker
- Hosting:
- Frontend → Vercel
- Backend → Custom domain on EC2 / Nginx
OPTION - 1 , WITHOUT DOCKER
git clone https://github.com/<your-username>/KUBEcredentials.git
cd KUBEcredentials
Start Frontend
cd frontend
npm install
npm run dev
Start Issuance Service
cd issuance-service
npm install
npm run dev
Start Verification Service
cd verification-service
npm install
npm run dev
You will see the frontend deployed on
localhost:5173
The backend microservices will be running on
http://localhost:3000 & http://localhost:3001
- WITH DOCKER
- First pull the docker images from the docker hub,
docker pull zia2025/kubecredentials-issuance-service:latest
docker pull zia2025/kubecredentials-verification-service:latest
- Create a network , so that both dockerized images once run, can talk to one another
docker create network kube-cred-net
- Run the docker images
docker run -d --name issuance-service --network kube-cred-net -p 3000:3000 zia2025/kubecredentials-issuance-service
docker run -d --name verification-service --network kubecred-net -p 3001:3001 -e ISSUANCE_SERVICE_URL=http://issuance-service:3000 zia2025/kubecredentials-verification-service
So now I will be sharing u about the flow of K8’s local deployment. So i have not bought any K8 cluster service from AWS or Digital Ocean, because it costs around 40$ or plus,
STEP-1. Make sure you have kind installed and kubectl installed too!, Then create a cluster file, it is already created by kind-cluster.yaml in the k8s folder, now run
kind create cluster --name kubecredentials --config k8s/kind-cluster.yaml
STEP-2. All the yaml files have been defined in the k8s so you just have to run them one by one!
, the image that Kubectl runs is the docker image that i had defined which are
docker pull zia2025/kubecredentials-issuance-service
docker pull zia2025/kubecredentials-verifcation-service
And then run the commands one by one, to start all the K8 services and deployments!
kubectl apply -f k8s/issuance-deployment.yaml
kubectl apply -f k8s/issuance-service.yaml
kubectl apply -f k8s/verification-deployment.yaml
kubectl apply -f k8s/verification-service.yaml
STEP-3. Now check if everything is running successfully!
Check pods
kubectl get pods
Check services
kubectl get svc
STEP-4. 1. Port Forwarding,
Let’s bypass the Service and connect straight to the Pod:
kubectl port-forward deployment/issuance-deployment 3000:3000
kubectl port-forward deployment/verification-deployment 3001:3001
- All the documentation in brief is written in the below Notion Doc, you can check this out as well , (Notion Doc) | Notion Document