Giter Club home page Giter Club logo

clean-architecture-nodejs's Introduction

API de Enquetes

NodeJS TypeScript Mongodb Jest Express.js NPM Docker ESLint Swagger

Aplicação consciste em um API de Enquetes. Foi desenvolvida ultilzando um arquitetura bem definida e desacoplada, ultilizando TDD como metotologia de trabalho e Clean Architecture para fazer a distribição das resposabildades em camadas, e sempre que possível ultilizando os principios do SOLID.

Instruções para rodar o projeto

Os requisitos necessários são:

  • Node
  • npm
  • Mongodb

Faça o clone do projeto e rode o comando npm install para instalar as dependências.

npm install

Subir o servidor de desenvolvimento atravéz do comando npm run dev

npm run dev

Configurar as variáveis de ambiente criando um arquivo .env na raiz do projeto, e seguindo o examplo do arquivo .env.example.

Testes

npm test

Documentação

A documentação completa pode ser encontrada no Swagger através do endpoits /api-docs

Principais funcionalidades

  • Cadastro
  • Login
  • Criar enquetes
  • Listar enquetes
  • Responder enquetes
  • Resultado da enquete

Endpoints da aplicação

Rota de Cadastro

[POST] /signup

Request body

{
   "name": "string",
   "email": "string",
   "password": "string",
   "passwordConfirmation": "string"
}

Responses

Generic badge

{
    "accessToken": "string",
    "name": "string"
}

Generic badge

{
    "error": "string"
}

Rota de Login

[POST] /login

Request body

{
  "email": "string",
  "password": "string"
}

Responses

Generic badge

{
    "accessToken": "string",
    "name": "string"
}

Generic badge

{
    "error": "string"
}

Rota de Criar enquetes private

[POST] /surveys

Parameters in header

{
"x-access-token": "string"
}

Request body

{
"question": "string",
  "answers": [
    {
      "image": "string",
      "answer": "string"
    }
  ]
}

Responses

Generic badge

Generic badge Generic badge Generic badge

{
    "error": "string"
}

Rota de Listar enquetes private

[GET] /surveys

Parameters in header

{
"x-access-token": "string"
}

Responses

Generic badge

[
  {
    "id": "string",
    "question": "string",
    "answers": [
      {
        "image": "string",
        "answer": "string"
      }
    ],
    "date": "string",
    "didAnswer": boolean
  }
]

Generic badge Generic badge Generic badge

{
    "error": "string"
}

Rota para criar resposta de uma enquete private

[PUT] /surveys/{surveyId}/results

Parameters in header

{
"x-access-token": "string"
}

Parameters in route

{
"surveyId": "string"
}

Request body

{
  "answer": "string"
}

Responses

Generic badge

{
  "surveyId": "string",
  "question": "string",
  "answers": [
    {
      "image": "string",
      "answer": "string",
      "count": number,
      "percent": number,
      "isCurrentAccountAnswer": boolean
    }
  ],
  "date": "string"
}

Generic badge Generic badge Generic badge

{
    "error": "string"
}

Rota para consultar o resultado de uma enquete private

[GET] /surveys/{surveyId}/results

Parameters in header

{
"x-access-token": "string"
}

Parameters in route

{
"surveyId": "string"
}

Responses

Generic badge

{
  "surveyId": "string",
  "question": "string",
  "answers": [
    {
      "image": "string",
      "answer": "string",
      "count": number,
      "percent": number,
      "isCurrentAccountAnswer": boolean
    }
  ],
  "date": "string"
}

Generic badge Generic badge Generic badge

{
    "error": "string"
}

clean-architecture-nodejs's People

Contributors

juniorpaula avatar

Stargazers

Andreia  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.