GithubHelp home page GithubHelp logo

desafio-driva's Introduction

Desafio Driva

Desafio para vaga de estágio na Driva Tecnologia

Author Languages


Ferramentas:

Utilizado para melhores práticas de tipagem de código e prevenção de bugs por conta da natureza selvagem do Javascript

Utilizado para padronizar a estilização do código

Utilizado para adicionar mais funcionalidade ao ESLint

Utilizado para dar restart no servidor quando arquivos forem modificados

Configura path mapping no typescript

Framework para rodar um server HTTP no Nodejs

Biblioteca para fazer requisições HTTP assíncronas

Middleware para configurar headers CORS no Express

Configura path mapping no node

Organização do código:

O código fonte fica dentro da pasta "src", os outros arquivos são para configuração.

Primeiro, o arquivo principal: aqui fica o código que roda o servidor do Express e configura as rotas.

src/server.ts

Esse arquivo contém apenas algum setup para o Express:

src/server-config.ts

Esse diretório contém os erros customizados que serão utilizados dentro da aplicação:

src/errors

Aqui ficam os controladores com os requisitos do desafio:

src/controllers

Adicionalmente, os controladores utilizam algumas interfaces para desacoplar um pouco o código:

src/controllers/interfaces

Os adaptadores de interfaces da aplicação ficam aqui:

src/adapters

Funções helper de qualquer natureza também têm seu próprio diretório:

src/helpers

O código de infraestrutura também está separado:

src/infra

E por último, os modelos de dados:

src/models

Instalação:

Para rodar o projeto é necessário ter o Node.js versão LTS instalado na máquina.
Para clonar via SSH é só usar o comando:

git clone [email protected]:Jackzinho/desafio-driva.git

ou via HTTPS:

git clone https://github.com/Jackzinho/desafio-driva.git

Após clonar o repositório, é preciso instalar as dependências:

npm install

Iniciando:

Os comandos a seguir podem ser executados usando Yarn ou npm.
Comando principal para iniciar o servidor:

npm start

Comando para iniciar o servidor em modo de desenvolvimento:

npm run dev

Comando para fazer a build do projeto:

npm run build

Comando para utilizar ESLint no projeto e consertar erros de estilo:

npm run lint

Rotas:

Hello World

Uma rota que retorna uma resposta amigável :)

  • URL

    /hello

  • Method:

    GET

  • Success Response:

    200 Ok - text/plain
    "World"
  • Sample Call:

    curl http://localhost:3333/hello
    

Soma

Uma rota que retorna o montante da soma de um vetor de números

  • URL

    /soma

  • Method:

    POST

  • Body

    {
      "numbers": [2, 2]
    }
  • Success Response:

    200 Ok - application/json
    {
      "result": 4
    }
  • Sample Call:

    curl -X POST http://localhost:3333/soma
     -H 'Content-Type: application/json'
     -d '{ "numbers": [2, 5, 9] }'
    

Star Wars

Uma rota que retorna o nome dos filmes de Star Wars

  • URL

    /starwars/films

  • Method:

    GET

  • Success Response:

    200 Ok - application/json
    [
      {
          "title": "Star Wars: The Phantom Menace",
          "episodeNumber": 1
      },
    ]
  • Sample Call:

    curl http://localhost:3333/starwars/films
    

desafio-driva's People

Contributors

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