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

View File

@@ -0,0 +1,40 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 120" fill="currentColor">
<!-- Stylized Goa State Emblem -->
<!-- Ashoka Lions (Top) -->
<g transform="translate(50, 20)">
<!-- Lion Capital representation -->
<rect x="-15" y="0" width="30" height="8" rx="2"/>
<rect x="-12" y="-8" width="24" height="10" rx="3"/>
<!-- Wheel representation -->
<circle cx="0" cy="4" r="3" fill="none" stroke="currentColor" stroke-width="1"/>
</g>
<!-- Main Emblem Body -->
<g transform="translate(50, 55)">
<!-- Vriksha Deep (Traditional Lamp) -->
<path d="M0,-20 L8,-5 L5,15 L-5,15 L-8,-5 Z" fill="currentColor"/>
<!-- Flame -->
<ellipse cx="0" cy="-25" rx="4" ry="6"/>
<!-- Base -->
<rect x="-10" y="15" width="20" height="4" rx="1"/>
<!-- Coconut Palm Leaves (Left) -->
<path d="M-20,5 Q-30,-10 -25,-25 Q-20,-15 -15,0" fill="none" stroke="currentColor" stroke-width="2"/>
<path d="M-18,8 Q-28,-5 -23,-20" fill="none" stroke="currentColor" stroke-width="2"/>
<!-- Coconut Palm Leaves (Right) -->
<path d="M20,5 Q30,-10 25,-25 Q20,-15 15,0" fill="none" stroke="currentColor" stroke-width="2"/>
<path d="M18,8 Q28,-5 23,-20" fill="none" stroke="currentColor" stroke-width="2"/>
</g>
<!-- Supporting Hands -->
<g transform="translate(50, 90)">
<!-- Left Hand -->
<path d="M-25,0 Q-20,-5 -15,0 L-10,15 L-30,15 Z" fill="currentColor"/>
<!-- Right Hand -->
<path d="M25,0 Q20,-5 15,0 L10,15 L30,15 Z" fill="currentColor"/>
</g>
<!-- Base Banner -->
<rect x="15" y="105" width="70" height="10" rx="2"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB