thesis: expand the insights chapter with more code insight (wink wink)
Parents:
b8a4c921 file(s) changed
- monografia/chapters/development.tex +60 -5
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
▸ 147 unchanged lines
153 153
o \textit{background job} que recalculará o nível de energia daquele
154 154
período (os últimos sete dias), apresentado na figura \ref{fig:screenshot-consulta-registros}.
155 155
156 156
\section{Indicadores}
157 157
158 -
Nessa tela é apresentado os indicadores construídos a partir dos
159 -
registros de humor, sono, gatilho. Além disso, embora em estado experimental,
160 -
também é apresentado um ``resumo semanal'' que condensa o mais central
161 -
de todos os indicadores, apresentando o nível de humor, média de sono
162 -
total do período.
158 +
Nessa tela é apresentado um conjunto de indicadores construídos a partir
159 +
dos registros de humor, sono e gatilho do usuário. Diferente das demais
160 +
telas do aplicativo, que operam sobre dados em tempo real, os indicadores
161 +
são artefatos pré-computados: um \textit{worker} assíncrono (BullMQ)
162 +
percorre semanalmente todos os usuários ativos e enfileira, para cada
163 +
um, um conjunto de \textit{jobs} — um por tipo de indicador — que
164 +
processam a janela dos últimos sete dias e persistem o resultado em uma
165 +
tabela dedicada. O aplicativo móvel apenas consulta esse resultado já
166 +
calculado, o que evita repetir cálculos custosos a cada abertura da tela
167 +
e desacopla a lógica analítica do restante da API.
163 168
164 169
\begin{figure}[H]
165 170
\centering
166 171
\caption{Tela de indicadores}
167 172
\label{fig:screenshot-insights}
168 173
\includegraphics[width=0.70\textwidth,height=0.60\textheight,keepaspectratio]{screenshot-insights.jpeg}
169 174
\source{O autor, 2026}
170 175
\end{figure}
176 +
177 +
% TODO: referenciar EMA / momentary assessment como justificativa da janela de 7 dias
178 +
179 +
São três os indicadores semanais exibidos: tendência de humor, correlação
180 +
entre sono e energia, e padrão de gatilhos.
181 +
182 +
\begin{itemize}
183 +
\item \textbf{Tendência de humor}: compara a média de humor da
184 +
primeira metade da semana com a da segunda metade, expressando a
185 +
diferença como uma variação percentual. O resultado é classificado
186 +
como melhora, piora ou estabilidade a partir de uma margem de $\pm10\%$.
187 +
188 +
\item \textbf{Correlação entre sono e energia}: relaciona a duração
189 +
do sono de uma noite com o nível de energia relatado na manhã
190 +
seguinte, através do coeficiente de correlação de Pearson. Exige um
191 +
mínimo de observações pareadas para ser calculado — caso contrário,
192 +
o indicador simplesmente não é exibido.
193 +
194 +
\item \textbf{Padrão de gatilhos}: identifica a categoria de gatilho
195 +
mais frequente na semana e expressa sua predominância como percentual
196 +
do total de registros.
197 +
\end{itemize}
198 +
199 +
É intencional, na figura \ref{fig:screenshot-insights}, que o bloco de
200 +
``Energia'' apareça vazio: o cálculo da correlação depende da existência
201 +
simultânea de registros de sono \emph{e} de humor em quantidade mínima,
202 +
e no período retratado o usuário ainda não havia acumulado dados
203 +
suficientes de ambos os tipos. Optou-se por não exibir uma correlação
204 +
calculada com poucos pontos, preferindo comunicar a ausência de dado a
205 +
apresentar um número pouco confiável.
206 +
207 +
O bloco maior no topo da tela, o ``Resumo Semanal'', condensa os
208 +
indicadores mais centrais — média de sono do período e um rótulo de
209 +
humor (``Estável'', no exemplo). Esse rótulo, no entanto, é o elemento
210 +
mais delicado de toda a funcionalidade. Embora exista uma fórmula capaz
211 +
de produzir uma classificação de estabilidade a partir da variância dos
212 +
registros de humor, atribuir esse tipo de afirmação a um usuário —
213 +
especialmente em um aplicativo que é utilizado por pessoas com
214 +
Transtorno Afetivo Bipolar, para quem uma leitura equivocada de
215 +
``estabilidade'' pode mascarar justamente o início de um episódio —
216 +
exige um embasamento mais cuidadoso do que uma regra estatística
217 +
simples. Por esse motivo, o rótulo apresentado nesta versão do
218 +
aplicativo é estático (não deriva de fato do cálculo de estabilidade) e
219 +
a funcionalidade pode ser inteiramente desabilitada pelo usuário nas
220 +
configurações. A decisão de manter ou não uma afirmação automatizada
221 +
desse tipo, e sob quais critérios, permanece um ponto em aberto que
222 +
mereceria revisão de literatura específica antes de ser tratado como
223 +
funcionalidade definitiva.
224 +
225 +
% TODO: literatura sobre riscos de auto-monitoramento automatizado de humor / mood-tracking apps e TAB
171 226
172 227
\section{Histórico}
173 228
174 229
Nessa tela é apresentado o histórico de registros de humor, sono, gatilho,
175 230
e ações de cuidado. Como os dados são diferentes, é consultado os
▸ 44 unchanged lines
220 275
221 276
Vale notar também que o badge é similar ao \textit{badge} que aparece na
222 277
tela de consulta de registros, apresentado na figura \ref{fig:screenshot-consulta-registros}.
223 278
224 279
\FloatBarrier