An open API service indexing awesome lists of open source software.

https://github.com/renanrudney/survey_api-clean-code-node

Node API and GraphQL using TDD, DDD, Clean Architecture.
https://github.com/renanrudney/survey_api-clean-code-node

clean-architecture ddd ddd-architecture ddd-patterns graphql mongodb node node-js nodejs nodejs-api solid solid-principles tdd typescript

Last synced: about 2 months ago
JSON representation

Node API and GraphQL using TDD, DDD, Clean Architecture.

Awesome Lists containing this project

README

          

[![Build Status](https://api.travis-ci.com/renanrudney/survey-clean-node-api.svg?branch=master)](https://travis-ci.com/renanrudney/survey-clean-node-api)
[![Coverage Status](https://coveralls.io/repos/github/renanrudney/survey-clean-node-api/badge.svg)](https://coveralls.io/github/renanrudney/survey-clean-node-api)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com)

# **Survey Clean Node API**

Study Case: Node with Typescript, TDD, DDD, Clean Architecture and SOLID.
---
* Works with GraphQL

## [**API Documentation**](https://clean-node-api-survey.herokuapp.com/api-docs)

## Prerequisites

Before you begin, ensure you have met the following requirements:
* You have installed the 12.x version of [NodeJS](https://nodejs.org/en/download/)
* You have a mongodb instance

## Installing Project

To install dependencies, run:

```
npm install
```

## Using Project

To use, follow these steps:

```
npm run build:watch
npm run debug
```

Or run tests:
```
npm test
```

---

>## Principles

* Single Responsibility Principle (SRP)
* Open Closed Principle (OCP)
* Liskov Substitution Principle (LSP)
* Interface Segregation Principle (ISP)
* Dependency Inversion Principle (DIP)
* Separation of Concerns (SOC)
* Don't Repeat Yourself (DRY)
* You Aren't Gonna Need It (YAGNI)
* Keep It Simple, Silly (KISS)
* Composition Over Inheritance
* Small Commits

>## Methodology and Design

* TDD
* Clean Architecture
* DDD
* Conventional Commits
* GitFlow
* Modular Design
* Dependency Diagrams
* Use Cases
* Continuous Integration
* Continuous Delivery
* Continuous Deployment