{"id":30915599,"url":"https://github.com/dbsystel/grapheditor","last_synced_at":"2026-01-20T17:17:00.402Z","repository":{"id":308793029,"uuid":"1033913043","full_name":"dbsystel/grapheditor","owner":"dbsystel","description":"Editor for labeled property graph databases with semantic support","archived":false,"fork":false,"pushed_at":"2025-12-10T19:25:26.000Z","size":2565,"stargazers_count":5,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-11T06:38:03.312Z","etag":null,"topics":["graph","graph-editor","graph-editor-gui","graph-visualization","semantic","ui"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbsystel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-07T14:39:56.000Z","updated_at":"2025-12-10T19:25:30.000Z","dependencies_parsed_at":"2025-08-08T00:19:12.344Z","dependency_job_id":"042aae39-f3dc-4ae8-a31b-2f55fa2eefd3","html_url":"https://github.com/dbsystel/grapheditor","commit_stats":null,"previous_names":["dbsystel/grapheditor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dbsystel/grapheditor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbsystel%2Fgrapheditor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbsystel%2Fgrapheditor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbsystel%2Fgrapheditor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbsystel%2Fgrapheditor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbsystel","download_url":"https://codeload.github.com/dbsystel/grapheditor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbsystel%2Fgrapheditor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph","graph-editor","graph-editor-gui","graph-visualization","semantic","ui"],"created_at":"2025-09-09T23:55:34.347Z","updated_at":"2026-01-20T17:17:00.361Z","avatar_url":"https://github.com/dbsystel.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- TOC --\u003e\n* [Intro](#intro)\n  * [Status and features](#status-and-features)\n  * [Screenshot](#screenshot)\n  * [Architecture](#architecture)\n* [Authors](#authors)\n* [LICENSE](#license)\n* [Contributions, updates and contact](#contributions-updates-and-contact)\n* [Updates and contributions](#updates-and-contributions)\n* [Running it](#running-it)\n  * [Docker](#docker)\n    * [Mac issues with allocated memory](#mac-issues-with-allocated-memory)\n    * [Changes in node_modules](#changes-in-node_modules)\n    * [Mounting host directories with correct rights](#mounting-host-directories-with-correct-rights)\n  * [Exe](#exe)\n  * [Directly](#directly)\n\u003c!-- TOC --\u003e\n\n# Intro\n\nThis repo contains the GraphEditor. It is an editor for labeled property graph databases (as\nprovided by neo4j or memgraph).\n\n## Status and features\n\nThe software is in its early stages - it works (for us), but lots of features are not yet\nimplemented. Also expect lots of bugs :-)\n\nExiting main features are:\n\n- Semantic support: all labels, relationtypes and properties can have meaningful metadata, which in\n  turn can be edited and extended by the same editor - it is all stored in the graph database\n- Semantic support for editing\n- Persistent node arrangements (perspectives) - you can drag a selection of nodes into position, and\n  store the arrangement in the database, reusable by other users\n- WebGL Support (provided by sigma.js), which means we can display thousands of objects\n- Rectangular nodes\n- Support for styling files (.grass) that can contain python snippets for dynamic styling\n- Support for fulltext search (optional)\n- Parameterized queries - build your own query forms using the graph to query the graph\n- Custom start page with query shortcuts\n- Multi tenancy support\n\n## Screenshot \u0026 video\n\n![GraphEditor.png](GraphEditor.png)\n\nThere is also a video from the nodes2025 conference, showing release 2025.11.1:\n\n- https://www.youtube.com/watch?v=nc1cAtnjvcQ\n\n## Architecture\n\n```plantuml\n@startuml\nskinparam defaultTextAlignment center\n\nrectangle \"Frontend\\n\\ntypescript / react\" as frontend\nrectangle \"Backend\\n\\npython / flask\" as backend\ndatabase \"LPG\\n\\nGraph Database\" as lpg\n\nfrontend \u003c--\u003e backend\nbackend \u003c--\u003e lpg\n@enduml\n```\n\nThe editor consists of two parts:\n\n- The frontend, written in react/typescript, that the user interacts with.\n- The backend, written in python, that provdes an API that is used by the frontend, and in turn\n  talks to the LPG database, mostly neo4j.\n\n# Authors\n\nThe graph editor is produced and published by DB Systel GmbH, a 100% subsidary of Deutsche Bahn. \nThe whole of team InfraGraphAnalytics (IGA) has been working hard to make the grapheditor possible.\nWe also had outside inspiration, thanks a lot for this!\n\nSee [CONTRIBUTORS](CONTRIBUTORS.md)\n\nMaintainers are listed in [MAINTAINERS](MAINTAINERS.md)\n\n# LICENSE\n\nGraphEditor, a gui with semantic support for labeled property graph databases\n\nCopyright (C) 2025 DB Systel GmbH\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU\nAffero General Public License as published by the Free Software Foundation, either version 3 of the\nLicense, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\neven the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\nGeneral Public License for more details.\n\nSee [LICENSE.txt](LICENSE.txt) for the full license.\n\n# Contributions, updates and contact\n\nSee [CONTRIBUTING](CONTRIBUTING.md)\n\n# Updates and contributions\n\nThis repo is a partial copy of our internal repo. We try to update this repo whenever we cut a new\nrelease.\n\nYou are welcome to send us merge requests.\n\n# Running it\n\n## Docker\n\n- Docker must be installed\n- copy .env.dist into .env and change the variables according to your system.\n\nTo build the docker images, run `sh build.sh dev` (or `sh build.sh prod` for production).\n\nTo run a dev server for backend and frontend, run `docker-compose up`  (see /frontend/README.md if\nyou are working with GUI).\n\nIf you need mock data to explore the project, please visit http://localhost:4999/api/swagger. Before\nstarting, make sure you are logged in using the GUI interface. Then, under the headline \"Dev tools\",\nchose one of the entries \"reset\" (simple database with Alice, Bob and a meta model) and \"osm_data\".\nClick on \"Try it out\", type an arbitrary \"x-tab-id\" and execute it to get mock data.\n\n**Caution**: this will replace all your data in the neo4j database. Double-check you are connected\nwith the database you want to overwrite.\n\n### Mac issues with allocated memory\n\nMac users might run into an issue with memory when starting the frontend image. To fix this,\nincrease the allowed allocated memory of your vm. Either in Docker-Desktop, or if using colima,\nstart your vm with `colima start --cpu 4 --memory 8`.\n\n### Changes in node_modules\n\nIf you added node modules, or simply want to rebuild the image, run `docker-compose down` followed\nby `docker-compose up --build`\n\n### Mounting host directories with correct rights\n\nOur docker-compose.yml mounts some local directories to allow persisting stuff like Neo4j data and\nplugins. By default Neo4j either creates them or, if existing, changes the permissions of these\ndirectories so that they are owned by root. If you wish to change this, you can define a local\noverride file, for example:\n\n```bash\n$ cat docker-compose.override.yml\nservices:\n  neo4j-enterprise:\n    user: \"1000:1000\"\n```\n\n## Exe\n\nAn executable can be build using pyinstaller.\n\nBuild the frontend using `npm run build`, and copy the contents of the dist folder to the gui folder\nin the backend. Then, within the backend folder run:\n\n`pyinstaller --onefile --add-data 'index.html:.' --add-data 'static:static' --add-data 'gui:gui' \n--add-data '\u003c... YOUR BASE PATH ...\u003e\\\\venv312\\\\Lib\\\\site-packages\\\\flask_smorest\\\\spec:flask_smorest\n' -i gui/IGA_Favicon.ico -n IGA_Editor_0_2_alpha_1 main.py\n`\n\nWhen executing the .exe, the urls to access are displayed in the console window.\n\n## Directly\n\nYou can run the frontend and backend directly. Please check\n\n- [Frontend README](frontend/README.md)\n- [Backend README](backend/README.md)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbsystel%2Fgrapheditor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbsystel%2Fgrapheditor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbsystel%2Fgrapheditor/lists"}