Page MenuHomePhabricator

Programs & Events Dashboard – System-Wide Metrics & Data Downloads - Sunkireddy Barath
Closed, DeclinedPublic

Description

Profile Information

Name: Sunkireddy Barath
IRC nickname on libera.chat IRC: Barath
Web Profile: https://github.com/sunkireddy-Barath
Resume (optional): https://drive.google.com/file/d/1nWIyz9dpVMj9rbj2zWlTw0OE13JzsBZV/view?usp=drive_link
Location (country or state): India
Typical working hours : 8:00 AM – 5:00 PM IST (UTC+5:30, Asia/Kolkata), flexible across all the days

Synopsis

  • Programs & Events Dashboard (outreachdashboard.wmflabs.org) is a Ruby on Rails + React application maintained by the Wikimedia Foundation that tracks thousands of Wikipedia editing programs across 100+ language Wikis. WMF staff currently have no automated way to access system-wide program data — every report requires a developer to manually write a SQL query and export a file. This project builds the automated solution: a secured staff data export endpoint (POST /staff/export) using Sidekiq background jobs so WMF staff can download filtered CSV data independently, and an overhauled system-wide metrics page (GET /staff/metrics) showing programs broken down by type, wiki language, region, and time, with month-over-month trends. All new code will be fully covered by RSpec and Jest tests.
  • Possible Mentor(s) : Ragesoss, Abishekdascs
  • Have you contacted your mentors already: Not yet formally, but I have merged PRs reviewed by the maintainers (PR #6705 and PR #6752 are merged into the main codebase) and we are discussing about the contributing to the project of WikiEdu Dashbaord in PR discussion

Deliverables

Week 1–2 — Community Bonding (~25 hrs)
Deep study of CoursesController, CampaignsController, existing Sidekiq jobs, and the DB schema. Finalise API contract, CSV field list, and metrics spec with Ragesoss before any coding begins.

Week 3 — Design (~30 hrs)
API endpoint design, DB migration plan for wmf_staff column, MetricsService data model, React UI wireframes, CSV field data dictionary — all shared with mentor for sign-off.

Week 4–5 — Auth and Controller (~55 hrs)
DB migration for wmf_staff role, StaffDataController with metrics and export actions, routes under staff namespace, before_action authentication, rate limiting (max 5 exports/hour), RSpec controller request specs.

Week 6–7 — Export Job and CSV (~55 hrs)
StaffDataExportJob in Sidekiq with find_each batching, streaming CSV generation, ActionMailer download link email, job status tracking, RSpec job specs using Sidekiq inline mode.

Week 8–9 — Metrics Overhaul / Mid-term (~55 hrs)
MetricsService with all 6 metrics (programs by type, by wiki language, monthly active editors, new programs per month, geographic spread, editor retention rate), aggregate SQL with GROUP BY, 1-hour Rails.cache per filter key, RSpec service unit tests. Mid-term: working /staff/metrics endpoint, fully authenticated and tested.

Week 10–11 — React Frontend (~55 hrs)
Staff dashboard at /staff/dashboard — FilterPanel (date range, wiki language, program type), MetricsCards, ChartsSection (bar + line charts), ExportPanel with job status polling, all i18n strings in en.yml, Jest component tests.

Week 12 — Full Testing (~25 hrs)
Complete RSpec suite for all Ruby components, Jest tests for all React components, end-to-end integration test for the full export flow using Sidekiq inline mode. CI must pass green.

Week 13 — Documentation (~25 hrs)
API documentation (endpoint params, response format, auth requirements), inline code comments, README update, CSV field data dictionary for WMF staff.

Week 14 — Buffer and Final Polish (~25 hrs)
Incorporate mentor feedback, fix edge cases found in review, performance profile on realistic data volume, final PR cleanup and submission.

Mid-term Deliverables (end of Week 9):

  • wmf_staff role migration complete
  • StaffDataController with /staff/metrics and /staff/export merged
  • StaffDataExportJob implemented and tested
  • /staff/metrics endpoint live and returning cached JSON for all 6 metrics

Final Deliverables (end of Week 14):

  • Full /staff/dashboard React page live with filter panel, charts, and export
  • WMF staff can log in, view metrics, apply filters, and trigger async CSV export
  • All code covered by RSpec and Jest tests
  • API documentation complete, all PRs merged or submitted

Participation

I will communicate progress via weekly updates posted to the Phabricator task and direct messages to my mentor. I will open draft PRs early in each phase so mentors can review incrementally rather than receiving a large PR at the end of a phase. All source code will be published in the main WikiEduDashboard repository: https://github.com/WikiEducationFoundation/WikiEduDashboard via pull requests following the project's existing contribution workflow. I will also maintain a GSoC planning repository at https://github.com/sunkireddy-Barath/Programs-Events-Dashboard-System-Wide-Metrics-Data-Downloads for proposal documentation and prototype work. If I encounter a blocker, I will post to the task within 24 hours rather than waiting for the next weekly update.

About Me

  • Education: B.E. Computer Science & Engineering, Chennai Institute of Technology, 2nd Year (Batch 2024–2028)
  • How I heard about this program: Through the Wikimedia Foundation's GSoC project listing on the Google Summer of Code website, and via the WikiEduDashboard Phabricator tasks (specifically T415608).
  • Other time commitments: None during the GSoC program period. I have 25 hours per week fully available with no exams, jobs, or planned vacations. A buffer weeks is built into the timeline to absorb any unexpected personal schedule conflicts.
  • Outreachy: I am only applying to GSoC 2026 with the Wikimedia Foundation for this project.
  • What this project means to me: The problem in this project has a named beneficiary — FRomeo_WMF — and a concrete impact: WMF staff currently wait days for data that should take minutes to access. Building a system that eliminates that bottleneck and makes programmatic impact data visible across 100+ language Wikis is the kind of work I find genuinely meaningful. Beyond the outcome, this project gives me the opportunity to go deep in a production Ruby on Rails and React codebase and build something that the Wikimedia community will continue to use after GSoC ends.

Past Experience

Wikimedia contributions during the application phase:

Other relevant projects:

  • FHIR Resource Tabular Viewer PR #46 (Under Review): Introduced a unified npm run dev command using concurrently to launch React frontend and FastAPI backend in parallel, with README updates. https://github.com/chicagopcdc/FHIR_resource_tabular_viewer/pull/46 - Gained experience navigating an unfamiliar multi-service codebase quickly and improving the contributor onboarding workflow.

Open source contributions:

Any Other Info

GSoC 2026 Proposal Repository (planning docs, architecture, README):
https://github.com/sunkireddy-Barath/Programs-Events-Dashboard-System-Wide-Metrics-Data-Downloads

Staff Dashboard Demo Prototype (frontend sample with mock data — built to demonstrate the proposed UI):
https://github.com/sunkireddy-Barath/Programs-Events-Dashboard-System-Wide-Metrics-Data-Downloads/tree/main

Demo Project Video:
https://drive.google.com/file/d/1maU9bFj4k_XEAxe6A1aNkFSvkPRfL7iq/view?usp=drive_link

Note: The demo prototype is a frontend-only sample I built with mock data to demonstrate what the final /staff/dashboard page will look like — including the FilterPanel, 6 MetricsCards, 3 charts (programs by type, monthly active editors, programs by wiki language), and the ExportPanel with job status polling. It is not connected to any real database. The actual implementation during GSoC will fetch real data from the WikiEduDashboard database via the GET /staff/metrics and POST /staff/export endpoints I will build.

Tech stack used in the prototype: React with functional components and hooks, Recharts for bar and line charts, fetch() with CSRF token for API calls, plain CSS matching the WikiEduDashboard blue (#1a56a0) color scheme - no external UI libraries.

Phabricator task reference: T415608

Event Timeline

SunkireddyBarath renamed this task from Programs & Events Dashboard – System-Wide Metrics & Data Downloads to Programs & Events Dashboard – System-Wide Metrics & Data Downloads - Sunkireddy Barath.Wed, Apr 8, 2:14 PM

Hi @Ragesoss & @Abishekdascs,

I would be glad if you could review my proposal and share any feedback or suggestions for improvement at your convenience.

Thank you.

LGoto subscribed.

Unfortunately the deadline for GSoC 2026 applications was March 31. Applications submitted after this date cannot be accepted.