feat: Goa GEL Blockchain e-Licensing Platform - Full Stack Implementation

Complete implementation of the Goa Government e-Licensing platform with:

Backend:
- NestJS API with JWT authentication
- PostgreSQL database with Knex ORM
- Redis caching and session management
- MinIO document storage
- Hyperledger Besu blockchain integration
- Multi-department workflow system
- Comprehensive API tests (266/282 passing)

Frontend:
- Angular 21 with standalone components
- Angular Material + TailwindCSS UI
- Visual workflow builder
- Document upload with progress tracking
- Blockchain explorer integration
- Role-based dashboards (Admin, Department, Citizen)
- E2E tests with Playwright (37 tests)

Infrastructure:
- Docker Compose orchestration
- Blockscout blockchain explorer
- Development and production configurations
This commit is contained in:
Mahi
2026-02-07 10:23:29 -04:00
commit 80566bf0a2
441 changed files with 102418 additions and 0 deletions

73
backend/.env.example Normal file
View File

@@ -0,0 +1,73 @@
# ===========================================
# Goa GEL Backend Environment Configuration
# ===========================================
# Application
NODE_ENV=development
PORT=3001
API_VERSION=v1
API_PREFIX=api
# Database (PostgreSQL)
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_NAME=goa_gel_platform
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres_secure_password
DATABASE_SSL=false
DATABASE_LOGGING=true
# Blockchain (Hyperledger Besu)
BESU_RPC_URL=http://localhost:8545
BESU_CHAIN_ID=1337
BESU_NETWORK_ID=2024
CONTRACT_ADDRESS_LICENSE_NFT=0x0000000000000000000000000000000000000001
CONTRACT_ADDRESS_APPROVAL_MANAGER=0x0000000000000000000000000000000000000002
CONTRACT_ADDRESS_DEPARTMENT_REGISTRY=0x0000000000000000000000000000000000000003
CONTRACT_ADDRESS_WORKFLOW_REGISTRY=0x0000000000000000000000000000000000000004
PLATFORM_WALLET_PRIVATE_KEY=0x0000000000000000000000000000000000000000000000000000000000000001
# MinIO (S3-Compatible Storage)
MINIO_ENDPOINT=localhost
MINIO_PORT=9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin_secure_password
MINIO_BUCKET_DOCUMENTS=goa-gel-documents
MINIO_USE_SSL=false
# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
# Security
JWT_SECRET=your-super-secure-jwt-secret-key-min-32-chars
JWT_EXPIRATION=1d
JWT_REFRESH_EXPIRATION=7d
API_KEY_SALT_ROUNDS=10
WEBHOOK_SIGNATURE_ALGORITHM=sha256
# File Upload
MAX_FILE_SIZE=10485760
ALLOWED_MIME_TYPES=application/pdf,image/jpeg,image/png,image/jpg
# Rate Limiting
RATE_LIMIT_TTL=60
RATE_LIMIT_GLOBAL=100
RATE_LIMIT_API_KEY=1000
RATE_LIMIT_UPLOAD=10
# Logging
LOG_LEVEL=info
LOG_FORMAT=json
# CORS
CORS_ORIGIN=http://localhost:3000
CORS_CREDENTIALS=true
# Swagger
SWAGGER_ENABLED=true
SWAGGER_TITLE=Goa GEL API
SWAGGER_DESCRIPTION=Blockchain Document Verification Platform API
SWAGGER_VERSION=1.0.0