Coder Social home page Coder Social logo

natan-dot-com / rotten-lemons Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 4.21 MB

Database system project about review methods on Spotify

PLpgSQL 53.61% Python 46.39%
database database-implementation database-modeling database-schema erm relational-database postgresql sql plpgsql

rotten-lemons's Introduction

Rotten Lemons

  • Gabriel da Cunha Dertoni - 11795717
  • Natan Henrique Sanches - 11795680
  • Paulo Henrique de Souza Soares - 11884713
  • Álvaro José Lopes - 10873365

Descrição do problema e dos requisitos de dados

Um dos principais serviços de streaming de músicas utilizados na atualidade é o Spotify, que conta com uma grande variedade e quantidade de músicas, possuindo também uma grande gama de funcionalidades. Mesmo assim, algumas funcionalidades demandadas pelos usuários não estão disponíveis até o momento. Em particular, o Spotify não permite que usuários ou críticos deixem reviews em músicas, álbuns e artistas. Além disso, métodos de reviews e classificação são amplamente utilizados em outras mídias digitais, como no caso dos filmes e séries (através de plataformas como o Rotten Tomatoes). Por conta disso, existe uma demanda para tal serviço como demonstram publicações e comentários de usuários do Spotify no fórum oficial da plataforma (Spofity community1).

O sistema proposto atende à demanda existente permitindo a classificação e avaliação de músicas, álbuns e artistas da plataforma Spotify. Nesse sistema, o usuário dispõe de um mecanismo de avaliação de cinco estrelas, abrangendo também tags para classificação de acordo com gênero e temática, além de comentários de livre escrita. Com os dados das tags, serão levantadas estatísticas para a construção automática de playlists tematizadas, com uma gama de músicas fortemente relacionadas à tag escolhida. O usuário também pode se relacionar com outros usuários da plataforma na forma de seguidor, sendo notificado dos comentários e avaliações do seguido.

Relacionamento entre entidades do 'mundo real'

Um usuário do sistema pode deixar uma avaliação (de 1 a 5 estrelas) para músicas, escolher tags classificadoras (como feliz, triste, nostálgica, etc.) para ela e deixar um comentário (com no máximo 300 caracteres). Cada usuário possui nome de usuário, sinalizador para críticos (sim ou não) e um sinalizador de cargo, sendo os cargos: usuário, moderador e administrador. Os moderadores são responsáveis por garantir um ambiente agradável aos usuários e podem remover avaliações e tags que não atendem às diretrizes da comunidade. Já os administradores possuem permissões ainda maiores, podendo gerenciar o sistema no geral. Além disso, cada usuário também possui um conjunto de informações pessoais, sendo eles endereço de e-mail e idade. Ademais, usuários também podem seguir outros usuários e serão notificados de seus comentários e avaliações.

Um artista possui um nome e pode publicar vários álbuns. Cada álbum possui um nome e é composto por um conjunto de músicas. Artistas também podem colaborar na publicação de um álbum conjunto. Além disso, uma música pode estar presente em vários álbuns.

As tags são compostas e identificadas pelo seu nome e sua relevância é determinada de acordo com a frequência que são utilizadas por música. Cada música pode ser dita fortemente relacionada com uma tag, se ela foi repetidamente atribuída à música por diferentes usuários. Uma tag gera uma playlist que será composta por uma lista de músicas.

Os comentários (com no máximo 300 caracteres) de música, álbum e artista são feitos por usuários e possuem conteúdo e data/hora de publicação, se relacionando diretamente com música, álbum e artista respectivamente.

Principais funcionalidades

As funcionalidades são diversas para cada tipo de usuário. Dentre elas, podemos citar:

  • Usuário

    • Inserção, alteração ou remoção de avaliações em músicas, álbuns e artistas através de um sistema de avaliação cinco estrelas;
    • Inserção, alteração ou remoção de tags em músicas para classificação;
    • Inserção, alteração ou remoção de comentários de livre escrita em músicas, álbuns e artistas;
    • Seguir outros usuários de preferência;
    • Navegação entre as avaliações e os comentários mais recentes de determinada música, artista ou álbum;
    • Pesquisa por determinado usuário, com base em seu nome de usuário;
    • Salvamento de playlists através do mecanismo de 'Curtir'.
  • Moderador

    • Alteração ou remoção de avaliações, comentários e tags que não sigam as diretrizes da comunidade;
    • Banimento e perdão a usuários que descumpram as regras da comunidade;
    • Listagem de usuários banidos;
    • Concebimento do sinalizador de crítico para usuários reconhecidos como tal.
  • Administrador

    • Inserção, modificação ou remoção de registros de músicas, álbuns e artistas;
    • Listagem de moderadores;
    • Concebimento do cargo de moderador para usuário.

Discussões sobre ciclos

Diagrama do modelo Entidade-Relacionamento

Diagrama Entidade-Relacionamento

Footnotes

  1. Pode ser observado em https://community.spotify.com/t5/Closed-Ideas/Social-Allow-Comments-on-Tracks-Albums/idi-p/1295893. e https://community.spotify.com/t5/Live-Ideas/Music-Personal-Rating-of-Music/idi-p/179102

rotten-lemons's People

Contributors

alvarojoselopes avatar gabrieldertoni avatar natan-dot-com avatar opaulosoares avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.