Integrantes: Ana Carol Erthal, Eduardo Adame e Tiago Barradas.
Versão mais recente aqui. O trabalho consiste em um banco de dados de um site estante, no estilo do TV Time, mas reunindo diversos tipos de entretenimento: filmes, animes, jogos e livros. Além de organização própria, o site provê relações entre usuários através de follows, reviews e etc..
Nossos dados foram gerados, quando falsos, a partir do site Mockaroo. Para descrever as obras, utilizamos de APIs e informações melhor descritas a seguir:
Reúne informações básicas do usuário e de sua conta
Tabela que descreve as relações de follow entre usuários usuários, sendo source o usuário que seguiu e target_id o usuário que foi seguido. Armazena o momento em que a relação foi estabelecida.
Dados de cada obra, sendo type o definido entre Movie, Anime, Game e Book.
Há, na parte de população dessa categoria, dois formatos de inserção de dados. Essa diferença se dá à diferença de experiência de programação entre os membros do grupo. Desenvolvemos tudo de forma síncrona, mas preferimos dar espaço para cada um crescer programaticamente, sem necessidade de se refrear ou ficar em segundo plano.
Os filmes e animes e suas informações foram obtidos a partir de APIs, sendo o de filmes a partir de filmes e o de animes:
- Arquivo wrapper.py pega informações do tmdb e adiciona ao nosso database, levando em consideração os foreign keys e etc.
- Arquivo wrapper.py pega informações do myanimelist e adiciona ao nosso database, levando em consideração os foreign keys e etc.
As informações de livros foram obtidas a partir desse database e as de jogos a partir da base de dados vgsales, ambas manipuladas através do Python e Pandas e, também, do Mockaroo.
Reúne todos os gêneros possíveis para as obras de todos os tipos, associando-os a um id. Obtidos a partir dos mesmos métodos que works.
Reúne todos os criadores possíveis para as obras de todos os tipos(desenvolvedoras, autores,etc), associando-os a um id. Obtidos a partir dos mesmos métodos que works.
Relaciona works a gêneros. Cada work pode ter mais de um gênero.
Relaciona works a criadores. Cada work pode ter mais de um criador.
Armazena as possibilidades de status, que serão utilizadas como FKs em shelf. São eles: On Progress, Finished, On Wishlist, Dropped.
Dados da estante em si. Tem FKs do id primário de user, de statuses e works, então contém tudo que é necessário para organizar a estante de cada usuário.
Dados de cade review feita pelos usuários, contando com score. Se relaciona consigo mesma, pois é possível fazer uma review sobre outra review (que, na prática, configura um sistema de comentários). Quando uma review é como um comentário de outra, o score tem valor de atribuição à review original.
Dados dos likes. Recebe PK do usuário que interagiu com a review, e da própria review. Além disso, conta com type, um interger para caracterizar os diferentes tipos de interação (like, deslike, haha, triste).