Ir para o conteúdo
Bruno Lucildo
Voltar para projetos
Projeto pessoalEm desenvolvimento

Reelix

Aplicativo para descobrir e acompanhar filmes e séries, registrar o que você assistiu e compartilhar atividades autorizadas com amigos.

Tecnologias

  • React Native
  • Expo
  • TypeScript
  • ASP.NET Core (.NET 10)
  • PostgreSQL
  • Entity Framework Core
  • Supabase Auth
  • TMDB
Tela inicial do Reelix no celular: a aba Séries com as fileiras "Continuar Assistindo" e "Começar a Assistir", com pôsteres de séries, e o início do calendário de estreias.
Tela inicial do Reelix no celular, aba Filmes: a fileira "Quero assistir" com um pôster de filme, a fileira de filmes em destaque e o início dos favoritos.
Pesquisa no catálogo do Reelix no celular: as abas Filmes e Séries, o campo de busca com "Interestelar" e dois resultados com pôster e ano.
Tela de título do Reelix no celular, para a série Breaking Bad: uma imagem de fundo, a data de lançamento, botões de ação, a sinopse e as abas de temporadas e episódios com o progresso assistido.
Seção de avaliações e comentários do Reelix no celular: o controle de nota em meia estrela com a escolha entre privado e público, e a caixa de comentário com a opção de marcar como spoiler e a escolha de visibilidade.
Tela de watchlist do Reelix no celular: abas de favoritos, watchlist e minhas listas, campo de busca no catálogo, opção de ordenação e dois títulos com pôster, tipo, ano e gênero.
Tela de perfil do Reelix no celular: opções de avatar (iniciais e personagens ilustrados) e uma fileira de medalhas de conquistas com um link para progresso e estatísticas.
Tela de conquistas e estatísticas do Reelix no celular: totais de episódios, séries, filmes e registros, tempo estimado de exibição e a atividade do mês.
Tela de entrada do Reelix no celular: o logotipo do reelix, o título "Suas histórias começam aqui." e os campos de e-mail e senha.
Telas da versão de desenvolvimento. A interface do app está em português. Dados e imagens de filmes e séries do TMDB. Este produto usa o TMDB e as APIs do TMDB, mas não é endossado, certificado nem aprovado de outra forma pelo TMDB.

Visão geral

O Reelix é um aplicativo para descobrir e acompanhar filmes e séries, registrar o que você assistiu e compartilhar atividades autorizadas com amigos. O repositório reúne um app mobile em React Native e uma API em ASP.NET Core. É um projeto pessoal.

Desafio

Um diário do que se assiste é dado pessoal. Compartilhá-lo com amigos só funciona se cada pessoa controla o que é compartilhado, e comentários e avaliações não podem estragar um enredo para quem ainda não assistiu. O desafio foi construir os recursos sociais sobre isso, com privacidade e controle de spoilers como regras do produto, e não como remendos.

Solução

O compartilhamento é opcional e dividido em consentimentos separados para histórico, avaliações e favoritos. Comentários são privados por padrão, podem ser sinalizados como spoiler e ficam ocultos até o leitor escolher revelá-los. O acompanhamento de progresso, as listas, as conquistas e um ranking mensal entre amigos seguem as mesmas regras.

Arquitetura

A API é um monólito modular em ASP.NET Core (.NET 10), organizado nos projetos Domain, Application, Infrastructure e Api para que as regras de negócio não dependam de frameworks nem do banco. Os dados ficam no PostgreSQL, via Entity Framework Core. O Supabase Auth cuida do login, e a API valida seus tokens e os associa à conta interna. Os metadados de filmes e séries vêm do TMDB, por trás de um adaptador, com as credenciais do provedor mantidas no servidor. O app mobile usa React Native com Expo, TypeScript estrito, Expo Router e TanStack Query. Um workflow do GitHub Actions executa os testes do backend, as verificações de lint e tipos do mobile, auditorias de dependências e a busca por segredos.

Decisões técnicas

  • Um monólito modular antes de microsserviços.

    O desenho se mantém simples até o uso real justificar mais infraestrutura.

  • Um único sistema de identidade.

    O Supabase Auth é o único provedor, e um segundo sistema, como o ASP.NET Identity, foi deliberadamente deixado de fora.

  • Provedores por trás de um adaptador.

    A integração com o catálogo pode ser trocada sem mexer nas regras de negócio, e as chaves dos provedores nunca chegam ao app.

  • IA desligada até haver decisão.

    Existe no servidor um classificador automático de spoilers, desativado por padrão enquanto custo e política de dados são definidos; a sinalização manual de spoilers funciona sem ele.

Estado atual

Em desenvolvimento. O código cobre contas, onboarding, descoberta, acompanhamento, listas, avaliações e comentários, amigos, notificações e conquistas, mas o próprio repositório afirma que isso descreve a implementação e não confirma uma implantação em produção. As notificações push remotas estão desativadas, o widget Android não foi implementado e o app mobile ainda não tem testes automatizados.