Skip to content

Um sistema que através do uso da API do SPotify, consegue executar serviços em nome de um usuário, tais como: buscar músicas, filtrar músicas e alterar playlists.

Notifications You must be signed in to change notification settings

projetomac0321/SuperGerenciadorMusical

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Super Gerenciador Musical com API Spotify

Table of Contents

  1. Descrição
    1. Requisito 1
    2. Requisitos 2 e 3
    3. Requisitos 4, 5 e 6
  2. Execução do Sistema
    1. Pré-configurações para o frontend
    2. Passos para a execução
  3. Documentação
  4. Observações
  5. Desenvolvedores

Descrição

Projeto Final da disciplina MAC0321 - Laboratório de Programação Orientada a Objetos. Este projeto possui o objetivo de ser um sistema Web capaz de permitir a um usuário buscar por músicas e criar playlists de uma forma personalizada. Além disso, o usuário poderá ver uma série de características acústico-musicais das suas músicas e ordená-las de acordo com uma série de critérios.

Requisito 1

Nosso sistema permite a um usuário a criação, remoção e listagem de playlists, e a criação e remoção de músicas em uma determinada playlist na sua conta do Spotify. Para a realização dessa conexão com o spotify utilizamos a Web API do spotify essa conexão se dá por meio de uma autorização concedida pelo usuário, o fluxo de autorização que utilizamos foi o Authorization Code Flow. Para mais informações sobre o processo de autenticação implementado pelo nosso sistema veja a nossa Documentação Requisito 1.

Requisitos 2 e 3

Nosso sistema permite a busca de músicas por vários critérios, título, autor, nome do álbum e nome de playlists públicas do spotify, também permite a busca de álbuns e playlists públicas, que ao se clicar, mostra-se todas as músicas daquela playlist pública ou álbum (e permite que cada uma delas seja inserida em uma das playlists do usuário). Além disso, para cada resultado de uma busca de música ele apresenta uma visão detalhada, oferecendo uma série de parâmetros sobre a música, incluindo dançável, energia, andamento (tempo), força (loudness), fala (speechiness), instrumental, ao vivo, acústica. Por fim, para uma determinada playlist do usuário, todas essas informações são mostradas na forma de uma tabela e o usuário poderá ordenar essa tabela por cada um desses parâmetros segundo o seu gosto.

Requisitos 4, 5 e 6

Para cada resultado de uma busca, o sistema permitie uma visão detalhada das músicas oferecendo uma série de parâmetros sobre a música, incluindo dançável, energia, andamento (tempo), força (loudness), fala (speechiness), instrumental, ao vivo, acústica. Dada uma determinada playlist, todas essas informações são mostradas na forma de uma tabela e o usuário pode ordenar essa tabela por cada um desses parâmetros segundo o seu gosto. Ao se mostrar um álbum ou playlist, mostra-se as imagens a ele associadas. Ao se mostrar uma playlist, mostra-se todas as informações disponíveis sobre cada um das músicas (título, artistas, ano, duração), e também, é possível ouvir o início da música. Permite ao usuário filtrar as buscas por músicas em uma determinada tonalidade, determinado modo (maior ou menor) e determinada fórmula de compasso (3/4, 4/4, 5/4, 6/8). Além disso, o usuário é capaz de realizar uma busca dentro de todas as playlists que ele criou usando um critério baseado nos parâmetros de análise do áudio das músicas (dançável, acústica, energia, etc.).

Execução do Sistema

Nossa aplicação é dividida em frontend e backend, o nosso backend é implementado utilizando o framework Spring Boot, com a linguagem Java, já o nosso frontend é implementado utilizando a biblioteca React com a linguagem Javascript. É importante ressaltar que nosso projeto está definido como em fase de desenvolvimento na Web Api do Spotify, logo os usuários devem entrar apenas com uma das contas colocadas no DashBoard.

Pré-configurações para o frontend

Para executar o frontend, é necessária a utilização do npm, a versão utilizada é a 8.5.5, além disso, também é necessário a utilização do node cuja versão utilizada foi a 16.15.0, recomendamos que ambos sejam instalados em suas versões mais recentes. Com estes passos feitos, dentro da pasta supergerenciadormusical/front rode o comando npm install.

Passos para a execução

Execute o backend, executando o arquivo SuperGerenciadorMusicalApplication.java como Spring Boot App, feito isso, rode o seguinte comando npm run dev na pasta supergerenciadormusical/front para executar o frontend. Feito isso, abra o navegador e siga para “http://localhost:3000/login”. Nessa aba ocorre a autenticação, terminada a autenticação, por fim, abra uma nova aba e vá para http://localhost:3000/, onde todos os serviços da aplicação podem ser realizados. Para mais informações consulte os tópicos 1.1, 1.2 e 2.1 da documentação.

Documentação

A fim de corresponder o controle de versionamento por meio do git do nosso projeto, a documentação correspondente a entrega atual foi transferida para um documento pdf, "docs.pdf". Nela estão apresentados de forma detalhada os tópicos:

  1. Pré-configurações e execução da aplicação
  2. Detalhando a Jornada do Usuário
  3. Arquitetura e Padrão de Projeto
  4. Autenticação
  5. Organização do frontend
  6. Controllers
  7. Models e Services

Os tópicos da jornada do usuário que abordam a terceira entrega, isto é, requisitos 4, 5 e 6 são: 2.6, 2.7, 2.8 e 2.9.

Observações

  1. Por utilizarmos acentuação em algumas classes, atributos e métodos, optamos por usar a Codificação UTF-16 padrão do Java.

Desenvolvedores

Henrique Paes - [email protected]

Izaque Sena - [email protected]

João Pedro - [email protected]

Luiz Guilherme - [email protected]

Vinícius Viana - [email protected]

Vitor Wallace - [email protected]

About

Um sistema que através do uso da API do SPotify, consegue executar serviços em nome de um usuário, tais como: buscar músicas, filtrar músicas e alterar playlists.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published