Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kriswep/morphlog
Log your products' changes
https://github.com/kriswep/morphlog
agile agile-development changelog changelogger graphql prisma product-management
Last synced: 12 days ago
JSON representation
Log your products' changes
- Host: GitHub
- URL: https://github.com/kriswep/morphlog
- Owner: kriswep
- License: mit
- Created: 2018-01-15T21:08:23.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-02-08T19:49:20.000Z (almost 6 years ago)
- Last Synced: 2024-11-03T23:42:08.731Z (about 2 months ago)
- Topics: agile, agile-development, changelog, changelogger, graphql, prisma, product-management
- Language: TypeScript
- Homepage:
- Size: 1.55 MB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# typescript-advanced
🚀 Advanced starter code for a scalable, production-ready GraphQL server written in TypeScript, including authentication and realtime functionality with GraphQL subscriptions.
## Features
* **Scalable GraphQL Server:** `graphql-yoga` based on Apollo Server & Express
* **GraphQL-native database:** Includes GraphQL database binding to Prisma (running on MySQL)
* Out-of-the-box support for [GraphQL Playground](https://github.com/prisma/graphql-playground) & [Tracing](https://github.com/apollographql/apollo-tracing)
* Simple data model – easy to adjust
* Preconfigured [`graphql-config`](https://github.com/prisma/graphql-config) setup
* Authentication based on email & password
* Realtime functionality with GraphQL subscriptions (_coming soon_)## Requirements
You need to have the following tools installed:
* Node 8+ & TypeScript
* GraphQL CLI: `npm i -g graphql-cli`## Getting started
```sh
# 1. Bootstrap GraphQL server in directory `my-app`, based on `typescript-advanced` boilerplate
graphql create my-app --boilerplate typescript-advanced# 2. When prompted, choose the Prisma cluster you want to deploy to
# e.g. prisma-eu1 or prisma-us1 to deploy to a public cluster (recommended)
# or locally (requires Docker)# 3. Navigate to the new project
cd my-app# 4. Start server (runs on http://localhost:4000) and open GraphQL Playground
yarn dev
# or
# yarn start # (only starts the server, no access to the Prisma API)
```> **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**) as well as to the Prisma API directly (defined by the **Prisma schema**). If you're starting the server with `yarn start`, you'll only be able to access the API for the application schema.
## Docs
### add to model
* add in `database/datamodel.graphql`
* `prisma deploy`
* `yarn graphql prepare` # for type generation### Commands
* `yarn start` starts GraphQL server on `http://localhost:4000` (only allows access to the \_appl)
* `yarn debug` starts GraphQL server in debug mode (open [chrome://inspect/#devices](chrome://inspect/#devices) to debug)
* `yarn dev` starts GraphQL server opens the GraphQL Playground for the `projects` defined in [`.graphqlconfig.yml`](./.graphqlconfig.yml)
* `yarn playground` opens the GraphQL Playground for the `projects` defined in [`.graphqlconfig.yml`](./.graphqlconfig.yml)
* `yarn prisma ` access to local version of Prisma CLI (e.g. `yarn prisma deploy`)### Project structure
#### `/` - configuration files
* [`.env`](./.env) Contains important environment variables for development. Read about how it works [here](https://github.com/motdotla/dotenv).
* [`.graphqlconfig.yml`](./.graphqlconfig.yml) GraphQL configuration file containing the endpoints and schema configuration. Used by the [`graphql-cli`](https://github.com/prisma/graphql-cli) and the [GraphQL Playground](https://github.com/prisma/graphql-playground). See [`graphql-config`](https://github.com/prisma/graphql-config) for more information.#### `/database` - Prisma service
* [`database/prisma.yml`](./database/prisma.yml) The configuration file for your database service ([documentation](https://www.prismagraphql.com/docs/reference/prisma.yml/overview-and-example-foatho8aip)).
* [`database/datamodel.graphql`](./database/datamodel.graphql) contains the data model that you define for your database service (written in [SDL](https://blog.graph.cool/graphql-sdl-schema-definition-language-6755bcb9ce51)).#### `/src` - application server
* [`src/schema.graphql`](src/schema.graphql) defines your **application schema**. It contains the GraphQL API that you want to expose to your client applications.
* [`src/index.js`](src/index.js) is the entry point of your server, putting everything together and starting the `GraphQLServer` from [`graphql-yoga`](https://github.com/prisma/graphql-yoga).
* [`src/resolvers/`](src/resolvers) contains the actual business logic of your application. In GraphQL, you implement [resolver functions](http://graphql.org/learn/execution/) that _resolve_ a specific query being requested.
* [`src/generated/prisma.graphql`](src/generated/prisma.graphql) defines the **database schema**. It contains the GraphQL API exposed by the Prisma Database. This file is automatically generated every time `yarn prisma deploy` is executed, according to the datamodel in `database/datamodel.graphql`.
* [`src/generated/prisma.ts`](src/generated/prisma.ts) contains the generated TypeScript type definitions from the `prisma-binding`. You can read more about static bindings in this [article](https://blog.graph.cool/reusing-composing-graphql-apis-with-graphql-bindings-80a4aa37cff5).## Contributing
Your feedback is **very helpful**, please share your opinion and thoughts! If you have any questions, join the [`#graphql-boilerplates`](https://prisma.slack.com/messages/graphql-boilerplates) channel on our [Slack](https://prisma.slack.com/).