Skip to content

rafaelreisramos/semana-javascript-expert-06

Repository files navigation

Spotify Radio - Semana JS Expert 6.0

Projeto desenvolvido na Semana Javascript Expert ministrada pelo mestre Erick Wendel.

O Projeto

O projeto é um Stream Deck que permite inserir efeitos sonoros em um streaming de áudio.

É composto basicamente de um player de áudio e o controlador, ou o stream deck, propriamente dito.

Preview

Checklist Features

  • Web API

    • Deve atingir 100% de cobertura de código em testes
    • Deve ter testes de integração validando todas as rotas da API
    • Deve entregar arquivos estáticos como Node.js Stream
    • Deve entregar arquivos de música como Node.js Stream
    • Dado um usuário desconectado, não deve quebrar a API
    • Mesmo que vários comandos sejam desparados ao mesmo tempo, não deve quebrar a API
    • Caso aconteça um erro inesperado, a API deve continuar funcionando
    • O projeto precisa ser executado em ambientes Linux, Mac e Windows
  • Web App

    • Client
      • Deve reproduzir a transmissão
      • Não deve pausar se algum efeito for adicionado
    • Controller
      • Deve atingir 100% de cobertura de código em testes
      • Deve poder iniciar ou parar uma transmissão
      • Deve enviar comandos para adicionar audio efeitos à uma transmissão

Tarefas a fazer

  • implementar testes unitários para o frontend e manter 100% de code coverage
  • PLUS:
    • disponibilizar um novo efeito
      • adicionar um botão novo no controlador
      • adicionar um som de efeito novo para a pasta audios/fx/
      • republicar no heroku

Mas, e aí, como testar o projeto?

Para testar o projeto é necessário você instalar o docker compose na sua máquina.

A instalação é necessária porque o ambiente do projeto usa o SoX, que precisa ser instalado na máquina para permitir a manipulação do áudio pelo controlador.

Para que não seja necessária a instalação na máquina, que acaba ficando dependende do Sistema Operacional usado, e pode gerar diferenças no comportamento, é preferível rodar o projeto em um container.

Para rodar o projeto siga os seguintes passos:

git clone https://github.com/rafaelreisramos/semana-javascript-expert-06

  • Instale as dependências com o npm

npm i --silent

  • Como o docker compose já instalado, execute

npm run live-reload:docker

Verifique se no console aparece o log do servidor rodando. Em caso positivo acesse os endereços localhost:3000/home e em uma outra aba do navegador localhost:3000/controller.

Importante: Na página home de um play para iniciar o streaming de áudio. Este passo é necessário porque o Chrome e/ou Firefox não vem mais com o autoplay habilitado por padrão.

Agora acione os efeitos no stream deck na página controller e ouça o resultado.

Como dito pelo mestre, o resultado não é prefeito e pode ser melhorado mas já nos mostra o poder da manipulação dos streamings em tempo real.

Se você quiser fazer deploy no Heroku siga as instruções do arquivo heroku-commands.md, substituindo o meu nome nos comandos de criação do pelo seu ;-).

Créditos aos áudios usados

Transmissão

Efeitos

About

Semana Javascript Expert 6 - Spotify Radio - Stream Deck que permite inserir efeitos sonoros em um streaming de áudio

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published