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
We’re always looking for people who value their work, so come and join us. We are hiring!
Built using Negt CLI
- Node
- Express
- Postgres
- GraphQL
- Docker
- 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
Please go through the documentation to understand the control flow.
Relay support has been added by following this documentation
- Requirement postgresql
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';
./scripts/setup-local.sh
docker-compose down
docker-compose build
docker-compose up
yarn start:local
yarn dev
yarn prod
yarn build