A credential issuance and verification system.
- Name: Tuhin Roy
- Email: [email protected]
This application consists of:
- Issuance Service: Node.js/TypeScript API for issuing credentials
- Verification Service: Node.js/TypeScript API for verifying credentials
- Database: SQLite for each service (production can use PostgreSQL/MySQL)
- Container Orchestration: Kubernetes with Docker containers
- Microservices: Separated issuance and verification for independent scaling.
- Database: SQLite for simplicity (easy to migrate to PostgreSQL/MySQL).
- State Management: Each service maintains its own data store.
- Communication: HTTP REST APIs with JSON payloads.
- Container Strategy: One service per container for better isolation.
- Credentials are JSON objects with flexible schema.
- Worker ID is derived from Kubernetes pod name.
- No authentication required.
- Simple duplicate detection based on credential hash.
- No data synchronization between services required.
- TypeScript: Type safety and better development experience
- Express.js: Lightweight and familiar Node.js framework
- SQLite: Zero-configuration, file-based database
- Docker: Industry standard containerization
- Kubernetes: Robust orchestration and scaling capabilities
- Node.js 18+
- Docker & Docker Compose
- kubectl (for K8s deployment)
- Git
# Clone the repository
git clone <repository-url>
cd cred-sys
# Install dependencies and start services
npm run install:all
npm run dev
# Run tests
npm run test:all
# Build Docker images
npm run docker:build# Deploy to Kubernetes cluster
kubectl apply -f k8s/
# Check deployment status
kubectl get pods
kubectl get servicesPOST /api/credentials- Issue a new credentialGET /api/health- Health check
POST /api/verify- Verify a credentialGET /api/health- Health check
cred-sys/
├── README.md
├── docker-compose.yml
├── backend/
│ ├── issuance-service/ # Credential issuance API
│ ├── verification-service/ # Credential verification API
├── k8s/ # Kubernetes deployment files
├── scripts/ # Build and deployment scripts
- Unit tests for all services and components
- Integration tests for API endpoints - Still needs development
- Docker container health checks
- Health check endpoints for all services
- Structured logging with Winston