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:
54
frontend/src/app/api/models/document.models.ts
Normal file
54
frontend/src/app/api/models/document.models.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
* Document API Models
|
||||
* Models for document management
|
||||
*/
|
||||
|
||||
export type DocumentType =
|
||||
| 'FIRE_SAFETY_CERTIFICATE'
|
||||
| 'BUILDING_PLAN'
|
||||
| 'PROPERTY_OWNERSHIP'
|
||||
| 'INSPECTION_REPORT'
|
||||
| 'POLLUTION_CERTIFICATE'
|
||||
| 'ELECTRICAL_SAFETY_CERTIFICATE'
|
||||
| 'STRUCTURAL_STABILITY_CERTIFICATE'
|
||||
| 'IDENTITY_PROOF'
|
||||
| 'ADDRESS_PROOF'
|
||||
| 'OTHER';
|
||||
|
||||
export interface UploadDocumentDto {
|
||||
docType: DocumentType;
|
||||
description?: string;
|
||||
file?: File;
|
||||
}
|
||||
|
||||
export interface DocumentResponseDto {
|
||||
id: string;
|
||||
requestId: string;
|
||||
docType: string;
|
||||
originalFilename: string;
|
||||
currentVersion: number;
|
||||
currentHash: string;
|
||||
minioBucket: string;
|
||||
isActive: boolean;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
export interface DocumentVersionResponseDto {
|
||||
id: string;
|
||||
documentId: string;
|
||||
version: number;
|
||||
hash: string;
|
||||
minioPath: string;
|
||||
fileSize: string;
|
||||
mimeType: string;
|
||||
uploadedBy: string;
|
||||
blockchainTxHash?: string;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export interface DownloadUrlResponseDto {
|
||||
url: string;
|
||||
expiresAt: string;
|
||||
expiresIn: number;
|
||||
}
|
||||
Reference in New Issue
Block a user