Add analytics page showing productivity trends 📊
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 85/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, react
- Área
- frontend
Línea de trabajo
Empieza por la nueva página en client/src/pages/Analytics.jsx y lee los componentes existentes de tareas y tableros para confirmar cómo useBoard expone las tareas y sus campos de fecha. Después, revisa App.jsx para conocer las convenciones de rutas y añade la ruta protegida /analytics solicitada. El trabajo estará terminado cuando la página muestre el recuento semanal de tareas completadas y la ruta se renderice para un usuario autenticado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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!! 🔥
- Lenguaje dominante
- JavaScript
- Estrellas
- 39
- Forks
- 105
- Merge medio
- 1 d 11 h
- PR fusionados (30 d)
- 47
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de anoopcodehack/DevBoard
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
anoopcodehack/DevBoard#648 ·
Los mantenedores suelen responder en 2 días
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
anoopcodehack/DevBoard#647 ·
Los mantenedores suelen responder en 2 días
-
Show "No snippets yet" empty state in task modal 💻Posiblemente ocupada @tu-lasizzzz la tomó hace 2 días. Abiertogood first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 96/100
anoopcodehack/DevBoard#639 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 96/100
anoopcodehack/DevBoard#637 ·
Los mantenedores suelen responder en 2 días
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
anoopcodehack/DevBoard#630 ·
Los mantenedores suelen responder en 2 días
Todos los issues de anoopcodehack/DevBoard
Issues similares
-
bug needs triage P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
pbakaus/impeccable#1143 ·
Los mantenedores suelen responder en 1 día
-
status: waiting for maintainer
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
mui/material-ui#49547 ·
Los mantenedores suelen responder en 1 día
-
next() is called twice when the request closes after busboy fails to startPosiblemente ocupada @NgoQuocViet2001 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
[2.x] extension-manager: translation keys that changed meaning keep their old namesPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertotype/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día