Files

367 lines
11 KiB
Markdown
Raw Permalink Normal View History

# 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!*