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
102 lines
2.3 KiB
HTML
102 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>workflow-state-machine</title>
|
|
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
|
|
<style>
|
|
body {
|
|
margin: 0;
|
|
padding: 20px;
|
|
background: #1a1a1a;
|
|
color: #fff;
|
|
font-family: Arial, sans-serif;
|
|
}
|
|
h1 {
|
|
text-align: center;
|
|
color: #3b82f6;
|
|
}
|
|
.mermaid {
|
|
display: flex;
|
|
justify-content: center;
|
|
background: transparent;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>WORKFLOW STATE MACHINE</h1>
|
|
<div class="mermaid">
|
|
stateDiagram-v2
|
|
[*] --> DRAFT: Create Request
|
|
|
|
DRAFT --> SUBMITTED: Submit for<br/>Review
|
|
DRAFT --> [*]: Abandon
|
|
|
|
SUBMITTED --> IN_REVIEW: Route to<br/>Dept Approvers
|
|
SUBMITTED --> [*]: Withdraw
|
|
|
|
IN_REVIEW --> APPROVED: All Depts<br/>Approve
|
|
IN_REVIEW --> REJECTED: Any Dept<br/>Rejects
|
|
IN_REVIEW --> PENDING_RESUBMISSION: Request<br/>Changes
|
|
|
|
PENDING_RESUBMISSION --> SUBMITTED: Resubmit with<br/>Changes
|
|
PENDING_RESUBMISSION --> [*]: Withdraw
|
|
|
|
APPROVED --> REVOKED: License<br/>Revocation
|
|
APPROVED --> [*]: Expired
|
|
|
|
REJECTED --> DRAFT: Appeal or<br/>Reapply
|
|
REJECTED --> [*]: Withdrawn
|
|
|
|
REVOKED --> [*]: End
|
|
|
|
note right of DRAFT
|
|
Local Draft
|
|
Applicant can edit
|
|
No blockchain record
|
|
end note
|
|
|
|
note right of SUBMITTED
|
|
Submitted to System
|
|
Hash recorded on chain
|
|
Locked from editing
|
|
end note
|
|
|
|
note right of IN_REVIEW
|
|
Multi-Dept Approval
|
|
Parallel workflows
|
|
Can be sequential
|
|
end note
|
|
|
|
note right of PENDING_RESUBMISSION
|
|
Waiting for changes
|
|
Applicant notified
|
|
Time limited window
|
|
end note
|
|
|
|
note right of APPROVED
|
|
License Granted
|
|
ERC-721 NFT minted
|
|
Verifiable on chain
|
|
end note
|
|
|
|
note right of REJECTED
|
|
Request Denied
|
|
Reason recorded
|
|
Can appeal (future)
|
|
end note
|
|
|
|
note right of REVOKED
|
|
License Cancelled
|
|
NFT burned
|
|
Audit trail kept
|
|
end note
|
|
|
|
</div>
|
|
<script>
|
|
mermaid.initialize({ startOnLoad: true, theme: 'dark' });
|
|
mermaid.contentLoaded();
|
|
</script>
|
|
</body>
|
|
</html> |