Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Add analytics page showing productivity trends 📊

Aberta Para iniciantes
#627 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 2 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
85/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
javascript, react
Domínio
frontend

Direção de pesquisa

Comece pela nova página em client/src/pages/Analytics.jsx e leia os componentes existentes de tarefas e quadros para confirmar como useBoard expõe as tarefas e seus campos de data. Em seguida, inspecione App.jsx para verificar as convenções de rotas e adicione a rota protegida /analytics solicitada. O trabalho estará concluído quando a página mostrar a contagem semanal de tarefas concluídas e a rota for renderizada para um usuário autenticado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement good first issue

Add analytics page showing productivity trends 📊

File: client/src/pages/Analytics.jsx (new file)

No way to see productivity over time 💀
How many tasks done per week? fr!!

Fix: create Analytics.jsx page:
const Analytics = () => {
const { tasks } = useBoard()

// group tasks completed by week:
const weeklyData = tasks
.filter(t => t.status === 'done')
.reduce((acc, task) => {
const week = new Date(task.updatedAt)
week.setDate(week.getDate() - week.getDay())
const key = week.toLocaleDateString()
acc[key] = (acc[key] || 0) + 1
return acc
}, {})

// avg completion time per priority:
const avgTime = ['high','medium','low'].map(p => ({
priority: p,
avg: tasks
.filter(t => t.priority === p
&& t.status === 'done')
.reduce((acc, t) => acc +
(new Date(t.updatedAt) - new Date(t.createdAt))
, 0) /
tasks.filter(t => t.priority === p
&& t.status === 'done').length
}))

return (



📊 Analytics


{/* render charts using CSS bars */}
{Object.entries(weeklyData).map(([week, count]) => (


{week}

<div className="h-4 bg-purple-500/30 rounded"
style={{ width: ${count * 20}px }}
/>

{count} tasks


))}

)
}

Add route in App.jsx:
<Route path="/analytics"
element={} />

~40 lines! No backend needed 🎯
No chart library needed — pure CSS bars!! 🔥

Linguagem predominante
JavaScript
Estrelas
39
Forks
105
Merge médio
1d 13h
PRs com merge (30d)
41

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de anoopcodehack/DevBoard

Todas as issues de anoopcodehack/DevBoard

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.