Giter VIP home page Giter VIP logo

casaecafeestagio's Introduction

API REST com Node.Js e MongoDB

Este projeto foi desenvolvido para o processo seletivo de estágio da Casa e Café

Recursos utilizados no desenvolvimento:

  • Node.Js
  • Npm (Já incluso no NodeJS)
  • Express.Js
  • MongoDB
  • Mongoose
  • JSON (para retornar os dados)
  • PostMan (testar a API)

Pré requisitos

node -v

mongo -version

npm --v

Executando localmente

  1. Faça o clone desse repositório em sua máquina

git clone https://github.com/carolinecdsantos/CasaECafeEstagio.git

  1. Abra uma nova janela do cmd e execute:

mongod

Se tudo estiver ok, a seguinte mensagem será apresentada:

waiting for connections on port 27017

  1. Abra uma nova janela no cmd e navegue até o path do seu projeto

  2. No path do projeto, digite o seguinte comando para instalar as dependências listadas no packaje.json:

npm install

Isso fará com que um diretório chamado node_modules seja criado no diretório raiz do projeto contendo todas as dependências necessárias para sua execução.

  1. Ainda no path do projeto, execute o seguinte comando

npm install -g node-mongo-seeds

  1. Logo em seguida, execute o seguinte comando para popular o BD

seed

  1. E por fim execute (ainda no path do projeto):

node app.js

Testando API com o Postman

Depois de instalar o Postman, basta agora seguir os passos abaixo para testar a API

Rota HTTP (Verb) Descrição
localhost:3000/plans GET Agrupa e lista todos os produtos existentes
localhost:3000/payments POST Cria um pagamento. Os seguintes parâmetros devem ser passados por body com x-www-form-urlencoded:
  • payment_date (Dia do Pagamento)
  • payment_type (Tipo do Pagamento, exemplo: cartão, dinheiro etc..) -
  • product (Product se refere ao plano (nome do plano), deve estar contido em /plans)
  • product_price (Preço do Produto (Formato XX.XX ))
  • discount (Porcentagem de desconto sobre o preço do produto (Formato XX.XX), não pode ser maior que 50%)

Observação: O preço final do produto será calculado através do backend, transaction_id é automaticamente atribuído como _id pelo mongoDB sendo único. A ideia inicial, segundo requisito era que esse campo fosse informado no post, porém não vi a necessidade de criar outro id autoincrement no banco e atribui ao id criado pelo mongo db (_id)

É necessário que o post tenha body de formato x-www-form-url-encoded no postman

Após o request de /payments será retornado um JSON contendo os dados inseridos

Executando o Front End da Aplicação

Após feitas as configurações acima (iniciando MongoDB e NodeJS e populando o banco), teremos a API rodando em http://localhost:3000/ (Teste se está tudo ok mandando um GET através http://localhost:3000/plans - Deverá aparecer um json com todos os planos (se banco populado))

Agora, podemos executar o front-end da aplicação. Para realizar a segunda etapa foi utilizado:

  • PHP (para consumir a API)
  • HTML
  • Bootstrap
  • JavaScript
  • JQuery

Executando Localmente

É necessário que se tenha um Servidor Apache. Por exemplo:

Executando com Xampp:

Após instalação do Xampp, temos duas alternativas: .

  1. Colar o diretório front contido do diretório do projeto em C:/Xampp/htdocs/
  2. Ou colar o diretório do projeto todo em C:/Xampp/htdocs

Executar o front-end em um navegador utilizando a URL: http://localhost/front (Se você optou pela opção 1) ou a URL http://localhost/CasaECafeEstagio/front (Se você optou pela opção 2)

casaecafeestagio's People

Contributors

caroline-castor avatar

Watchers

James Cloos avatar  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.