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
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.








