Skip to content

Commit 14e7041

Browse files
authored
Update README.md
1 parent 672db6a commit 14e7041

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

README.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
# woo.sh
2-
Framework for generating an [Apollo GraphQL](https://www.apollographql.com/) based server,
3-
backed by a configurable database.
2+
woo.sh is a software framework that can automatically generate all necessary components to set up a full GraphQL server that creates and stores a graph database within a separate database management system (DBMS) and that provides a feature-rich GraphQL API to access this database. The only input that is needed for this process is the schema of the graph database that is to be created and used. Then, the main features of the generated GraphQL API are:
3+
* creation and updates of the nodes in the graph database (including the properties of these nodes);
4+
* creation and updates of the edges in the graph database (including the properties of these edges);
5+
* automatic enforcement of integrity constraints that are part of the given database schema;
6+
* mutation requests to execute multiple create/update operations with transactional guarantees (ACID);
7+
* automatic addition of history metadata which can be accessed in queries (creation date, last update date);
8+
* operations to query the database starting from a selected node that can be identifed based on its ID or based on key properties;
9+
* operations to query the database starting from a list of nodes of the same type;
10+
* queries on lists of nodes may apply filter conditions and paging;
11+
* queries may retrieve properties of nodes, as well as properties of edges;
12+
* queries may traverse any given edge in either direction.
13+
14+
For the definition of the graph database schema (which is the only input needed for woo.sh), we have developed an [approach that repurposes the GraphQL schema definition language as a language to define schemas for graph databases](https://blog.liu.se/olafhartig/documents/graphql-schemas-for-property-graphs/). As the DBMS used by a woo.sh-generated GraphQL server, woo.sh currently supports [ArangoDB](https://www.arangodb.com/). Support for other systems may be added in the future.
415

516
# Try it out
6-
The example is based on a simplified version of the Star Wars GraphQL schema and requires a running
7-
instance of ArangoDB.
17+
woo.sh comes with a simple example for demonstrating its use. The database schema of this example defines a simple graph database with data related to the Star Wars universe (as adapted from the [GraphQL learning material](https://graphql.org/learn/)). Using the demo requires a running instance of ArangoDB.
818
```bash
919
$ sh ./woo.sh --input example/db-schema/ \
1020
--output ./generated-example-server \

0 commit comments

Comments
 (0)