/codetunes

CodeTunes é um projeto reformulado por mim, onde eu apliquei conhecimentos sobre consumo de API Rest realizando requisições em uma API pública do iTunes para listagem dos álbuns e das músicas de cada album, trabalhei muito com ciclos de vida do React, navegação do usuário com o Framework NextJS, estilização com Tailwind e metodologia Mobile First.

Primary LanguageTypeScript

Code Tunes 🎧

Olá, seja bem vindo ao repositório do CodeTunes, esse é um projeto reformulado por mim Guilherme Artigas, onde eu apliquei conhecimentos sobre consumo de API Rest realizando requisições em uma API pública do iTunes para listagem dos álbuns e das músicas de cada album, trabalhei muito com ciclos de vida do React, navegação do usuário com o Framework NextJS, estilização com Tailwind e metodologia Mobile First.

Rotas do Frontend

Rota /
  • Rota inicial da aplicação onde pedimos o nome para que seja possível navegar sem fazer cadastro e login, porém, usuários sem login não conseguem acessar as páginas de músicas favoritas, temos uma lógica de validação no botão onde ele somente fica habilitado caso o nome tenha três ou mais caracteres.
Rota search
  • Nessa rota é possível os usuários pesquisarem bandas ou artistas, com a mesma lógica do botão da rota /, onde o mesmo fica habilitado somente se o nome da banda ou artista tiver no mínimo dois caracteres, temos uma listagem de álbuns como resultado.
Rota /album/:id
  • Rota em que temos a listagem das músicas do álbum selecionado pelo usuário na rota /search, onde é possível ouvir um preview das músicas de 30 segundos, é possível favorita-las somente se o usuário tiver feito cadastro e login na aplicação (funcionalidade em desenvolvimento).
Rota /favorites
  • Nessa rota temos as músicas favoritas escolhidas pelo usuário, lembrando que somente quem faz cadastro e login tem acesso a essa rota.
Rota /profile
  • Nesta rota tem um breve resumo das informações do usuário, inicialmente temos os botões de login e cadastro, e quando temos um usuário logado também temos um botão de excluir a conta.
Rota /profile/login
  • Rota em que fazemos o login dos usuários, pedindo e-mail e senha, temos a validação no campo de e-mail onde o e-mail precisa ter um formato válido e a senha precisa ter no mínimo seis caracteres para que o botão seja habilitado.
Rota /profile/register
  • Nessa rota pedimos nome, email, senha e link da imagem de perfil do usuário, temos validação no frontend em que ele precisa atender as especificidades de cada campo para que o botão de cadastro seja habilitado.

Rotas do Backend

Rota /api/user/register
  • Nessa rota encaminhamos os dados recebidos pelo Frontend para validação na camada de serviços do Backend, temos um status 404 representando falha no cadastro e uma mensagem de retorno caso alguma informação necessária esteja faltando, e o status 201 representando sucesso na criação de um usuário.
Rota /api/user/login
  • Nessa rota encontramos o email digitado e confrontamos a senha digitada com a senha que esta criptografada no banco de dados, e um status 200 em casos de sucesso, status 404 para Email ou senha inválidos e status 400 para requisições com dados faltantes.
Rota /api/user/deleteUser
  • Nessa rota possibilitamos usuários a deletarem suas contas.

Tecnologias utilizadas

React ESLint Next JS TailwindCSS TypeScript Jest Testing-Library MongoDB

Link para acessar o projeto!