Skip to content

Hodazia/kubecredentials

Repository files navigation

🪪 KUBEcredentials

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

🌐 Live URLs

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/

LOOM LINKS

Part-1 -> The web app flow!
Part-2 -> LOCAL K8’s flow!

🧱 Project Structure

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


🧩 Microservices Overview

🪙 Issuance Service

  • 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.


✅ Verification 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


💻 Frontend (React)

  • 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/


⚙️ Technologies Used

  • 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

🚀 Running Locally

Clone the Repository

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
  1. First pull the docker images from the docker hub,
docker pull zia2025/kubecredentials-issuance-service:latest
docker pull zia2025/kubecredentials-verification-service:latest
  1. Create a network , so that both dockerized images once run, can talk to one another
docker create network kube-cred-net
  1. 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

K8's workflow

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

About

the repo contains solution for the assignment given by zupple

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published