Giter Site home page Giter Site logo

graphy's Introduction

Graphy, opinionated Gqlgen/Neo4j Go boilerplate

This repository contains boilerplate code for projects that plan on utilising Neo4j and Gqlgen. As implied, this project relies on the following packages:

Wire is specifically used to generate the dependency tree to create the application server.

Project structure

.
├── cmd                         // Directory containing main binary generation and implementation binding
│ └── graphy
│     ├── neo
│     │ └── neo4j.go            // Neo4j storage implementation bootup
│     ├── main.go               // Main go entrypoint
│     ├── inject                // Dependency injection via wire code auto generation.
│     │ ├── wire_gen.go         // Generated dependency injection
│     │ └── wire.go             // Wire definitions
│     └── config                // Configuration package, exposes variables via viper
│         └── config.go         // Initialise viper, sets bindings and sets package variables
│
├── transport                   // Transport implementation and details
│ ├── http                      // HTTP package used to bind the GraphQL handler to server implementation
│ │ ├── utils.go                // Common HTTP utilities (e.g. request ID generation)
│ │ └── server.go               // Application server implementation, creates *http.Server implementation
│
│ └── graphql                   // GraphQL package, utilising gqlgen. Does not expose HTTP bindings
│     ├── schema.resolvers.go   // Root resolver schema resolvers. Part of gqlgen generation process
│     ├── resolver.go           // General resolver struct, used to connect resolver implications to domain services
│     ├── model                 // GraphQL model representations.
│     │ └── models_gen.go       // Gqlgen model generation stubs
│     └── generated             // Gqlgen GraphQL server implementation generated files
│         └── generated.go
│
├── storage                     // Storage implementations bound to the domain interfaces
│ └── graph
│     ├── repository.go
│     └── errors.go
│
├── pkg                         // Core domain logic implementations
│ ├── rounds
│ │ ├── update.go
│ │ ├── repository.go           // Interfaces for repository methods only
│ │ └── models.go
│ └── core
│     ├── core_test.go
│     └── core.go
│
├── gqlgen.yml                  // Gqlgen configuration file, used for autogen
├── api                         // API resources and definitions
│ └── schema.graphqls           // GraphQL schema defintion, used for gqlgen
└── Makefile

graphy's People

Contributors

nathancyam avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.