Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Enjoy-The-Run
  • wiki
  • Wiki
  • banco_dados

Last edited by Gabriel Fanto Stundner Mar 02, 2020
Page history

banco_dados

Home Arquitetura Banco de Dados Configuração Gerenciamento do Projeto Instalação Materiais de Estudo Mockups Requisitos Reunioes Sprints 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 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

  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

  7. 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": ""
    }
  }
}
Clone repository
  • arquitetura
  • banco_dados
  • configuracao
  • cronograma
  • gerenciamento_projeto
  • Home
  • instalacao
  • materiais_estudo
  • mockups
  • requisitos
  • reunioes
  • sprints
  • time