CodeFlix é uma plataforma de streaming de vídeos inspirada na Netflix, desenvolvida com foco em arquitetura moderna, escalabilidade e boas práticas de engenharia de software.
-
Backend:
- Java 17 + Spring Boot
- Golang
- GraphQL
- DDD (Domain-Driven Design)
- TDD (Test-Driven Development)
- Clean Architecture
- Kafka
- ElasticSearch
- Keycloak (OAuth 2.0)
- Docker
-
Frontend:
- React + Redux (Admin)
- Next.js + TailwindCSS (Usuário)
-
Encoding de Vídeos:
- Golang
- Bento4 (MP4 para MPEG-DASH)
O projeto é composto por diversos microsserviços, cada um com responsabilidades bem definidas:
-
Admin do Catálogo:
- Backend em Java 17 com Spring Boot
- Frontend em React + Redux + Material UI
- Implementa DDD, TDD e Clean Architecture
-
Catálogo de Vídeos:
- API em Java 17 com Spring Boot e GraphQL
- Responsável por fornecer dados para o frontend do usuário
-
Encoder de Vídeos:
- Desenvolvido em Golang
- Realiza a conversão de vídeos de MP4 para MPEG-DASH utilizando Bento4
-
Frontend do Usuário:
- Desenvolvido com Next.js e TailwindCSS
- Interface amigável para os usuários consumirem o conteúdo
- Implementação de autenticação e autorização utilizando Keycloak com suporte a OAuth 2.0.
- Gerenciamento de usuários, permissões e tokens de acesso.
- Containerização de todos os serviços utilizando Docker.
- Orquestração com Kubernetes (em planejamento).
- Pipelines de CI/CD configuradas com GitHub Actions.
- Monitoramento e logging com ElasticSearch.
- Docker e Docker Compose instalados
- JDK 17
- Node.js e Yarn
- Go instalado
-
Clone o repositório:
git clone https://github.com/Nesrux/CodeFlix.git -
Navegue até o diretório do projeto:
cd CodeFlix -
Inicie os containers com Docker Compose:
docker-compose up --build -
Acesse o frontend do usuário em:
http://localhost:3000 -
Acesse o painel de administração em:
http://localhost:3001
CodeFlix/
├── admin-do-catalogo/ # Backend do administrador
├── api-catalogo-de-videos/ # API do catálogo de vídeos
├── api-enconder/ # Serviço de encoding de vídeos
├── Front-Codeflix/ # Frontend do usuário
├── docker-compose.yml # Orquestração dos serviços
└── README.md # Documentação do projeto
- Implementação do microsserviço de assinatura do serviço.
- Integração completa com Kubernetes para deploy em produção.
- Melhorias na interface do usuário e experiência geral.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.
Este projeto está licenciado sob a MIT License.