Neste documento temos o modelo de Dados (Entidade-Relacionamento). Temos também a descrição das entidades e o dicionário de dados.
Abaixo apresentamos o modelo dados (Entidade-Relacionamento) usando o BrModelo.
A seguir temos uma breve descrição das entidades presentes no modelo e dos atributos que elas contém, assim como suas devidas finalidades.
A entidade usuário armazena somente informações cruciais para a descrição do agente no sistema. Dentre as informações estão nome real e nome de usuário, para simplificar a visualização no sistema. Score para definir a experiência do usuário utilizando o sistema, com uma espécie de gamificação das tarefas, para estimular o uso e a organização de tarefas. Data de nascimento para possíveis recursos que possam envolver a gamificação do sistema ou algo para “aproximar mais o sistema do usuário". O email é outra informação pertinente, através dela podemos entrar em contato e enviar notificações independente da plataforma de acesso.
Um projeto é utilizado para agrupar tarefas com uma finalidade em comum, para que o usuário possa dividir em grupos menores suas pendências e objetivos, e para que possa encontrar mais facilmente tarefas correlacionadas. Ela armazena atributos como nome, descrição e cor. O objetivo da cor é para que seja possível criar categorias em que o usuário possa, visivelmente, classificar os projetos. Como exemplo, um conjunto de projetos destinados a faculdade, com finalidades diferentes. Também é possível arquivar um projeto, para mantê-lo no sistema, sem a necessidade de exclui-lo.
As tarefas têm uma estrutura maior, seu principal atributo note(nota) tem tamanho indefinido, tipicamente um VARCHAR. Ele armazena o conteúdo codificado em markdown da anotação, podendo conter links, tabelas e afins. A tarefa também contém os atributos de data de criação, conclusão e o prazo para conclusão, sendo assim é possível adicionar um timer para realização da tarefa. Outro atributo que vale a pena mencionar é a prioridade, assim é possível adicionar mais uma propriedade para seleção e especificar com maior precisão as notificações a fim de diferenciá-las.
O fundamento do lembrete é permitir enviar de forma síncrona ou assíncrona notificações para o usuário, seja através de alertas no navegador ou e-mails. Sua estrutura particularmente simples, contém a data e hora para disparo e seu conteúdo de forma textual, até 256 caracteres.
Dicionário de dados centraliza informações sobre o conjunto de dados (dataset) sob análise. Seu propósito é melhorar a comunicação entre todos os envolvidos no projeto, além de ser um repositório (documento) que descreve de forma estruturada, o significado, origem, relacionamento e uso dos dados.
Atributo | Chave | Tipo de dado | Tamanho | Descrição |
---|---|---|---|---|
id | PK | NUMERIC | 4 | Identificador incremental de usuário. |
name | NN | VARCHAR[100] | 100 | Nome real do usuário. |
username | NN | VARCHAR[16] | 16 | Nome para exibição do usuário. |
avatarUrl | NN | VARCHAR[256] | 256 | Url do avatar do usuário. |
birthday | NN | DATE | 3 | Data formato (XX/XX/XXXX). |
NN | VARCHAR[256] | 256 | Email formato local-part@domain - - RFC 5322. | |
score | NN | NUMERIC | 4 | Score para gamificação das tarefas. |
Atributo | Chave | Tipo de dado | Tamanho | Descrição |
---|---|---|---|---|
id | PK | NUMERIC | 4 | Identificador incremental de projeto. |
name | NN | VARCHAR[100] | 100 | Nome do projeto. |
description | NN | VARCHAR[280] | 280 | Descrição do projeto. |
createDate | NN | DATE | 3 | Data formato (XX/XX/XXXX). |
completeDate | NN | DATE | 3 | Data formato (XX/XX/XXXX). |
hasArchived | NN | BOOLEAN | 1 | Identificador de status de projeto. |
color | NN | VARCHAR[6] | 4 | Código Hexadecimal da cor do projeto (RRGGBB). |
user_id | FK | NUMERIC | 4 | Chave para um usuário. |
Atributo | Chave | Tipo de dado | Tamanho | Descrição |
---|---|---|---|---|
id | PK | NUMERIC | 4 | Identificador incremental de tarefa. |
name | NN | VARCHAR[50] | 50 | Nome do projeto. |
fixed | NN | BOOLEAN | 1 | Identificador de fixação do projeto. |
note | NN | VARCHAR[] | Undefined | Nota da tarefa em markdown, com número ilimitado de caracteres. |
priority | NN | NUMERIC | 4 | Prioridade da tarefa. |
createDate | NN | DATETIME | 8 | Data e hora formato (YYYY-MM-DD HH:MM:SS.ffffff). |
completeDate | NN | DATETIME | 8 | Data e hora formato (YYYY-MM-DD HH:MM:SS.ffffff). |
timer | NN | DATETIME | 8 | Prazo para conclusão da tarefa. Formato (YYYY-MM-DD HH:MM:SS.ffffff). |
subTask | FK | NUMERIC | 4 | Chave para uma tarefa. (Não obrigatório) |
task_project | FK | NUMERIC | 4 | Chave para um projeto. |
Atributo | Chave | Tipo de dado | Tamanho | Descrição |
---|---|---|---|---|
id | PK | NUMERIC | 4 | Identificador incremental de Lembrete. |
datetime | NN | DATETIME | 8 | Prazo para disparar Lembrete. Formato (YYYY-MM-DD HH:MM:SS.ffffff). |
title | NN | VARCHAR[32] | 32 | Título do Lembrete. |
content | NN | VARCHAR[256] | 256 | Conteúdo do Lembrete. |
notify_task | FK | NUMERIC | 4 | Chave para uma tarefa. |