Skip to content

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

Notifications You must be signed in to change notification settings

rishabh-pandey-sternx/expressts-graphql

Repository files navigation

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:

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

Install yarn:

npm install -g yarn

Install Mongo:

brew install mongodb

Install dependencies:

yarn

Set environment (vars):

cp .env.example .env

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

Start server:

# Start server
yarn start

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

Refer debug to know how to selectively turn on logs.

Deployment
# 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. We recommend pm2 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

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

Building and running without Docker Compose

# 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