Files
Goa-gel-fullstack/Documentation/architecture/index.md
Mahi 6ec8d3236d feat: Rebrand to License Authority with Govt of Goa branding
- Replace TLAS with License Authority throughout documentation
- Add Government of Goa emblem/logo (Ashoka Chakra style)
- Update frontend branding to match documentation
- Add configurable Swagger API link via VITE_API_BASE_URL env var
- Fix Docker build for VitePress (git dependency, .dockerignore)
- Fix helmet security headers for HTTP deployments
- Add CORS support for VM deployment

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 00:46:25 -04:00

7.0 KiB

Architecture Overview

System Architecture

┌─────────────────────────────────────────────────────────────────────┐
│                           License Authority Platform                              │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                    Presentation Layer                        │   │
│  │  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐      │   │
│  │  │   Citizen    │  │  Department  │  │    Admin     │      │   │
│  │  │   Portal     │  │    Portal    │  │   Console    │      │   │
│  │  │  (Angular)   │  │  (Angular)   │  │  (Angular)   │      │   │
│  │  └──────────────┘  └──────────────┘  └──────────────┘      │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                │                                    │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                    Application Layer                         │   │
│  │                                                              │   │
│  │  ┌─────────────────────────────────────────────────────┐   │   │
│  │  │                  API Gateway (NestJS)                │   │   │
│  │  │  ┌───────────┐ ┌───────────┐ ┌───────────┐         │   │   │
│  │  │  │   Auth    │ │Applications│ │ Documents │         │   │   │
│  │  │  │  Module   │ │  Module   │ │  Module   │         │   │   │
│  │  │  └───────────┘ └───────────┘ └───────────┘         │   │   │
│  │  └─────────────────────────────────────────────────────┘   │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                │                                    │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                      Data Layer                              │   │
│  │  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐      │   │
│  │  │  PostgreSQL  │  │    Redis     │  │  File Store  │      │   │
│  │  │  (Primary)   │  │   (Cache)    │  │  (Documents) │      │   │
│  │  └──────────────┘  └──────────────┘  └──────────────┘      │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                │                                    │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                   Blockchain Layer                           │   │
│  │  ┌────────────────────────────────────────────────────┐    │   │
│  │  │              Hyperledger Besu Network               │    │   │
│  │  │  ┌─────────────┐  ┌─────────────┐                  │    │   │
│  │  │  │  NFT Smart  │  │   Ledger    │                  │    │   │
│  │  │  │  Contract   │  │   Storage   │                  │    │   │
│  │  │  └─────────────┘  └─────────────┘                  │    │   │
│  │  └────────────────────────────────────────────────────┘    │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘

Key Design Decisions

Decision Rationale
Angular SPA Rich interactive UI, offline capability
NestJS Backend TypeScript consistency, modular architecture
PostgreSQL ACID compliance, JSON support, proven reliability
Hyperledger Besu Ethereum-compatible, enterprise features, private network
Docker Containers Consistent deployment, scalability

Data Flow

  1. Application Submission: User → Frontend → API → Database → Workflow Engine
  2. Document Upload: User → Frontend → API → File Storage → Hash to Blockchain
  3. Certificate Issuance: Approval → Smart Contract → NFT Minted → Certificate Generated

Scalability

  • Horizontal scaling: Multiple API instances behind load balancer
  • Database scaling: Read replicas for query load
  • Caching: Redis for session and query caching
  • Async processing: Queue-based document processing