Files
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

75 lines
7.0 KiB
Markdown

# 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