Criar um aplicativo de processamento de pontuação A aplicação deve conter um serviço que observa um diretório e sempre que um novo arquivo .csv chegar, o mesmo deve ser processado. O processamento do arquivo é a leitura do mesmo e a gravação de cada linha na tabela de pontuação. Um exemplo de uma linha do arquivo de pontuações pode ser vista abaixo: 2018-06-15; Marcos; 250;600; Os valores de cada coluna referem-se respectivamente à data de pontuação, nome do usuário, ID do usuário e quantidade de pontos. Cada usuário pode fazer no máximo 3126 pontos.
Foi utilizado o listen para observar um diretório especifico a fim de tomar uma ação assim que o arquivo for inserido no diretório.
o arquivo de configuração esta dentro de:
config/initializers/listen_init.rb
listener = Listen.to('public/score_files') do |modified, added, removed|
puts "added absolute path: #{added}"
if added.present?
Score.import(added)
end
end
listener.start
sleep
Os arquivos que chegam são importados para aplicação que os mostra em duas telas, a que lista todas as entradas importadas para os administradores do sistema, e a tela de ranking acessível para todos.
clone este repositório localmente e execute o comando rake db:setup
para criar os
bancos e importar o seed.
Após rodar a aplicação efetue login com:
email: admin@gmail.com
senha: topsecret