Ethiopian reference implementation of the GovStack Registration Building Block specification. Digitizes Business Registration, Trade License Renewal, and Manufacturing Permit workflows with Fayda/eSignet national digital ID integration.
# govstack-bb-registration-et
**Ethiopian reference implementation of the GovStack Registration Building Block specification.**
---
## What This Is
This project is a production-grade Node.js/TypeScript backend that implements the GovStack Registration Building Block (BB) specification for the Federal Democratic Republic of Ethiopia. It demonstrates how digital public goods standards can be concretely applied within a national government context, serving as both a live reference system and a replicable template for other GovStack member states.
The system digitises three high-volume government registration workflows:
1. **Private Limited Company (PLC) formation** — Ministry of Trade and Regional Integration
2. **Annual Trade License renewal** — Ministry of Trade, with Ethiopian fiscal calendar awareness
3. **Manufacturing Permit issuance** — Ministry of Industry, with ESIA clearance for high-impact sectors
Each workflow implements the GovStack state machine model — from citizen application through multi-step back-office review to certificate issuance — with full bilingual support (Amharic and English), and integration with Ethiopia's national digital identity infrastructure (Fayda/eSignet).
As a GovStack reference implementation, this codebase is designed to be studied alongside the specification. Every significant architectural decision maps directly to a GovStack Cross-Functional Requirement (CFR), and the code is structured so that the mapping is navigable.
---
## Architecture
```mermaid
graph TB
subgraph Client
A[Citizen / Business Portal React frontend — separate repo]
end
subgraph RegistrationBB["GovStack Registration BB (this repo)"]
direction TB
F[Fastify API :3000]
subgraph Modules
AUTH[Auth Fayda/eSignet OIDC]
SVC[Services & eForms]
APP[Applications lifecycle]
DOC[Document upload]
TASK[Back-office Tasks]
STAT[Statistics]
end
subgraph Infra
PG[(PostgreSQL 16 Prisma ORM)]
RD[(Redis 7)]
end
F --> Modules
Modules --> Infra
end
subgraph Ext …