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:
102
workflow-state-machine.html
Normal file
102
workflow-state-machine.html
Normal file
@@ -0,0 +1,102 @@
|
||||
<!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>
|
||||
Reference in New Issue
Block a user