thesis: add section on daily jobs, reword a couple of weird phrases
Parents:
4ad26321 file(s) changed
- monografia/chapters/development.tex +40 -32
monografia/chapters/development.tex
1 1
\chapter{Desenvolvimento}
2 2
3 3
Este capítulo detalha o funcionamento de algumas funcionalidades
4 4
desenvolvidas durante o projeto. Apenas algumas funcionalidades mais
5 5
chaves são abordadas neste capítulo, como o registro de humor, vinculo
▸ 74 unchanged lines
80 80
81 81
\section{Criação de Registros de Humor}
82 82
83 83
Nesta seção, o usuário pode criar novos registros de humor, escolhendo
84 84
entre uma lista de opções pré-definidas. O humor selecionado na tela
85 -
anterior é mostrado aqui, e o usuário é convidado a julgar como ele se
86 -
sente referente a uma escala de 1 a 10, sobre os níveis de energia,
85 +
anterior é mostrado aqui, e o usuário é convidado a julgar, em uma
86 +
escala de 1 a 10, como se sente em relação aos níveis de energia,
87 87
estresse e ansiedade, respectivamente.
88 88
89 89
\begin{figure}[H]
90 90
\centering
91 91
\caption{Criação de Registros de Humor}
92 92
\label{fig:screenshot-consulta-humor}
93 93
\includegraphics[width=0.70\textwidth,height=0.60\textheight,keepaspectratio]{screenshot-create-mood.jpeg}
94 94
\source{O autor, 2026}
95 95
\end{figure}
96 96
97 -
Naturalmente, é uma questão dificil de responder, porém é importante
98 -
que seja um momento reflexivo e tampouco, como descreve o aplicativo,
99 -
não necessariamente sendo preciso.
97 +
Naturalmente, é uma questão difícil de responder — e, como o próprio
98 +
aplicativo procura deixar claro, é importante que seja um momento
99 +
reflexivo, não necessariamente preciso.
100 100
101 101
O usuário pode adicionar uma anotação sobre aquele registro em
102 -
específico, que igualmente é um padrão que se repete/apresenta durante
103 -
outras telas.
102 +
específico, padrão que se repete em outras telas do aplicativo.
104 103
105 -
Por fim, o usuário pode escolher "o que compõe aquele registro", que
106 -
ou seja, escolher emoções e estados/sentimentos que ele sente naquele
107 -
momento. Aqui uma listagem mista desses elementos é apresentado, e que
108 -
cujo ele pode selecionar os que mais se aplica a ele, e julgar um nível
109 -
de intensidade para cada um. Aqui a escala é menor e mais fácil, visando
110 -
facilitar a escolha e julgamento do usuário, entre ``Leve'', ``Moderado'',
111 -
e ``Intenso'', conforme a figura \ref{fig:screenshot-add-components}.
104 +
Por fim, o usuário pode escolher o que compõe aquele registro, ou
105 +
seja, selecionar emoções e estados/sentimentos que sente naquele
106 +
momento. É apresentada uma listagem mista desses elementos, na qual o
107 +
usuário seleciona os que mais se aplicam a ele e atribui um nível de
108 +
intensidade para cada um. Aqui a escala é menor e mais simples, visando
109 +
facilitar a escolha e o julgamento do usuário, entre ``Leve'',
110 +
``Moderado'' e ``Intenso'', conforme a figura
111 +
\ref{fig:screenshot-add-components}.
112 112
113 113
\begin{figure}[H]
114 114
\centering
115 115
\caption{Adicionando sentimentos/emoções}
116 116
\label{fig:screenshot-add-components}
117 117
\includegraphics[width=0.70\textwidth,height=0.60\textheight,keepaspectratio]{screenshot-add-components.jpeg}
118 118
\source{O autor, 2026}
119 119
\end{figure}
120 120
121 -
Ao concluir esse processo, e salvar, é apresentado para o usuário
122 -
uma tela de confirmação, onde ele pode opcionalmente vincular
123 -
esse registro a um gatilho em específico, que pode ter ocorrido
124 -
antes de ele salvar o registro, ou opcionalmente, criar um novo
125 -
gatilho. Aqui o projeto novamente, se ancora no EMA, recheando o registro
126 -
de humor com mais contexto sobre o que aconteceu.
121 +
Ao concluir esse processo e salvar, é apresentada ao usuário uma tela
122 +
de confirmação, na qual ele pode, opcionalmente, vincular o registro a
123 +
um gatilho específico — que pode ter ocorrido antes de ele salvar o
124 +
registro — ou criar um novo gatilho. O projeto novamente se ancora no
125 +
EMA, enriquecendo o registro de humor com mais contexto sobre o que
126 +
aconteceu.
127 127
128 128
\begin{figure}[H]
129 129
\centering
130 130
\caption{Vinculando um humor com um gatilho}
131 131
\label{fig:screenshot-link-mood-trigger}
132 132
\includegraphics[width=0.70\textwidth,height=0.60\textheight,keepaspectratio]{screenshot-link-mood-with-trigger.jpeg}
133 133
\source{O autor, 2026}
134 134
\end{figure}
135 135
136 -
Posteriormente, o usuário pode delimitar o impacto que aquele gatilho
137 -
pode ter exercído naquele registro de humor em especial. Aqui, é,
138 -
novamente o processo de chute de impacto, nada com muita precisão.
136 +
Em seguida, o usuário pode indicar o impacto que aquele gatilho
137 +
exerceu sobre o registro de humor em questão. Novamente, trata-se de
138 +
uma estimativa subjetiva, sem pretensão de precisão.
139 139
140 140
\begin{figure}[H]
141 141
\centering
142 142
\caption{Avaliando o impacto de um gatilho no humor}
143 143
\label{fig:screenshot-assess-trigger-mood-impact}
144 144
\includegraphics[width=0.70\textwidth,height=0.60\textheight,keepaspectratio]{screenshot-link-mood-assess-impact.jpeg}
145 145
\source{O autor, 2026}
146 146
\end{figure}
147 147
148 -
Por fim, vale mencionar que após esse processo, internamente, é enfileirado
149 -
um \textit{background job} que processa alguns indicadores: recalcular
150 -
o nível de energia daquele dia, apresentado na figura \ref{fig:screenshot-consulta-registros},
151 -
recalcular o indicador de correlação entre humor e energia, e agendar
152 -
o \textit{background job} que recalculará o nível de energia daquele
153 -
período (os últimos sete dias), apresentado na figura \ref{fig:screenshot-consulta-registros}.
148 +
Por fim, vale mencionar que, após esse processo, é enfileirado
149 +
internamente um \textit{background job} que recalcula, sob demanda, o
150 +
indicador de energia daquele dia, apresentado na figura
151 +
\ref{fig:screenshot-consulta-registros}. Diferentemente deste, os
152 +
indicadores semanais — como a correlação entre sono e energia,
153 +
descrita na seção \ref{sec:insights} — não são recalculados a cada
154 +
registro individual, sendo processados apenas pelo job semanal
155 +
agendado (seção \ref{sec:insights}).
154 156
155 -
\section{Indicadores}
157 +
\section{Indicadores}\label{sec:insights}
156 158
157 159
Nessa tela é apresentado um conjunto de indicadores construídos a partir
158 160
dos registros de humor, sono e gatilho do usuário. Diferente das demais
159 161
telas do aplicativo, que operam sobre dados em tempo real, os indicadores
160 -
são artefatos pré-computados: um \textit{worker} assíncrono (BullMQ)
162 +
são artefatos pré-computados: um \textit{worker} assíncrono (\textit{BullMQ})
161 163
percorre semanalmente todos os usuários ativos e enfileira, para cada
162 164
um, um conjunto de \textit{jobs} — um por tipo de indicador — que
163 165
processam a janela dos últimos sete dias e persistem o resultado em uma
164 -
tabela dedicada. O aplicativo móvel apenas consulta esse resultado já
166 +
tabela dedicada. Vale notar que nem todos os indicadores seguem esse
167 +
fluxo agendado: os indicadores diários (energia e sono) são recalculados
168 +
sob demanda, no momento em que o usuário registra um novo humor ou
169 +
sessão de sono, enquanto os indicadores semanais dependem
170 +
exclusivamente do \textit{job} de \textit{fan-out} de segunda-feira.
171 +
172 +
O aplicativo móvel apenas consulta esse resultado já
165 173
calculado, o que evita repetir cálculos custosos a cada abertura da tela
166 174
e desacopla a lógica analítica do restante da API.
167 175
168 176
\begin{figure}[H]
169 177
\centering
▸ 113 unchanged lines
283 291
registro de humor, destaca a dimensão mais relevante daquele registro
284 292
(como ``Ansiedade alta'' na figura \ref{fig:screenshot-history}); para um
285 293
gatilho, indica sua categoria, e assim por diante.
286 294
287 295
\FloatBarrier