https://github.com/dbritto-dev/prisma-starter
Prisma Starter Kit
https://github.com/dbritto-dev/prisma-starter
basic graphql prisma starter-kit
Last synced: about 1 month ago
JSON representation
Prisma Starter Kit
- Host: GitHub
- URL: https://github.com/dbritto-dev/prisma-starter
- Owner: dbritto-dev
- Created: 2018-04-29T18:14:05.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-12-09T17:55:52.000Z (over 7 years ago)
- Last Synced: 2025-04-02T17:28:58.363Z (about 1 year ago)
- Topics: basic, graphql, prisma, starter-kit
- Language: JavaScript
- Homepage:
- Size: 128 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Boilerplate for a Basic GraphQL Server

🚀 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/). You can more learn about the idea behind GraphQL boilerplates [here](https://blog.graph.cool/graphql-boilerplates-graphql-create-how-to-setup-a-graphql-project-6428be2f3a5).
## Requirements
You need to have the [GraphQL CLI](https://github.com/graphql-cli/graphql-cli) installed to bootstrap your GraphQL server using `graphql init` and [Prisma](https://github.com/graphcool/prisma) to deploy and update database using `prisma deploy`:
```sh
npm install -g graphql-cli prisma yarn
```
## Getting started
```sh
# 1. Clone the project
git clone https://github.com/danilobrinu/prisma-starter-kit.git
# 2. Navigate to the new project
cd prisma-starter-kit
# 3. Install npm packages
yarn install
# 3. Start server (runs on http://localhost:4000) and open GraphQL Playground
yarn dev
```
> **Note:** Create new enviroment using example.env and update **`__PRISMA_ENDPOINT__`** if you don't have prisma endpoint run prisma deploy and use Demo Server to get prisma endpoint
> **Note**: We recommend not update graphql-yoga for now, have some [issues](https://github.com/graphcool/graphql-yoga/issues/297)
leave the stable version graphql-yoga@1.12.1 for now.

## Documentation
### Commands
* `yarn start` starts GraphQL server on `http://localhost:4000`
* `yarn debug` starts GraphQL server in debug mode on `http://localhost:4000`
* `yarn playground` opens the GraphQL Playground for the `projects` from [`.graphqlconfig.yml`](./.graphqlconfig.yml)
* `yarn dev` starts GraphQL server on `http://localhost:4000` _and_ opens GraphQL Playground
* `prisma ` gives access to local version of Prisma CLI (e.g. `prisma deploy`)
> **Note**: We recommend that you're using `yarn dev` during development as it will give you access to the GraphQL API or your server (defined by the [application schema](./src/schema.graphql)) as well as to the Prisma API directly (defined by the [Prisma database schema](./generated/prisma.graphql)). If you're starting the server with `yarn start`, you'll only be able to access the API of the application schema.
### Project structure

| File name               | Description         
|
| :-- | :-- |
| `├── .env` | Defines environment variables |
| `├── .graphqlconfig.yml` | Configuration file based on [`graphql-config`](https://github.com/prisma/graphql-config) (e.g. used by GraphQL Playground).|
| `└── database/ ` | _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)) |
| `  └── enums.graphql` | Defines your enums for data model (written in [GraphQL SDL](https://blog.graph.cool/graphql-sdl-schema-definition-language-6755bcb9ce51)) |
| `  └── seed.graphql` | Defines your seed data model (written in [GraphQL SDL](https://blog.graph.cool/graphql-sdl-schema-definition-language-6755bcb9ce51)) |
| `  └── types.graphql` | Defines your types for data model (written in [GraphQL SDL](https://blog.graph.cool/graphql-sdl-schema-definition-language-6755bcb9ce51)) |
| `└── src/ ` | _Contains the source files for your GraphQL server_ |
| `  ├── index.js` | The entry point for your GraphQL server |
| `  ├── schema.graphql` | The **application schema** defining the API exposed to client applications |
| `  ├── resolvers/ ` | _Contains the implementation of the resolvers for the application schema_ |
| `  └── generated/ ` | _Contains generated files_ |
| `    └── prisma.grapghql` | The **Prisma database schema** defining the Prisma GraphQL API |
## Contributing
The GraphQL boilerplates are maintained by the GraphQL community, with official support from the [Apollo](https://dev-blog.apollodata.com) & [Graphcool](https://blog.graph.cool/) 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`](https://graphcool.slack.com/messages/graphql-boilerplate) channel on our [Slack](https://graphcool.slack.com/).