Skip to content

4Asset-Technologies/back-end-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

4Asset Programming Challenge

Rails Developer

Geral

Na 4Asset temos várias aplicações e utilizamos Ruby e Rails para responder as demandas de forma rápida e com alta capacidade. Muita vezes, quando surge um problema e não sabemos muito bem como resolve-ló, utilizamos Ruby.

Devemos pensar em desenvolver aplicativos que façam parte de uma arquitetura maior. É preciso capacidade de organização, documentação e abstração para conceber tais sistemas, e é nesses aspectos que vamos mirar nessa challenge.

Objetivo específicos

O objetivo desse desafio é construir duas aplicações Rails. Uma com o proposito de basicamente guardar as informações no banco de dados. E a outra, com o proposito de conectar na API de streaming do Twitter e fique procurando publicações com uma determinada palavra.

Aplicativo para armazenar os dados

Um aplicativo Rails, extremamente simples, com um endpoint RESTful para cadastrar novos tweets:

  • POST /tweets

Ele deve validar os tweets recebidos e salvar num Banco de Dados Postgres.

No aplicativo também deve haver uma rake task que traga, da maneira mais rápida que você conseguir os seguintes dados, baseados nos tweets recebidos:

Dado Exemplo
Média de tweets por horário 9:00 -> 125, 10:00 -> 200, 12:00 -> 475, ...
Usuário com maior número de tweets @pedro - 25 tweets

Simples, não?

Extras (não são requisitos)

  • Uma boa documentação, dentro e fora do código
  • Testes em RSpec (unitários e de integração)

Aplicativo para buscar os dados

Esse é o aplicativo que vai abastecer a aplicação Rails com dados do twitter.

Ele deve receber uma palavra-chave para buscar, conectar na stream realtime do Twitter e passar os tweets recebidos para o aplicativo Rails. A palavra chave pode ser passada via environment variable, arquivo de configuração, argv, o que você quiser.

Você pode usar gems para tornar a sua vida mais fácil :)

Extras: (não são requisitos)

  • Envio assíncrono dos tweets para o Rails (sem parar de receber os tweets em realtime)
  • Suporte a múltiplas palavras chave
  • Gestão de indisponibilidade do app Rails com recuperação de envio quando o serviço voltar
  • Testes em RSpec

Requisitos técnicos

  • Usar Ruby :)
  • É permitido o uso de frameworks e gems, sem penalização
  • A arquitetura e design do sistema devem ser documentadas em um arquivo README
  • Deve ser usado GIT para versionamento

Envio

Nos comunique através de e-mail, com um link para um repositório público no GitHub.

Aviso

Ao completar o desafio não implica em nenhum vínculo nem obrigação da 4Asset com você. Todo o código criado será descartado. Esse teste usa elementos reais de necessidades da 4Asset apenas como uma maneira de avaliarmos sua aptidão para o cargo.

Final notes

Valorizamos muito a sua capacidade de nos surpreender!

Boa sorte :)

About

Testes para candidatos a desenvolvedor back-end

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published