Skip to content

Askill/Skei

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Skei

High-performance interactive visualization and query interface for large Neo4j graphs.

Neo4j is usually the bottleneck with layouts being completed in under 3 seconds even for graphs larger than 10k nodes and 15k edges.

Scope

This repository is focused on Neo4j graph exploration.

  • Run Cypher queries and render the result as both graph and table views.
  • Precompute layouts server-side so larger graph results stay navigable.
  • Explore results with zoom, pan, search, highlighting, and minimap support.

Examples

UI Overview

Skei UI overview

Example Graph Outputs

Skei graph example 1

Skei graph example 2

Skei graph example 3

Quick Start

  1. Create a virtual environment and install dependencies.
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python -m venv .venv
source .venv\bin\activate
pip install -r requirements.txt
  1. Set Neo4j connection details if needed.
set NEO4J_HTTP_URL=http://localhost:7474
set NEO4J_USER=neo4j
set NEO4J_PASSWORD=your-password
set NEO4J_DATABASE=neo4j
  1. Run the app.
python app.py
  1. Open http://localhost:5555.

You can also change the connection at runtime from the sidebar in the UI.

Features

  • Neo4j HTTP Transactional API integration.
  • Automatic layout selection for graph size.
  • Canvas-based rendering with D3 zoom and pan.
  • Curved edges, neighborhood highlighting, node search, and minimap.
  • Graph view and table view for the same query result.
  • Demo graph generation for UI and performance testing without a live Neo4j instance.

Layouts

Supported layout modes:

  • auto
  • force_directed
  • force_directed_hq
  • community
  • circle
  • drl
  • kamada_kawai
  • spectral

Availability depends on whether python-igraph is installed.

API Endpoints

  • GET /: Explorer UI.
  • POST /api/query: Execute Cypher and return graph data, table rows, and timings.
  • POST /api/relayout: Recompute layout for the cached query result.
  • GET /api/schema: Return labels, relationship types, and property keys.
  • GET /api/connection-test: Verify Neo4j connectivity.
  • POST /api/reconnect: Update Neo4j connection settings at runtime.
  • GET /api/layouts: Return available layout algorithms.
  • GET /api/sample-queries: Return built-in sample Cypher queries.
  • POST /api/demo: Generate synthetic graph data for demo and performance testing.

Configuration

Environment variables used by app.py:

  • NEO4J_HTTP_URL default: http://localhost
  • NEO4J_USER default: neo4j
  • NEO4J_PASSWORD default: empty
  • NEO4J_DATABASE default: neo4j
  • SAMPLE_QUERIES_FILE default: config/sample_queries.json

Project Structure

  • app.py: Flask app and API endpoints.
  • layout_engine.py: Graph layout computation and algorithm selection.
  • templates/index.html: Frontend application.
  • config/sample_queries.json: Built-in sample Cypher queries.
  • requirements.txt: Python dependencies.

Notes

  • The supported service entry point is python app.py.
  • The repository is intentionally scoped to Neo4j graph visualization and layout exploration.

About

High performance interactive visualization and query interface for very large neo4j graphs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors