Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/anasaito/khdimatybackend


https://github.com/anasaito/khdimatybackend

Last synced: 5 days ago
JSON representation

Awesome Lists containing this project

README

        

Boilerplate for a Basic GraphQL Server


![](https://imgur.com/lIi4YrZ.png)

🚀 Bootstrap your GraphQL server within seconds

Basic starter kit for a flexible GraphQL server for Node.js - based on best practices from the GraphQL community.

## Features

- **Scalable GraphQL server:** The server uses [`graphql-yoga`](https://github.com/prisma/graphql-yoga) which is based on Apollo Server & Express
- **GraphQL database:** Includes GraphQL database binding to [Prisma](https://www.prismagraphql.com) (running on MySQL)
- **Tooling**: Out-of-the-box support for [GraphQL Playground](https://github.com/prisma/graphql-playground) & [query performance tracing](https://github.com/apollographql/apollo-tracing)
- **Extensible**: Simple and flexible [data model](./database/datamodel.graphql) – easy to adjust and extend
- **No configuration overhead**: Preconfigured [`graphql-config`](https://github.com/prisma/graphql-config) setup

For a fully-fledged **GraphQL & Node.js tutorial**, visit [How to GraphQL](https://www.howtographql.com/graphql-js/0-introduction/).

## Requirements

You need to have the [GraphQL CLI](https://github.com/graphql-cli/graphql-cli) installed to bootstrap your GraphQL server using `graphql create`:

```sh
npm install -g graphql-cli
```

## Getting started

```sh
# 1. Bootstrap GraphQL server in directory `my-app`, based on `node-basic` boilerplate
graphql create my-app --boilerplate node-basic

# 2. When prompted, deploy the Prisma service to a _public cluster_

# 3. Navigate to the new project
cd my-app

# 4. Start server (runs on http://localhost:4000)
yarn start
```

![](https://imgur.com/hElq68i.png)

## Documentation

### Commands

* `yarn start` starts GraphQL server on `http://localhost:4000`
* `yarn prisma ` gives access to local version of Prisma CLI (e.g. `yarn prisma deploy`)

### Project structure

![](https://imgur.com/95faUsa.png)

| File name               | Description         

|
| :-- | :-- |
| `└── prisma ` (_directory_) | _Contains all files that are related to the Prisma database service_ |\
| `  ├── prisma.yml` | The root configuration file for your Prisma database service ([docs](https://www.prismagraphql.com/docs/reference/prisma.yml/overview-and-example-foatho8aip)) |
| `  └── datamodel.graphql` | Defines your data model (written in [GraphQL SDL](https://blog.graph.cool/graphql-sdl-schema-definition-language-6755bcb9ce51)) |
| `└── src ` (_directory_) | _Contains the source files for your GraphQL server_ |
| `  ├── index.js` | The entry point for your GraphQL server |
| `  ├── schema.graphql` | The **application schema** that defines the GraphQL API |
| `  └── generated` (_directory_) | _Contains generated files_ |
| `    └── prisma-client` (_directory_) | The generated Prisma client |

## Contributing

The GraphQL boilerplates are maintained by the GraphQL community, with official support from the [Apollo](https://www.apollographql.com/) & [Prisma](https://www.prisma.io) teams.

Your feedback is **very helpful**, please share your opinion and thoughts! If you have any questions or want to contribute yourself, join the `#graphql-boilerplate` channel on our [Slack](https://slack.prisma.io/).