| Home | Arquitetura | Banco de Dados | Configuração | Gerenciamento do Projeto | Instalação | Materiais de Estudo | Mockups | Requisitos | Reunioes | Sprints | Time | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
Sumário
- Acesso ao banco de dados Cloud Firestore
- Modelo Conceitual do banco
- Modelo ER do banco
- 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 e realizar login com a seguinte conta Google
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
-
name:
Tipo = Texto
Descrição = Nome completo do usuário -
email:
Tipo = Texto
Descrição = E-mail do usuário a ser usado para login -
cpf:
Tipo = Texto
Descrição = Cpf do usuário no formato 123.456.789.00 -
dob:
Tipo = Data
Descrição = Data de nascimento do usuário -
phone:
Tipo = Texto
Descrição = número de telefone do usuário -
isAdmin:
Tipo = Boolean
Descrição = true indica que o usuário é administrador -
deleted:
Tipo = Boolean
Descrição = true indica que a conta está excluída
Log
-
Usuario (FK):
Tipo = Usuario
Descrição = usuário que realizou a ação -
DateTime:
Tipo = Data
Descrição = data e horário quando ocorreu esta ação -
Action:
Tipo = Texto
Descrição = ação realizada (e.g. terminou um treino) -
Where:
Tipo = Texto
Descrição = onde a ação foi realizada (e.g. na tela do treino) -
Deleted:
Tipo = Bool
Descrição = valor true indica que o log foi excluído
Treino
-
Usuario (FK):
Tipo = Usuario
Descrição = Usuário as quais pertence o treino -
Semana:
Tipo = Inteiro
Descrição = Qual das semanas de treino este treino pertence (1-4) -
Description:
Tipo = Texto
Descrição = Descrição do treino, com as metas a se atingir -
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) -
Order:
Tipo = Inteiro
Descrição = valor inteiro indicando a ordem deste treino na lista de treinos da semana. Número menor aparece antes. -
DateTime_Created:
Tipo = Data
Descrição = data e hora que o treino foi criado -
Deleted:
Tipo = Bool
Descrição = valor true indica que o treino foi excluído -
Distance:
Tipo = Inteiro
Descrição = distância em metros que o usuário percorreu no treino e preencheu no app -
Time:
Tipo = Inteiro
Descrição = tempo em minutos que o usuário percorreu o treino e preencheu no app -
DateTime_Concluded:
Tipo = Data
Descrição = data e hora que o treino foi concluído
Posts
-
DateTime Cadastro:
Tipo = Data
Descrição = -
Titulo:
Tipo = Texto
Descrição = titulo do post -
Tipo:
Tipo = Enum
Descrição = Event ou Notification -
Description:
Tipo = Texto
Descrição = descrição do post -
Date_Post:
Tipo = Data
Descrição = -
Date_Event:
Tipo = Data
Descrição = -
Deleted:
Tipo = Bool
Descrição = valor true indica que o post foi excluído
Post_Usuario
-
Post (FK):
Tipo = Post
Descrição = Post pertencente a este Post_Usuario -
Usuario (FK):
Tipo = Usuario
Descrição = Usuario aos quais este Post_Usuario pertence -
Action:
Tipo = Texto
Descrição = -
DateTime:
Tipo = Data
Descrição = -
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": ""
}
}
}