Documentação do negócio
Documentação técnica
\mathbb{BANCO \space DE \space DADOS}
Utilizamos dois bancos de dados para este projeto: Firebase e Postgres. O Firebase é responsável por persistir as sessões do sistema. E no Postgres, são guardados todos os dados gerados no sistema.
Modelagem do Banco de Dados (Firebase)
{
"sessions": {
"5853": {
"game": {
"current_story": "5021687140",
"current_task": "5021695966",
"finished": true,
"opened_at": "2023-11-24T19:29:29.226Z",
"sprint_name": "Sprint 04 21/08 a 01/09 (3T) - 38 pontos -> ?? pts",
"squad_id": "bb2916cf-3c1a-42c5-9e35-be69a83633fb",
"squad_name": "Squad 2",
"stories": {
"5021687140": {
"name": "[UX] Investigar os melhores templates do site e oportunidades para aumentar CTR das p�ginas",
"tasks": {
"5021693668": {
"description": "Habitissimo"
},
"5021695966": {
"description": "Triider"
}
}
}
}
},
"users": {
"172de6de-a6e8-4735-8916-6b5b261e9671": {
"firebase_auth_id": "172de6de-a6e8-4735-8916-6b5b261e9671",
"level": "JUNIOR",
"name": "Joao"
},
"75750607-8e95-4440-a35c-5d28ae25217f": {
"level": "JUNIOR",
"name": "Kayky"
}
},
"votes": {
"5021693668": {
"final_vote": 5
},
"5021695966": {
"final_vote": 5,
"votes": {
"172de6de-a6e8-4735-8916-6b5b261e9671": 2
}
}
}
}
}
}
Modelagem do Banco de Dados (PostgreSQL)
Firebase no Projeto
O Firebase é uma plataforma de desenvolvimento de aplicativos móveis e web que fornece uma variedade de serviços, incluindo autenticação, banco de dados em tempo real, armazenamento de arquivos, hospedagem e muito mais. No "Planning Poker Online", estamos utilizando principalmente os seguintes componentes do Firebase:
1. Firebase Realtime Database
O Firebase Realtime Database é usado para armazenar e sincronizar dados em tempo real entre os clientes. No nosso caso, ele é empregado para armazenar informações sobre sessões de planning, votos, usuários e detalhes das sessões.
2. Firebase Authentication
O Firebase Authentication é utilizado para autenticar e gerenciar a identidade dos usuários da aplicação. No "Planning Poker Online", estamos implementando uma opção de autenticação anônima.
Fluxo de Dados
O Firebase é integrado ao projeto da seguinte forma:
-
Autenticação Anônima:
- Os usuários têm a opção de entrar anonimamente, sem a necessidade de fornecer informações pessoais.
- Eles podem escolher um perfil identificador para sua sessão.
- As informações de autenticação anônima são usadas para controlar o acesso a sessões específicas e identificar os usuários dentro de uma sessão.
-
Firebase Realtime Database:
- Dados sobre sessões, votos e outros detalhes são armazenados no Firebase Realtime Database.
- As alterações nos dados são refletidas em tempo real em todos os clientes conectados, permitindo a colaboração em tempo real durante as sessões de estimativa.
Regras de Segurança
Para garantir a segurança dos dados dos usuários e a integridade dos dados do projeto, implementamos regras de segurança personalizadas no Firebase Realtime Database. Essas regras controlam quem pode acessar, ler e gravar dados específicos. Regras rigorosas de segurança são aplicadas para proteger as informações confidenciais dos usuários e as sessões de estimativa.
Permissões de Acesso: - Apenas o backend tem permissão para criar sessões. - Usuários móveis podem votar nas sessões criadas pelo backend. - O aplicativo web tem a capacidade de realizar o voto final.