Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Add analytics page showing productivity trends 📊

Open Beginner friendly
#627 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
85/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
javascript, react
Domain
frontend

Research direction

Start with the new page at client/src/pages/Analytics.jsx and read the existing task and board components to confirm how useBoard exposes tasks and their date fields. Then inspect App.jsx for route conventions and add the requested protected /analytics route. Done when the page shows weekly completed-task counts and the route renders for an authenticated user.

Written by the indexing model from the issue text.

Description

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

Dominant language
JavaScript
Stars
39
Forks
105
Avg merge
1d 13h
Merged PRs (30d)
41

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from anoopcodehack/DevBoard

All issues in anoopcodehack/DevBoard

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.