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: 2 months ago
JSON representation
Todo application for building GraphQL in Node.js using ES6 and Express with JWT Authentication & typescript
- Host: GitHub
- URL: https://github.com/geekrishabh/expressts-graphql
- Owner: geekrishabh
- Created: 2019-09-30T07:45:55.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-08-20T16:25:36.000Z (almost 6 years ago)
- Last Synced: 2025-03-19T14:43:22.033Z (about 1 year ago)
- Topics: apollo-server, apollo-server-express, auth, authorization, docker, expressjs, firebase-cloud-messaging, graphql, jest, jwt-authentication, mongodb, nodejs, tests, typegoose, typescript
- Language: TypeScript
- Homepage: https://expressts-graphql.herokuapp.com/graphql
- Size: 80.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
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`