| [Home](home) | [Arquitetura](arquitetura) | [Banco de Dados](banco_dados) | [Configuração](configuracao) | [Gerenciamento do Projeto](Gerenciamento_projeto) | [Instalação](instalacao) | [Materiais de Estudo](Materiais_estudo) | [Mockups](mockups) | [Requisitos](requisitos) | [Reunioes](reunioes) | [Sprints](sprints) | [Time](time) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
# Sumário 1. ***Acesso ao banco de dados Cloud Firestore*** 2. ***Modelo Conceitual do banco*** 3. ***Modelo ER do banco*** 4. ***Descrição dos atributos do modelo***
## 1. Acesso ao banco de dados Cloud Firestore O Cloud Firestore é uma plataforma da Google que é utilizada neste projeto como banco de dados. Para fazer o login, basta ir na página do [Firestore](https://firebase.google.com/docs/firestore) e realizar login com a seguinte conta [Google](configuracao)

O banco de dados possui duas sessões: Authentication e Database. A primeira é onde estão os dados de login e autenticação de contas, na segunda temos o banco de dados em si com as informações especificadas no modelo ER. Documentação da Authentication: https://firebase.google.com/docs/auth?authuser=0 Documentação do Firestore(Banco de dados): https://firebase.google.com/docs/firestore?authuser=0
## 2. Modelo Conceitual


## 3. Modelo ER


## 4. Descrição dos Atributos ### Usuario 1. **name**: Tipo = Texto Descrição = Nome completo do usuário 2. **email**: Tipo = Texto Descrição = E-mail do usuário a ser usado para login 3. **cpf**: Tipo = Texto Descrição = Cpf do usuário no formato 123.456.789.00 4. **dob**: Tipo = Data Descrição = Data de nascimento do usuário 5. **phone**: Tipo = Texto Descrição = número de telefone do usuário 6. **isAdmin**: Tipo = Boolean Descrição = true indica que o usuário é administrador 8. **deleted**: Tipo = Boolean Descrição = true indica que a conta está excluída ### Log 1. Usuario (FK): Tipo = Usuario Descrição = usuário que realizou a ação 2. DateTime: Tipo = Data Descrição = data e horário quando ocorreu esta ação 3. Action: Tipo = Texto Descrição = ação realizada (e.g. terminou um treino) 4. Where: Tipo = Texto Descrição = onde a ação foi realizada (e.g. na tela do treino) 5. Deleted: Tipo = Bool Descrição = valor true indica que o log foi excluído ### Treino 1. Usuario (FK): Tipo = Usuario Descrição = Usuário as quais pertence o treino 2. Semana: Tipo = Inteiro Descrição = Qual das semanas de treino este treino pertence (1-4) 3. Description: Tipo = Texto Descrição = Descrição do treino, com as metas a se atingir 4. Month: Tipo = Inteiro Descrição = número do mês atual. É um inteiro que inicia em 1 e continua incrementando a cada mês que se passa infinitamente (e.g. mês 146 desde o lançamento do app) 5. Order: Tipo = Inteiro Descrição = valor inteiro indicando a ordem deste treino na lista de treinos da semana. Número menor aparece antes. 6. DateTime_Created: Tipo = Data Descrição = data e hora que o treino foi criado 7. Deleted: Tipo = Bool Descrição = valor true indica que o treino foi excluído 8. Distance: Tipo = Inteiro Descrição = distância em metros que o usuário percorreu no treino e preencheu no app 9. Time: Tipo = Inteiro Descrição = tempo em minutos que o usuário percorreu o treino e preencheu no app 10. DateTime_Concluded: Tipo = Data Descrição = data e hora que o treino foi concluído ### Posts 1. DateTime Cadastro: Tipo = Data Descrição = 2. Titulo: Tipo = Texto Descrição = titulo do post 3. Tipo: Tipo = Enum Descrição = Event ou Notification 4. Description: Tipo = Texto Descrição = descrição do post 5. Date_Post: Tipo = Data Descrição = 6. Date_Event: Tipo = Data Descrição = 7. Deleted: Tipo = Bool Descrição = valor true indica que o post foi excluído ### Post_Usuario 1. Post (FK): Tipo = Post Descrição = Post pertencente a este Post_Usuario 2. Usuario (FK): Tipo = Usuario Descrição = Usuario aos quais este Post_Usuario pertence 3. Action: Tipo = Texto Descrição = 4. DateTime: Tipo = Data Descrição = 5. Deleted: Tipo = Bool Descrição = valor true indica que o Post_Usuario foi excluído
### Formato do banco de dados no Firebase ~~~ { "eventLikes": { "[eventLikeId]": { "users": { "[userId]": { } } } }, "feed": { "[feedId]": { "createdAt": { "seconds": 0, "nanoseconds": 0 }, "deleted": false, "description": "", "eventDate": { "seconds": 0, "nanoseconds": 0 }, "title": "", "type": "event" } }, "logs": { "[logId]": { "action": "", "creationDate": { "seconds": 0, "nanoseconds": 0 }, "deleted": false, "user": null, "where": "" } }, "postsUsers": { "[userId]": { "posts": { "[postId]": { "updatedAt": "timestamp", "value": false } } } }, "trainings": { "[userId]": { "months": { "[monthId]": { "fulfilled": false, "index": 0, "trainingItems": { "[trainingItemId]": { "completedAt": { "seconds": 0, "nanoseconds": 0 }, "createdAt": { "seconds": 0, "nanoseconds": 0 }, "description": "", "meters": 0, "order": 1, "seconds": 0, "week": 1 } } } } } }, "users": { "[userId]": { "amountOfTrainings": null, "completedTrainings": [""], "cpf": "", "deleted": false, "dob": { "seconds": 0, "nanoseconds": 0 }, "email": "", "isAdmin": false, "name": "", "phone": "" } } } ~~~