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

https://github.com/geekrishabh/expressts-graphql

Todo application for building GraphQL in Node.js using ES6 and Express with JWT Authentication & typescript
https://github.com/geekrishabh/expressts-graphql

apollo-server apollo-server-express auth authorization docker expressjs firebase-cloud-messaging graphql jest jwt-authentication mongodb nodejs tests typegoose typescript

Last synced: 7 months ago
JSON representation

Todo application for building GraphQL in Node.js using ES6 and Express with JWT Authentication & typescript

Awesome Lists containing this project

README

          

## Graphql-Express-MongoDB Todo With Auth

### Overview

This is a todo application for building GraphQL in Node.js using ES6 and Express with JWT Authentication & typescript

### Getting Started

Clone the repo:

```sh
git clone https://github.com/GeekRishabh/expressts-graphql.git
cd expressts-graphql
```

Install yarn:

```js
npm install -g yarn
```

Install Mongo:

```bash
brew install mongodb
```

Install dependencies:

```sh
yarn
```

Set environment (vars):

```sh
cp .env.example .env
```

_Note:-_ Create a `.logs` folder at the root level of project & Mongodb is running.

Start server:

```sh
# Start server
yarn start

# Selectively set DEBUG env var to get logs
DEBUG=express-graphql-todo:* yarn start
```

Refer [debug](https://www.npmjs.com/package/debug) to know how to selectively turn on logs.

##### Deployment

```sh
# compile to ES5
1. yarn build

# upload dist/ to your server

# install production dependencies only
2. yarn --production

# Use any process manager to start your services
3. pm2 start dist/index.js
```

In production you need to make sure your server is always up so you should ideally use any of the process manager recommended [here](http://expressjs.com/en/advanced/pm.html).
We recommend [pm2](http://pm2.keymetrics.io/) as it has several useful features like it can be configured to auto-start your services if system is rebooted.

## Docker

#### Using Docker Compose for Development

```sh
# service restarts on file change
bash bin/development.sh
```

#### Building and running without Docker Compose

```bash
# To use this option you need to make sure mongodb is listening on port 27017

# Build docker
docker build -t express-graphql-todo .

# Run docker
docker run -p 4040:4040 express-graphql-todo
```

### EndPoint

#### Local

• Graphql Endpoint
`http://localhost:4040/graphql/`

• API Endpoint
`http://localhost:4040/api/`

#### Live Demo

• Graphql Endpoint
`https://expressts-graphql.herokuapp.com/graphql`

• API Endpoint
`https://expressts-graphql.herokuapp.com/api`