Simple ICIJ Paradise Papers explorer powered by a Neo4J graph database, (an eventual) GraphQL server/data gateway, and a SvelteKit + d3.js visualizer frontend. Everything WIP… for the forseeable future.
- Raw CSV sources
- Cleanup and GraphQL type definition generation scripts (written in node.js)
- Database dump(s)
Very simple GraphQL server/gateway to Neo4J.
SvelteKit-based FE app with visualizations using d3.js. Currently reads data directly from a Neo4J database using the Neo4J JS driver, but one day hopefully powered by GraphQL.
-
Data exploration
- Select suitabled storage
- Graph DB
- Neo4J
- ArangoDB
- Graph DB
- Containerized or cloud DB host?
- docker
- Cloud (for now)
- Select cloud DB host
- GrapheneDB
- Neo4J Aura
- Select suitabled storage
-
Data engineering
- Cleanup, format source CSVs for import
- Import data into local DB
- Nodes
- Edges
- Export local DB for cloud DB import
- Create/generate data types/definitions
-
Cloud DB setup
- Configure cloud DB (trial for now)
- Import local DB export into cloud DB
- Create read-only user for initial visualization (not supported by Neo4J Community, unfortunately)
-
Data gateway/proxy server engineering
- Select data gateway/proxy server API architecture
- REST
- GraphQL
- Write server
[x] Serverless function in visualizer FE app(Neo4J Bolt protocol over WebSockets not supported in serverless env)- Authentication
- API key system?
- DB API calls
- Select hosting
- AWS?
- Firebase?
- Select data gateway/proxy server API architecture
-
Visualizer FE app engineering
- Select FE framework
- Next.js
- SvelteKit
- Select hosting solution
- Vercel?
- AWS?
- Firebase?
- Write data server API client
- GraphQL
- Visualization
- Select visualization solution
- force-graph (simple and easy, but not working within SvelteKit)
- d3.js
- Write direct database query API (neo4j-driver based)
- Simple generic query statements
- Implement visualization
- d3.js force graph
- Search/query input
- Search bar
- Implement very basic query input format
- Select visualization solution
- Deploy app
- Vercel
- Container somewhere, with server maybe?
- Select FE framework