# Goa GEL - Quick Start Guide ## πŸš€ 5-Minute Overview The **Goa Government E-License (GEL) Platform** is a blockchain-based document verification system that enables multi-department approval workflows for government licenses using: - **Hyperledger Besu** (blockchain) - **NestJS** (backend API) - **Next.js** (frontend) - **PostgreSQL** + **MinIO** (data storage) - **QBFT Consensus** (4 validators) - **ERC-721 Soulbound NFTs** (license certificates) --- ## πŸ“‚ What's in This Directory? ``` /sessions/cool-elegant-faraday/mnt/Goa-GEL/ β”œβ”€β”€ 6 Mermaid Diagrams (.mermaid files) β”œβ”€β”€ 6 HTML Preview Files (.html files) β”œβ”€β”€ 3 Documentation Files (.md files) └── 3 Utility Scripts (.js files) ``` --- ## 🎯 Start Here (Choose Your Role) ### I'm a Project Manager / Non-Technical Stakeholder 1. Open `system-context.html` in your browser 2. Read `INDEX.md` - Section "Diagram Descriptions" 3. Reference `ARCHITECTURE_GUIDE.md` - Sections 1, 7, 8 **Time: 15 minutes** ### I'm a Backend Developer 1. Open `container-architecture.html` 2. Read `ARCHITECTURE_GUIDE.md` - Sections 2, 3, 5, 6 3. Study the smart contract details in Section 3 4. Review data flow in Section 5 **Time: 45 minutes** ### I'm a Frontend Developer 1. Open `system-context.html` 2. Read `ARCHITECTURE_GUIDE.md` - Section 2 (Frontend Layer only) 3. Review `container-architecture.html` 4. Check deployment in Section 6 **Time: 20 minutes** ### I'm a DevOps / Infrastructure Engineer 1. Open `deployment-architecture.html` 2. Read `ARCHITECTURE_GUIDE.md` - Section 6 (Deployment) 3. Review Docker Compose configuration details 4. Check Section 3 for blockchain node setup **Time: 30 minutes** ### I'm a Blockchain / Smart Contract Developer 1. Open `blockchain-architecture.html` 2. Read `ARCHITECTURE_GUIDE.md` - Section 3 (Blockchain Deep Dive) 3. Study the 4 smart contracts section 4. Review on-chain vs off-chain data split **Time: 40 minutes** ### I'm a QA / Tester 1. Open `workflow-state-machine.html` 2. Open `data-flow.html` 3. Read `ARCHITECTURE_GUIDE.md` - Sections 4 (Workflows) and 5 (Data Flow) 4. Create test cases based on the 11-step process **Time: 35 minutes** --- ## πŸ“Š View Diagrams ### Browser Preview (Easiest) Open any .html file in your web browser: ```bash # Linux/Mac firefox system-context.html # Or google-chrome container-architecture.html # Or (macOS) open workflow-state-machine.html ``` ### Mermaid Live (Online, Interactive) 1. Go to https://mermaid.live 2. Copy content from any .mermaid file 3. Paste into editor 4. View instant diagram 5. Download as PNG/SVG ### Export to PNG (if needed) See `README.md` for 5 different methods: - **Method 1**: Mermaid Live (easiest) - **Method 2**: NPM CLI - **Method 3**: Docker - **Method 4**: Browser screenshot - **Method 5**: Kroki.io API --- ## πŸ—οΈ Architecture at a Glance ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ USERS / STAKEHOLDERS β”‚ β”‚ Citizens β€’ Departments β€’ Approvers β€’ Admins β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ FRONTEND (Next.js) β”‚ β”‚ Port 3000 β€’ shadcn/ui β€’ Tailwind β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ API GATEWAY (NestJS) β”‚ β”‚ Port 3001 β€’ Auth β€’ Workflow β€’ Approvals β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β” β”‚PostgreSQL β”‚ Redis β”‚ β”‚ MinIO β”‚ β”‚ Besu β”‚ β”‚(5432) β”‚ (6379) β”‚ β”‚ (9000) β”‚ β”‚(8545+) β”‚ β”‚Database β”‚ Cache β”‚ β”‚ Storage β”‚ β”‚Blockchain β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **Key Components**: - Frontend: React UI for users - Backend: NestJS for business logic - Database: PostgreSQL for structured data - Cache: Redis for real-time state - Storage: MinIO for documents - Blockchain: Besu for immutable records --- ## πŸ”„ License Approval Flow (11 Steps) ``` 1. Citizen Creates License Request └─> Upload documents (PDF, images, etc.) 2. Documents Hashed └─> SHA-256 hash of each document 3. Blockchain Recording └─> Hash recorded on Besu (QBFT consensus) 4. Route to Departments └─> Tourism + Fire Safety (parallel) 5-6. Departments Receive Notifications └─> Ready for review 7-8. Departments Approve (Parallel) └─> Record approvals on blockchain 9. NFT Minting └─> ERC-721 Soulbound license certificate 10. Notifications Sent └─> Citizen receives approval 11. Verification └─> Anyone can verify on blockchain ``` --- ## ⛓️ Blockchain Details ### Consensus - **Type**: QBFT (Quorum Byzantine Fault Tolerant) - **Validators**: 4 nodes - **Requirement**: 3/4 (75%) agreement - **Block Time**: ~12 seconds - **Network**: Private permissioned ### Smart Contracts (4) | Contract | Purpose | Key Functions | |----------|---------|---| | LicenseRequestNFT | Issue licenses as NFTs | mint(), burn(), ownerOf() | | ApprovalManager | Record approvals | recordApproval(), getApprovalChain() | | DepartmentRegistry | Manage departments | registerDept(), setApprovers() | | WorkflowRegistry | Define workflows | defineWorkflow(), getWorkflow() | ### Data Strategy **On-Chain** (Immutable & Verifiable): - License hashes - Approval signatures - Department registry - NFT ownership **Off-Chain** (Searchable & Scalable): - Full document details - Applicant information - Actual document files - Workflow state **Link**: SHA-256 hash bridges both worlds --- ## πŸš€ Get Started ### Step 1: View a Diagram ```bash # Open system-context.html in your browser open /sessions/cool-elegant-faraday/mnt/Goa-GEL/system-context.html ``` ### Step 2: Read Documentation - Start: `INDEX.md` (this is your navigation guide) - Quick overview: `README.md` - Deep dive: `ARCHITECTURE_GUIDE.md` (sections based on your role) ### Step 3: Understand Your Domain - **Frontend Dev**: See container-architecture.html (Frontend section) - **Backend Dev**: See container-architecture.html (API section) - **Blockchain Dev**: See blockchain-architecture.html - **DevOps**: See deployment-architecture.html ### Step 4: Plan Implementation Use the detailed architecture guide to plan your specific implementation. --- ## πŸ“š Documentation Files Explained | File | Best For | Read Time | |------|----------|-----------| | `INDEX.md` | Navigation & overview | 10 min | | `README.md` | Quick reference | 8 min | | `ARCHITECTURE_GUIDE.md` | Deep technical details | 30 min | | `QUICK_START.md` | This file - getting oriented | 5 min | --- ## πŸŽ“ Learning Path (Recommended) ### For Everyone (Required) 1. βœ“ Read this file (QUICK_START.md) 2. βœ“ Open system-context.html in browser 3. βœ“ Read INDEX.md **Time: 20 minutes** ### Role-Specific (Choose One) **Backend Developers**: - container-architecture.html - ARCHITECTURE_GUIDE.md - Sections 2, 3, 5, 6 - Database schema in Section 3 **Frontend Developers**: - container-architecture.html (Frontend section) - deployment-architecture.html - ARCHITECTURE_GUIDE.md - Section 2 **Blockchain Developers**: - blockchain-architecture.html - ARCHITECTURE_GUIDE.md - Section 3 - Smart contracts overview **DevOps Engineers**: - deployment-architecture.html - ARCHITECTURE_GUIDE.md - Section 6 - Docker Compose details --- ## ❓ Common Questions **Q: Where do I start?** A: Open `system-context.html` in your browser for a visual overview. **Q: How do I convert diagrams to PNG?** A: See `README.md` - 5 different methods listed (Mermaid Live is easiest). **Q: What's the technology stack?** A: See section "Technology Stack Summary" in INDEX.md or ARCHITECTURE_GUIDE.md appendix. **Q: How does blockchain integration work?** A: See data-flow.html (Steps 3, 9) and ARCHITECTURE_GUIDE.md Section 3. **Q: What's the deployment process?** A: See deployment-architecture.html and ARCHITECTURE_GUIDE.md Section 6. **Q: How many smart contracts are there?** A: 4 contracts: LicenseRequestNFT, ApprovalManager, DepartmentRegistry, WorkflowRegistry. **Q: Can I run this locally?** A: Yes, see deployment-architecture.html for Docker Compose setup. **Q: How does multi-department approval work?** A: See workflow-state-machine.html and data-flow.html (Steps 5-8). --- ## πŸ“ž File Manifest ``` Core Diagrams (6 files): β”œβ”€β”€ system-context.mermaid (40 lines) β”œβ”€β”€ container-architecture.mermaid (64 lines) β”œβ”€β”€ blockchain-architecture.mermaid (75 lines) β”œβ”€β”€ workflow-state-machine.mermaid (65 lines) β”œβ”€β”€ data-flow.mermaid (105 lines) └── deployment-architecture.mermaid (102 lines) HTML Previews (6 files): β”œβ”€β”€ system-context.html β”œβ”€β”€ container-architecture.html β”œβ”€β”€ blockchain-architecture.html β”œβ”€β”€ workflow-state-machine.html β”œβ”€β”€ data-flow.html └── deployment-architecture.html Documentation (3 files): β”œβ”€β”€ INDEX.md (comprehensive index and navigation) β”œβ”€β”€ README.md (overview and PNG conversion) └── ARCHITECTURE_GUIDE.md (1000+ line technical guide) Utilities (3 files): β”œβ”€β”€ convert.js β”œβ”€β”€ convert-to-png.js └── screenshot-diagrams.js ``` **Total**: 18 files, 140 KB, 2,800+ lines of diagrams & docs --- ## βœ… Next Steps 1. **Now**: Open any .html file in your browser 2. **Next**: Read `INDEX.md` for detailed navigation 3. **Then**: Read role-specific sections in `ARCHITECTURE_GUIDE.md` 4. **Finally**: Use diagrams as reference during implementation --- **Version**: 1.0 **Created**: 2026-02-03 **Platform**: Goa GEL (Government E-License) **Status**: POC Phase 1 --- *Ready to dive in? Open `system-context.html` now!*