From 1b54ce82a7e41722dd345640ff565cb0429e06b6 Mon Sep 17 00:00:00 2001 From: Jordan Knott Date: Sun, 20 Sep 2020 15:54:53 -0500 Subject: [PATCH] Updated Developers Guide (markdown) --- Developers-Guide.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/Developers-Guide.md b/Developers-Guide.md index 96761b9..10c8813 100644 --- a/Developers-Guide.md +++ b/Developers-Guide.md @@ -2,6 +2,10 @@ ### Frontend +#### Tools used + +- [graphql-codegen](https://github.com/dotansimha/graphql-code-generator) for generating typescript types from graphql queries + #### Directory structure @@ -30,6 +34,11 @@ src/ ### Backend +#### Tools used + +- [sqlc](https://github.com/kyleconroy/sqlc) for converting SQL query files into Golang code +- [gqlgen](https://github.com/99designs/gqlgen) for converting graphql schema files into Golang code + #### Architecture ``` @@ -57,4 +66,17 @@ internal/ # all business logic lives here route.go # builds all of the routes migrations/ # a directory of database schema migrations -``` \ No newline at end of file +``` + +#### GraphQL schemas + +The schema for the API lives as multiple files in the `internal/graph/schema/` folder. + +The are converted into a single file (because gqlgen wants that) by a mage target `backend:genSchema` + +All primary models live in `_models.gql` + +The root Query and Mutation objects live in `_root.gql` + +The rest of the files contain domain specific declarations. For instance the Mutations +for interacting with tasks is in the `task.gql` file. \ No newline at end of file