Skip to content

StephenAbbott/bods-validator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BODS Validator & Visualiser

An online tool for validating beneficial ownership data against the Beneficial Ownership Data Standard (BODS) v0.4 schema, providing actionable guidance and ownership visualisations.

BODS Validator Python React License

Live demo: bods-validator.onrender.com

Part of the BODS Interoperability Toolkit.

Features

  • Schema Validation — Validate JSON data against the BODS 0.4 schema using lib-cove-bods, which performs JSON schema validation plus 26 additional compliance checks
  • Actionable Advice — Get clear guidance on each issue with links to the relevant BODS documentation
  • Ownership Visualisation — Render interactive ownership diagrams using the @openownership/bods-dagre library with BOVS icons and conventions
  • Country Examples — Real-world examples showing how national beneficial ownership data maps to BODS:
    • 🇬🇧 UK — Companies House PSC (People with Significant Control)
    • 🇫🇷 France — RNE / INPI (Registre National des Entreprises)
    • 🇮🇩 Indonesia — AHU (Administrasi Hukum Umum)
    • 🇳🇴 Norway — Brønnøysund Register Centre (Reelle Rettighetshavere)
  • Data Comparison — Side-by-side views showing original national data formats alongside their BODS 0.4 mappings
  • Multiple Input Methods — Paste JSON, upload a file, or fetch from a URL

Quick Start

Prerequisites

  • Python 3.9+
  • Node.js 18+

Setup

# Clone the repository
git clone https://github.com/StephenAbbott/bods-validator.git
cd bods-validator

# Backend setup
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cd ..

# Frontend setup
cd frontend
npm install
cd ..

Run

# Option 1: Use the start script
bash start.sh

# Option 2: Start manually
# Terminal 1 - Backend (port 8000)
cd backend && source venv/bin/activate && uvicorn app.main:app --host 0.0.0.0 --port 8000

# Terminal 2 - Frontend (port 5173)
cd frontend && npm run dev

Open http://localhost:5173 in your browser.

Architecture

bods-validator/
├── backend/
│   ├── app/
│   │   ├── main.py          # FastAPI endpoints
│   │   ├── validator.py     # lib-cove-bods wrapper with advice engine
│   │   └── examples.py      # Country example datasets
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── App.tsx           # Main application
│   │   ├── api.ts            # API client
│   │   ├── types.ts          # TypeScript interfaces
│   │   └── components/
│   │       ├── InputPanel.tsx          # JSON paste, file upload, URL fetch
│   │       ├── ResultsPanel.tsx        # Validation results with tabs
│   │       ├── ExamplesPanel.tsx       # Country example selector
│   │       ├── VisualisationPanel.tsx  # BOVS ownership diagrams
│   │       └── DataComparisonPanel.tsx # Side-by-side data mapping
│   └── public/
│       └── bods-images/      # BOVS icons (person, organisation, etc.)
└── start.sh

Backend: FastAPI (Python) — validates BODS data using lib-cove-bods, serves example datasets

Frontend: React + Vite + TypeScript + Tailwind CSS v4 — responsive UI with BOVS design system

API Endpoints

Endpoint Method Description
/api/health GET Health check
/api/examples GET List available examples
/api/examples/{id} GET Get example data by ID
/api/validate POST Validate JSON data
/api/validate/file POST Validate uploaded file
/api/validate/url POST Validate from URL

Design System

The UI follows the Beneficial Ownership Visualisation System (BOVS):

  • Purple (#652eb1) — Ownership relationships
  • Cyan (#349aee) — Control relationships
  • BOVS iconography for persons, organisations, arrangements, and states

Resources

Acknowledgements

Built using open-source tools from Open Ownership. Country data examples are based on public register formats from the UK (Companies House), France (INPI), Indonesia (AHU/Kemenkumham), and Norway (Brønnøysund Register Centre).

License

MIT

About

Validate and visualise beneficial ownership data against version 0.4 of the Beneficial Ownership Data Standard (BODS) schema

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors