Skip to content

An enterprise Express GraphQL template application built using nodejs showcasing - Testing Strategy, DB migrations and seeding, integration with an ORM, containerization using Docker, GraphQL Interface, support for GraphQL relay, integration with graphql-sequelize, support for aggregation queries, PostgreSQL

License

Notifications You must be signed in to change notification settings

wednesday-solutions/node-express-graphql-template

Repository files navigation

Node Express GraphQL Template

An enterprise Express GraphQL template application built using nodejs showcasing - Testing Strategy, DB migrations and seeding, integration with an ORM, containerization using Docker, GraphQL Interface, support for GraphQL relay, integration with graphql-sequelize, support for aggregation queries, PostgreSQL


Expert teams of digital product strategists, developers, and designers.


We’re always looking for people who value their work, so come and join us. We are hiring!

Node Express GraphQL Template CI

A relay compliant server built using

  • Node
  • Express
  • Postgres
  • GraphQL
  • Docker

Out of the box support for

  • Containerization using Docker
  • Multi layered docker image support
  • CI pipeline that runs on every pull request
  • Simply add in the github secrets and uncomment the cd.yml to deploy to ECS
  • GraphQL relay compliant server
  • RBAC auth middleware
  • Out of the box support to run database migrations and seeders using sequelize
  • Multi environment support using the dotenv library
  • precommit hooks to run tests
  • docker-compose to run the application without installing additional db, and cache infrastructure
  • Autogenerate queries and mutations based on GQL models
  • Support for circuit breaking has been added using opossum
  • Support for sending slack alerts on desired errors has been added using slack-notify
  • Support for caching added with redis
  • Support for custom mutations has been added along with support for updating only specific fields
  • Support for adding a job and queuing it has been added using bull
  • GraphQl subscriptions have been added using apollo-server & graphql-redis-subscriptions
  • Support for caching of aggregate data added using Redis

Dependencies

graphql-sequelize

Please go through the documentation to understand the control flow.

Relay support has been added by following this documentation

Setup

Setting up database (postgres)

Steps to set up database with username and role using terminal

  • Enter postgres terminal psql postgres
  • Create new database CREATE DATABASE reporting_dashboard_dev;
  • Create a new role with password CREATE ROLE reporting_dashboard_role WITH LOGIN PASSWORD 'reportingdashboard123';

Setup and run locally using

./scripts/setup-local.sh

Build and run docker container locally

docker-compose down
docker-compose build
docker-compose up

Develop locally

yarn start:local

Start dev server

yarn dev

Start prod server

yarn prod

Build the application

yarn build

About

An enterprise Express GraphQL template application built using nodejs showcasing - Testing Strategy, DB migrations and seeding, integration with an ORM, containerization using Docker, GraphQL Interface, support for GraphQL relay, integration with graphql-sequelize, support for aggregation queries, PostgreSQL

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages