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
- Host: GitHub
- URL: https://github.com/geekrishabh/expressts-graphql
- Owner: geekrishabh
- Created: 2019-09-30T07:45:55.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-08-20T16:25:36.000Z (about 5 years ago)
- Last Synced: 2025-03-19T14:43:22.033Z (7 months 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`