GraphQL Back-end Server with Relay, Koa, MongoDB and Mongoose
🚧 WIP 🚧
Note See Front-end project graphql-relay-web
- [x] Koa
- [x] MongoDB
- [x] Mongoose
- [x] GraphQL
- [x] Relay
- [x] Jest
- [x] SuperTest
- [x] Code Coverage(Coverall) see
- [x] Linter (Eslint)
- [x] Prettier
.
├── graphql/
│ └── schema.graphql
├── script
├── src/
│ ├── __tests__
│ ├── database
│ ├── graphql
│ ├── modules/
│ │ ├── event/
│ │ │ ├── __tests__
│ │ │ ├── fixure
│ │ │ ├── mutations/
│ │ │ │ ├── __tests__
│ │ │ │ ├── EventCreateMutation.ts
│ │ │ │ ├── EventDeleteMutation.ts
│ │ │ │ ├── EventUpdateMutation.ts
│ │ │ │ └── index.ts
│ │ │ ├── EventFilterInputType.ts
│ │ │ ├── EventLoader.ts
│ │ │ ├── EventModel.ts
│ │ │ └── EventType.ts
│ │ └── node/
│ │ └── typeRegister.ts
│ ├── schema/
│ │ ├── MutationType.ts
│ │ ├── QueryType.ts
│ │ └── schema.ts
│ └── shared
└── test
- clone this repo
# install dependencies
> yarn
# or
> yarn install
# copy .env file
> cp .env.example .env
# start project
> yarn start
# see on GraphiQL graphql interface on localhost link
http://localhost:9000/graphql
# or see graphql Playground
http://localhost:9000/playground
> yarn schema
> yarn seed
- 🔗 https://koa-server-production.up.railway.app/
- 🔗 https://koa-server-production.up.railway.app/graphql
- 🔗 https://koa-server-production.up.railway.app/playground
- Event Create Mutation
mutation {
EventCreate(
input: {
eventId: 564654
name: "nice event"
start: "2022-07-01T00:00:00.000Z"
end: "2022-07-01T23:59:59.000Z"
allDay: false
}
) {
event {
id
name
start
end
allDay
}
error
success
}
}
- Event delete Mutation
mutation {
EventDelete(input: { eventId: "629521641ff2c2c8f5f2e449" }) {
eventId
error
success
}
}
- Event Update Mutation
mutation {
EventUpdate(
input: {
eventId: "62952906f5c651ced019adf3"
name: "nice event /o/"
start: "2022-07-01T00:00:00.000Z"
end: "2022-07-01T23:59:59.000Z"
allDay: false
}
) {
event {
id
name
start
end
allDay
}
error
success
}
}
- Event queries
query {
events {
edges {
node {
name
start
end
allDay
}
}
}
}
Feel free to contribute to this project, if you find any bugs or improvements, open an issue and send a PR about it \o/