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

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors