Skip to content

Commit 9362682

Browse files
authored
Merge pull request #35 from nielsdejong/develop
NeoDash 2.0.0 Release
2 parents 692e669 + 43ea585 commit 9362682

File tree

159 files changed

+7556
-28596
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

159 files changed

+7556
-28596
lines changed

.babelrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"presets": ["@babel/preset-env", "@babel/preset-react","@babel/preset-typescript"],
3+
"plugins": ["@babel/plugin-transform-runtime"]
4+
}

.env

Lines changed: 0 additions & 1 deletion
This file was deleted.

.env.hosted

Lines changed: 0 additions & 1 deletion
This file was deleted.

LICENSE

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Apache License
1+
Apache License
22
Version 2.0, January 2004
33
http://www.apache.org/licenses/
44

@@ -198,4 +198,4 @@
198198
distributed under the License is distributed on an "AS IS" BASIS,
199199
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200200
See the License for the specific language governing permissions and
201-
limitations under the License.
201+
limitations under the License.

README.md

Lines changed: 65 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,67 @@
11

2-
```
3-
NeoDash is currently being reworked internally to use a modern React architecture.
4-
Big code changes coming soon...
5-
```
2+
## NeoDash - Neo4j Dashboard Builder
3+
NeoDash is an open source tool for visualizing your Neo4j data. It lets you group visualizations together as dashboards, and allow for interactions between reports.
4+
5+
![screenshot](public/screenshot.png)
6+
7+
Neodash supports presenting your data as tables, graphs, bar charts, line charts, maps and more. It contains a Cypher editor to directly write the Cypher queries that populate the reports. You can save dashboards to your database, and share them with others.
8+
9+
## Running NeoDash
10+
There are three ways to run the application:
11+
12+
1. You can install NeoDash into Neo4j Desktop from the [graph app gallery](https://install.graphapp.io). NeoDash will automatically connect to your active database.
13+
2. You can run NeoDash from a web browser by visiting http://neodash.graphapp.io.
14+
3. For offline deployments, you can build the application yourself. See the developer guide below.
15+
16+
17+
# Developer Guide
18+
## Run & Build
19+
NeoDash is built with React. You'll need `npm` installed to run the web app.
20+
21+
To run the application in development mode:
22+
- clone this repository.
23+
- open a terminal and navigate to the directory you just cloned.
24+
- execute `npm install` to install the necessary dependencies.
25+
- execute `npm run dev` to run the app in development mode.
26+
- the application should be available at http://localhost:3000.
27+
28+
29+
To build the app for production:
30+
- follow the steps above to clone the repository and install dependencies.
31+
- execute `npm run build`. This will create a `build` folder in your project directory.
32+
- deploy the contents of the build folder to a web server. You should then be able to run the web app.
33+
34+
35+
## Extending NeoDash
36+
As of v2.0, NeoDash is easy to extend with your own visualizations. There are two steps to take to plug in your own charts:
37+
38+
### 1. Create the React component
39+
All NeoDash charts implement the interface defined in `src/charts/Chart.tsx`. A custom chart must do the same. the following parameter as passed to your chart from the application:
40+
- `records`: a list of Neo4j Records. This is the raw data returned from the Neo4j driver.
41+
- `settings`: a dictionary of settings as defined under "advanced report settings" for each report. You can use these values to customize your visualization based on user input.
42+
- `selection`: a dictionary with the selection made in the report footer.
43+
- `dimensions`: an array with the dimensions of the report (mostly not needed, charts automatically fill up space).
44+
- `queryCallback`: a way for the report to read more data from Neo4j, on interactions.
45+
- `setGlobalParameter`: a way for the report to set globally available Cypher parameters, on interactions.
46+
47+
Make sure that your component renders a React component. your component will be automatically scaled to the size of the report. See the other charts in `src/charts/` for examples.
48+
49+
### 2. Extend the config to make your component selectable
50+
51+
To let users choose your visualization, you must add it to the app's report configuration. This config is located in `src/config/ReportConfig.tsx`, and defined by the dictionary `REPORT_TYPES`.
52+
53+
To add your visualization to the config, add a new key to the `REPORT_TYPES` dictionary with a unique name. The entry's value is an object which can contain the following fields:
54+
- `label`: a display name for the visualization. Mandatory.
55+
- `component`: the React component that renders the visualization. Mandatory.
56+
- `helperText`: a string that is show under the query box in the report settings. Mandatory.
57+
- `selection`: a list that contains each of the selection boxes present in the report footer. Optional.
58+
- `settings`: a list of selection boxes that shows under the advanced settings. Optional.
59+
- `maxRecords`: a hard limit on the number of records the visualization can handle. Mandatory.
60+
- `useRecordMapper`: whether to use the in-built record mapper to fix your results in a specific format. Optional.
61+
- `useNodePropsAsFields`: whether to use the node property selector as a report footer override. Optional.
62+
63+
If all works, please consider contributing your code to this repository.
64+
65+
## Questions / Suggestions
66+
If you have any questions about NeoDash, please reach out. For feature requests, consider opening an issue(link) on GitHub.
667

doc/developer-guide.md

Lines changed: 0 additions & 149 deletions
This file was deleted.

doc/img/class-hierarchy.png

-71.6 KB
Binary file not shown.

doc/img/graphapp.png

-281 KB
Binary file not shown.

doc/img/layout.png

-15.7 KB
Binary file not shown.

doc/img/neodash-editor.png

-39.8 KB
Binary file not shown.

0 commit comments

Comments
 (0)