Code Monkey home page Code Monkey logo

enquetes-api's Introduction

Clean Node API

Essa API faz parte do treinamento do professor Rodrigo Manguinho (Mango) na Udemy.

O objetivo do treinamento é mostrar como criar uma API com uma arquitetura bem definida e desacoplada, utilizando TDD (programação orientada a testes) como metodologia de trabalho, Clean Architecture para fazer a distribuição de responsabilidades em camadas, sempre seguindo os princípios do SOLID e, sempre que possível, aplicando Design Patterns para resolver alguns problemas comuns.

APIs previstas para esse treinamento:

  1. Cadastro
  2. Login
  3. Criar enquete
  4. Listar enquetes
  5. Responder enquete
  6. Resultado da enquete

Princípios aplicados:

  • Single Responsibility Principle (SRP)
  • Open Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)
  • Don't Repeat Yourself (DRY)
  • Composition Over Inheritance
  • Small Commits

Design Patterns aplicados:

  • Factory
  • Adapter
  • Composite
  • Decorator
  • Dependency Injection
  • Abstract Server
  • Composition Root

Metodologias/designs utilizados:

  • TDD
  • Clean Architecture
  • DDD
  • Conventional Commits
  • GitFlow
  • Modular Design
  • Dependency Diagrams
  • Use Cases

Bibliotecas e ferramentas utilizadas:

  • NPM
  • Typescript
  • Git
  • Docker
  • Jest
  • MongoDb
  • Bcrypt
  • JsonWebToken
  • Validator
  • Express
  • Supertest
  • Husky
  • Lint Staged
  • Eslint
  • Standard Javascript Style
  • Sucrase
  • Nodemon
  • Rimraf
  • In-Memory MongoDb Server

Features abordadas:

  • Atalhos no Git
  • Log de Erro
  • Segurança (Hashing, Encryption e Encoding)
  • CORS
  • Middlewares
  • Testes de Integração
  • Testes Unitários
  • Cobertura de Testes
  • Mocks
  • Stubs
  • Spies
  • Deploy com Typescript
  • Deploy no Heroku
  • Uso de breakpoints no Typescript
  • Uso correto de tags no Git

enquetes-api's People

Contributors

ykons avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.