Coder Social home page Coder Social logo

places-api's Introduction

Places API

Build Status Maintainability Test Coverage

Resumo

O desafio foi implementado em Ruby on Rails e os testes em RSpec. Os dados são armazenados no PostgreSQL e gem Geokit foi usada na parte da localização. O método de autenticação usado é o JWT (JSON Web Tokens).

Foi criado um processo de CI/CD usando Travis CI, que é iniciado quando um push é feito para a master do repositório no Github. O processo de CI/CD consiste em fazer build do projeto, criar e migrar o banco de dados, fazer uma análise de segurança com o Brakeman (o processo falha se for encontrada alguma vulnerabilidade) e rodar os testes (o processo falha se algum teste quebrar ou se a cobertura de testes for menor que 95%). Se não acontecer problemas em nenhum dos passos anteriores, a API será implantada no Heroku.

Tecnologias

  • Ruby (MRI) 2.7.1
  • Ruby on Rails 6
  • PostgreSQL
  • Docker Compose
  • JWT
  • Geokit Rails
  • RSpec

Documentação

Os endpoints desenvolvidos foram documentados através do Postman e a documentação está disponível neste link.

Uma coleção com exemplos de requisições pode ser importada pelo Postman com este link: https://www.getpostman.com/collections/7d45c971bbab1e7913df. A coleção possui as seguintes variáveis de ambiente:

  • HOST: localhost:3000 para requisições em desenvolvimento e https://api-places-mesa.herokuapp.com para requisições em produção.
  • JWT_TOKEN: deve ser preenchido com o token retornado da requisição ao endpoint de login.

Produção

A API está hospedada no Heroku e disponível neste endereço https://api-places-mesa.herokuapp.com.

Obs.: A primeira requisição pode levar alguns segundos pra responder por conta das limitações do plano free do Heroku. As demais requisições devem ser respondidas no tempo normal.

Instruções

Instalar Ruby

Usando rbenv

rbenv install 2.7.1

Instalar PostgreSQL

Usando Docker Compose

docker-compose up -d

Instalar as Dependências

bundle install

Criar e Migrar o Bando de Dados

bundle exec rake db:prepare

Criar Dados de Desenvolvimento (Opcional)

bundle exec rake dev:seed

Rodar os Testes

bundle exec rspec

Rodar a Aplicação

rails server

places-api's People

Contributors

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