Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Add analytics page showing productivity trends 📊

Aperta Adatta ai principianti
#627 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
85/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript, react
Ambito
frontend

Direzione di ricerca

Inizia dalla nuova pagina in client/src/pages/Analytics.jsx e leggi i componenti esistenti relativi a task e board per verificare come useBoard espone i task e i relativi campi data. Poi esamina App.jsx per individuare le convenzioni delle route e aggiungi la route protetta /analytics richiesta. Il lavoro è completato quando la pagina mostra il conteggio settimanale dei task completati e la route viene renderizzata per un utente autenticato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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!! 🔥

Lingua principale
JavaScript
Stelle
39
Fork
105
Merge medio
1g 13h
PR unite (30g)
41

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di anoopcodehack/DevBoard

Tutte le issue di anoopcodehack/DevBoard

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.