Este é o repositório do Back-end do MatchFlix, uma API desenvolvida para o Trabalho Prático da PUC. O objetivo do sistema é permitir que grupos de amigos criem sessões de votação para escolher de forma inteligente e automatizada (através de "Matches") qual filme assistir em conjunto.
A API foi construída seguindo a arquitetura REST utilizando uma estrutura totalmente desacoplada, o que permite que o Front-end seja desenvolvido de forma independente em outra pasta/repositório.
- Runtime: .NET 9.0
- Framework Web: ASP.NET Core Web API
- ORM (Mapeamento de Banco): Entity Framework Core (EF Core)
- Banco de Dados: MySQL
- Documentação de Rotas: Swagger / OpenAPI
O sistema conta com 5 controllers principais que gerenciam as 9 tabelas relacionais do banco de dados:
UsuariosController: Responsável pelo cadastro de usuários e fluxo de autenticação/login.FilmesController: Gerencia a inserção, busca por ID e a listagem do catálogo de filmes.GenerosController: Controla as categorias dos filmes (Ação, Comédia, Terror, etc.).GruposController: Cuida da criação de grupos de sessões e do vínculo/entrada de membros nesses grupos.SessoesController: O "cérebro" do app. Abre sessões de votação ativa, computa os votos individuais (likeoudislike) e calcula automaticamente os Matches quando todos os membros do grupo dão "Like" no mesmo filme.
- .NET 9 SDK instalado.
- Servidor MySQL ativo.
Abra o arquivo appsettings.json na raiz do projeto e ajuste a sua ConnectionString com as credenciais do seu MySQL local:
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=matchflix;Uid=SEU_USUARIO;Pwd=SUA_SENHA;"
}