Projeto acadêmico de uma plataforma web de streaming fictício, desenvolvido em grupo para explorar autenticação, persistência de dados e experiência do usuário com HTML, CSS e JavaScript puro.
O PurplePlay simula a navegação de um app de filmes, com fluxo completo de entrada do usuário:
- Cadastro e login com Firebase Authentication (Email/Senha)
- Tela principal com exploração por gêneros
- Modal com sinopse, duração e trailer
- Lista pessoal "Meus Filmes" salva no Firebase Realtime Database
- Remoção de filmes salvos
Projeto online: https://3Gb3.github.io/PurplePlay
- Cadastro de usuário com validação de senha
- Login com persistência de sessão
- Proteção da página principal para impedir acesso sem autenticação
- Logout ao clicar no avatar
- Catálogo organizado por gêneros (terror, ação, comédia, drama, romance, ficção, suspense e infantil)
- Atualização dinâmica dos 5 cards de filmes por gênero
- Animações de entrada/saída na troca de categoria
- Modal com:
- título
- sinopse
- duração
- trailer incorporado via YouTube
- Salvamento de filmes por usuário autenticado
- Recuperação da lista diretamente do Realtime Database
- Modo de remoção de filmes salvos
- HTML5
- CSS3
- JavaScript (vanilla)
- Firebase Authentication
- Firebase Realtime Database
- O usuário acessa
index.htmle faz cadastro ou login. - Ao autenticar, é redirecionado para
principal_v2.html. - A página principal valida sessão + estado de autenticação.
- Ao salvar um filme, o app grava em
meusFilmes/{uid}/{timestamp}no Realtime Database. - A área "Meus Filmes" busca e renderiza os filmes salvos do usuário atual.
PurplePlay/
|- index.html
|- principal_v2.html
|- firebase-config.js
|- script.js
|- sinopse2.js
|- navbarvoltar.js
|- style.css
|- navbar.css
|- sinopse.css
|- Login/
| |- carregar.css
| |- fadein.css
| |- opcao2.css
|- imagens/
|- README.md
- Navegador atualizado
- (Opcional) extensão Live Server no VS Code
- Clone o repositório:
git clone https://github.com/3Gb3/PurplePlay.git- Entre na pasta do projeto:
cd PurplePlay-
Abra o arquivo
index.htmlno navegador. -
Recomendado: usar Live Server para evitar problemas de carregamento local de recursos.
O projeto já possui um firebase-config.js, mas se você quiser usar seu próprio ambiente:
- Crie um projeto no Firebase.
- Ative Authentication com método Email/Senha.
- Ative Realtime Database.
- Substitua o objeto de configuração em
firebase-config.js.
Exemplo:
const firebaseConfig = {
apiKey: "SUA_API_KEY",
authDomain: "SEU_PROJETO.firebaseapp.com",
projectId: "SEU_PROJECT_ID",
storageBucket: "SEU_BUCKET.appspot.com",
messagingSenderId: "SEU_SENDER_ID",
appId: "SEU_APP_ID",
databaseURL: "https://SEU_PROJETO-default-rtdb.firebaseio.com/"
};{
"meusFilmes": {
"uid-do-usuario": {
"timestamp": {
"titulo": "Interestelar",
"sinopse": "...",
"duracao": "2h 49min",
"trailer": "https://www.youtube.com/embed/..."
}
}
}
}Minha atuação principal foi na parte de integração e lógica de autenticação/dados:
- integração com Firebase Authentication
- integração com Firebase Realtime Database
- conexão entre fluxo de UI e persistência dos dados
- desenvolvimento do fluxo de login/cadastro
Projeto desenvolvido por 4 colegas de faculdade como trabalho acadêmico.
