Page MenuHomePhabricator

GSoC 2026: CampWiz NxT Redesign
Open, Needs TriagePublic

Description

Campwiz_Logo.svg.png (1ร—1 px, 54 KB)

Project title: CampWiz NxT Redesign

Brief summary:

CampWiz NXT is a comprehensive tool designed to facilitate the evaluation of media files such as images, audios, and videos uploaded to Wikimedia Commons during Wiki Loves contests. CampWiz NXT streamlines the jury process by offering a structured and efficient platform for media assessment.

In the past, when it was developed, we took dual server approach with nextjs as frontend server and golang as backend server. But, now we need to migrate our frontend from nextjs to pure react with minimal functionality change.

Expected outcomes:

The main aim of this project is to enhance the overall visual and usability experience for jurors and organisers, enabling a more focused, efficient, and impactful jury workflow. The redesigned CampWiz NXT interface will prioritize clarity and minimalism, reducing cognitive load by limiting unnecessary actions and ensuring jurors can concentrate on reviewing submissions and relevant details.

CampWiz NXT aims to streamline the jury process through a thoughtfully designed UI with minimal, purpose-driven interactions, allowing jurors to make informed decisions with ease. From a technical perspective, the frontend will be developed as a static build that can be served over standard HTTP, eliminating the need for a dedicated Node.js server and simplifying deployment and maintenance.

Skills required/preferred:

  • Proficiency in React for building modular, maintainable user interfaces
  • Experience with Next.js for modern frontend development and static site generation
  • Familiarity with the Material UI component library for implementing accessible, consistent, and responsive designs

Possible mentors:

Expected size of the project: around 90

Rating: medium

Microtasks: T415408: CampWiz Nxt Redesign: Root Path

Any other additional information for contributors: Gitlab Repository , Commons Tool Documentation

NEW QUESTIONS
Why are you proposing this project?

What would change?
This project will redesign CampWiz NXT to simplify its architecture, reduce technical complexity, and replace fragile server-side dependencies with a more stable, static frontend approach. The user interface will be modernized to improve clarity, usability, and performance, while the underlying structure will become easier to maintain, deploy, and secure.

Why does it matter?
The current complexity of the tool and recurring vulnerabilities in React server components create long-term sustainability and security risks. These issues affect reliability, developer productivity, and user trust. A redesign will improve system stability, reduce maintenance overhead, and ensure the tool remains viable for future Wikimedia competitions.

Who does it help?
Although originally built for Wiki Loves Folklore, the redesigned CampWiz NXT will serve a broader audience including jurors, organisers, and technical contributors across Wikimedia Commons. It will provide a reusable, secure, and scalable jury platform that can support any photography competition within the Wikimedia ecosystem

What is the expected impact?

  • CampWiz NXT will be converted into a statically built frontend that can be served over standard HTTP without requiring a dedicated application server.
  • This change reduces deployment complexity and minimizes security risks associated with server-side components.
  • Jurors and organisers will benefit from a simpler, more reliable interface focused on the jury workflow.
  • Project progress and impact will be measurable through the number of interfaces and components successfully redesigned and migrated.

What would be the frequency of updates?

Since the tool is a live tool, we have a policy of weekly updates, but in development pipeline, we might update it earlier if no disruption is expected.

Is the project currently running? Yes, it is.

Recommendation

We strongly encourage mentors to request additional specific details to help weed out AI-generated applications from potential contributors. Consider adding pre-reqs and ensure that you communicate directly with contributors before making your selection.

IMPORTANT: GSoC / Outreachy candidates are required to complete micro-tasks during the application period to prove their ability to work on a three month long project

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

@Nokib_Sarkar @Tiven2240 PR #17 ready for review ๐Ÿ™

All Sentry checks passing. This PR includes:

  • 4 utility hooks (usePermission, useMediaQuery, useOnClickOutside, useWindowSize)
  • Senior-level upgrade of all hooks + api layer
  • 8 Sentry bugs fixed across the PR

https://github.com/Open-Knowledge-Impact-Foundation/campwiz-nxt-frontend2/pull/17

@Nokib_Sarkar @Tiven2240 PR ready for review ๐Ÿ™

Migration of CampaignEditForm to src/pages/campaign/ CampaignEdit.tsx
All Sentry checks passing.

https://github.com/Open-Knowledge-Impact-Foundation/campwiz-nxt-frontend2/pull/23

"Hi @Nokib_Sarkar and @Tiven2240, I am finalizing my Next.js to pure React migration strategy before the contribution period officially opens tomorrow.

Quick architectural question: As I map out the client-side data fetching for components like PublicRunningCampaigns, are there any specific CORS configurations on the Go backend I need to account for when moving to a Vite environment?

@Spandan1104 (Spandan Mishra)
@Abhimarkzz
@Osuji_pius (Pius)
@Only-Vikas (Vikas K)
@Codeurluce
@Remy_Christophe
@Udaydongre1 (Uday)
@Divya.code (Divya)
@KhushbuWagh
@Ayaan-mi (ayaan mirza)
@Henryl746 (Henry Lee)
@GuptaShubham-11 (Shubham)
@JiyaGupta.dev
@Adityash2906 (Aditya Sharma)
@Mostafa_khaled100 (Mostafa Khaled)
@Dipanshu1223
@Cynthiaemerenini (Whisper)
@nexpectArpit (Arpit Tripathi)
@Mhmohona (Mahfuza)
@Agamyasamuel (Agamya Samuel)
@Okerekechinweotito (Okereke)
@Hridyesh_Gupta (Hg)
@Sanjaydevs
@LGoto (Lani Goto (WMF))
@Aklapper (Andre Klapper (WMF))
@Tiven2240 (Tiven Gonsalves)
@Nokib_Sarkar (Nazmul Haque Nokib )

Actually, we are getting a lot of pull requests from a lot of candidates, so we are not accepting/commenting on any pull request now. Most of them are AI generated pull requests which might not as constructive as a human. As a result, we decided to interview the candidates to ensure proper qualifications and skills. Please send an email to support+gsoc26@wikilovesfolklore.org. please include whether you are a Wikimedian, first time GSoC contributor, full time professional and share your outlook toward Open Source contribution besides your other relavant contributions. We might give you slots for interview if your email gives us enough merit. Remember to include [GSoC 2026] in your subject line.

Hi @Nokib_Sarkar and @Tiven2240!

Now that the contribution period has officially opened, I am excited to share my progress on the CampWiz NxT Redesign. I have analyzed the current Next.js architecture and successfully built a working Proof of Concept migrating the core homepage components (Header, HeroBanner, CampaignChips, Footer) to a pure React + Vite environment using react-router-dom.

PoC Source Code: https://github.com/only-vikas/campwiz-react-poc

Live Demo: https://campwiz-react-poc.vercel.app/

(Note on the demo: The "Public Running Campaigns" shows an expected fetch error, verifying the SWR client-side fetch is correctly attempting to ping localhost:8080 but being blocked by CORS on the Vite port).

Hi I'm Alaa. I'm interested in contributing to CampWiz NxT for GSoC 2026.
I have experience with React and frontend development, and I'm excited about this project specifically because the migration from Next.js to pure React is a meaningful architectural improvement that will make the tool easier for the Wikimedia community to maintain long-term.
I would love to start with some beginner-friendly tasks or microtasks to get familiar with the codebase and contribution workflow. Could you guide me toward a good first issue to work on?
Thank you @Nokib_Sarkar @Tiven2240

Hello, Iโ€™m interested in working on the CampWiz NxT Redesign project for GSoC 2026.

Iโ€™m a React developer with experience building modular and scalable user interfaces. I have worked with JavaScript extensively and have also used Material UI in previous projects. Iโ€™m comfortable working with component-based architecture and focusing on clean, maintainable code.

Iโ€™ve started reviewing the project requirements and will begin working on the microtask (T415408) to better understand the current structure and workflow.

Iโ€™m particularly interested in contributing to improving the UI/UX for jurors by making the interface more intuitive and efficient.

Looking forward to your guidance and feedback as I begin contributing.

Thank you! @Nokib_Sarkar @Tiven2240

Hi @Nokib_Sarkar and @Tiven2240 , Iโ€™m interested in working on the CampWiz NxT redesign project for GSoC 2026.
I have experience with React and frontend development, and Iโ€™ve started setting up the project locally. Iโ€™d love to contribute and get involved.

Could you please suggest some good first issues or beginner-friendly tasks to start with?

Hi @Nokib_Sarkar and @Tiven2240! when i try to send the email but it keep on failing and i keep on getting this message

Hello princenyarkoedwin@gmail.com,

We're writing to let you know that the group you tried to contact (tools) may not exist, or you may not have permission to post messages to the group. A few more details on why you weren't able to post:

  • You might have spelled or formatted the group name incorrectly.
  • The owner of the group may have removed this group.
  • You may need to join the group before receiving permission to post.
  • This group may not be open to posting.

If you have questions related to this or any other Google Group, visit the Help Center at https://support.google.com/a/wikilovesfolklore.org/bin/topic.py?topic=25838.

Thanks,

wikilovesfolklore.org admins

Hi, Iโ€™ve started working on the Root Path microtask.

I successfully set up and ran the project locally. I analyzed the root page (page.tsx) and identified its structure (Header, HeroBanner, AssignedCampaigns, PublicRunningCampaigns, Footer).

Iโ€™ve started creating a React-based version of the root page to understand the migration from Next.js to pure React.

Please let me know if I should proceed further with replacing Next.js-specific parts.

Hello Everyone, My name is Tabe Rickson, a software Engineer skilled in full-stack mobile and web development, i am a Cameroonian and i school at the University of Buea South-West Cameroon... I am currently gearing up towards the GSoC Open-Source Mentee-Mentorship Program with WikiMedia , i have particularly build Interest in Contributing and working on the Project CampWiz NxT Redesign, Phabricator (T414269) mentored by @Nokib_Sarkar and @Tiven2240, it will be an Awesome Opportunity to work with WikiMedia Foundation...

Dear Mentors, :- @Nokib_Sarkar , @Tiven2240

I am interested in contributing to the CampWiz NxT Redesign project for GSoC 2026.

My name is Krishna Kumar, and I am a frontend-focused developer with experience in React, JavaScript, HTML, and CSS. I have also contributed to open-source projects through programs like Open Source Connect Global 2025 and Elite Coders, where I worked on bug fixes, feature enhancements, and collaborative development workflows.

I am a first-time GSoC contributor and highly motivated to work on this project. While I am not deeply experienced with Next.js yet, I am comfortable with React fundamentals and eager to learn and adapt quickly. I am particularly interested in the migration to pure React and improving UI/UX for better usability. I enjoy building clean, modular, and user-friendly interfaces.

My outlook toward open source is to actively learn, contribute consistently, and collaborate with the community to build impactful and maintainable software.

I am currently exploring the CampWiz NxT codebase and would be happy to proceed with any interview or further steps.

Thank you for your time and consideration.

Best regards,
KrishnaDev21

Hi @Nokib_Sarkar and @Tiven2240,

Just a quick update: I have officially submitted my draft proposal for the CampWiz NxT Redesign to the GSoC portal. It includes the full technical breakdown of the SWR/React Router implementation based on my Vite PoC, as well as the 90-hour weekly timeline.

I would highly value any feedback or adjustments you'd like to see before the final deadline. Looking forward to our interview!

Hi @Nokib_Sarkar and @Tiven2240,

I tried sending the email to tools+gsoc26@wikilovesfolklore.org for the interview process, but I received an error saying the group may not exist or I donโ€™t have permission to send messages.

Could you please guide me on the correct way to contact you or share an alternative email?

Thank you!

Please use support+gsoc26@wikilovesfolklore.org

Hi @Nokib_Sarkar and @Tiven2240 I have officially submitted my Draft GSOC Proposal
I would like to have a feedback related to proposal.
Thankyou

Hi,

I have completed the Root Path microtask by converting the Next.js-based dashboard into a pure React implementation.

Key changes:

  • Replaced async server-side logic with client-side state using useState and useEffect
  • Removed Next.js-specific features
  • Structured the UI into reusable components (Header, HeroBanner, AssignedCampaigns, PublicRunningCampaigns, Footer)

This implementation maintains the original layout while making it suitable for static deployment.

GitHub Repository:
https://github.com/mokshith1222/campwiz-react

Looking forward to your feedback.

Hi,

I have completed the Root Path microtask by converting the Next.js-based dashboard into a pure React implementation.

Key changes:

  • Replaced async server-side logic with client-side state using useState and useEffect
  • Removed Next.js-specific features
  • Structured UI into reusable components (Header, HeroBanner, AssignedCampaigns, PublicRunningCampaigns, Footer)
  • Improved UI using Material UI components

GitHub Repository:
https://github.com/mokshith1222/campwiz-react

Looking forward to your feedback.

Hi, I'm a frontend developer experienced with React and TypeScript. I'm very interested in contributing to CampWiz NxT Redesign for GSoC 2026. Could you guide me to some beginner-friendly tasks to get started?

Hi, I am Saeed Ur Rehman, a CS student from Pakistan. I am applying
for GSoC 2026 and interested in the CampWiz NxT frontend migration
project. I have experience in React and JavaScript. I have submitted
my proposal on the GSoC site. Would love any feedback or guidance
from the mentors Nokib_Sarkar and Tiven2240.

GitHub: github.com/saeedmirza4

Hi, I am Bhoomi Malviya, a GSoC 2026 applicant.

I have completed the microtask T415408 by setting up a React-based frontend using Vite and implementing routing for the root path (/).

In addition, I deployed the application on Vercel and improved the UI using Material UI components. I also structured the project for scalability with reusable components.

GitHub Repository: https://github.com/Bhumi0189/campwiz-react
Live Demo: https://campwiz-react.vercel.app/

I would appreciate any feedback. Thank you!

@Nokib_Sarkar Hello! I am Ahmed, a first-year BTS IT student from Morocco. Iโ€™m reaching out to let you know that I have officially submitted my proposal for the CampWiz NxT Frontend Migration. I am highly motivated to contribute to Wikimedia and Iโ€™m ready to dedicate my time and effort to ensure this project is a success. Looking forward to the opportunity to learn and work with the community!

Hello!

I have completed microtask T415408.

Built a React frontend using Vite

Implemented routing for root path (/)

Improved UI using Material UI

Structured reusable components for scalability

GitHub Repository: https://github.com/Open-Knowledge-Impact-Foundation/campwiz-nxt-frontend2.git

I would appreciate your feedback. Thank you!

Hello!

I have completed this microtask.

 Implemented the required changes
Updated the GitHub repository accordingly

GitHub Repository / PR: https://github.com/Open-Knowledge-Impact-Foundation/campwiz-nxt-frontend2.git

Apologies for the late update. I would appreciate your feedback.

Thank you!

Hi, Iโ€™m Vaishnavi. Iโ€™ve started working on the CampWiz NXT frontend project and successfully set up the project locally.

I implemented improved error handling for authentication-related API responses (HTTP 403), showing a user-friendly message prompting login.

I am currently waiting for GitLab access approval to submit my merge request. In the meantime, Iโ€™ll continue exploring the codebase and start working on frontend migration tasks.

Hi @Nokib_Sarkar and @Tiven2240,

I realize I am entering the conversation at the very end of the application window. I had been planning to apply for the CampWiz NxT Redesign, but an unexpected health emergency severely delayed my timeline until this weekend.
I am back on my feet and have a strong background in React component architecture and state management, which fits exactly with the migration strategy from the legacy setup to a modern React architecture.

I see from the forums that interviews have already been scheduled for this project. To respect your time: should I still submit my technical architecture to the GSoC portal, or has the candidate list been firmly finalized? If there is still a chance, I have a handwritten, component-by-component migration plan ready to share for your candid feedback.

We expect the candidates to submit their interview request with specific email (support+gsoc26@wikilovesfolklore.org). Since you already have one ready, you (as well as other candidates) are welcome to submit.

I have completed the root path microtask (T415408).

Implemented a HomePage component for the root path (/) with the
following structure:

  • Hero Banner: displays the CampWiz NxT title and description
  • Public Running Campaigns: fetches and displays active campaigns using client-side useEffect and useState, replacing Next.js server-side data fetching
  • Footer: existing footer component integrated into the page

The implementation uses pure React with Material UI components
and is structured for static deployment.

GitHub: https://github.com/Astronomox/campwiz-react-root-path
Branch: root-path-implementation

Phabricator: Abdullahi207

Hi @Nokib_Sarkar and @Tiven2240,

I am interested in the CampWiz NxT Redesign project for GSoC 2026.

I have basic experience in React, JavaScript and frontend development.
I have gone through the project description and understand that the goal is to migrate the frontend from Next.js to pure React.

Could you please guide me on how to start contributing or suggest some beginner-friendly tasks?

Thank you!

Hello @Nokib_Sarkar and @Tiven2240

I have completed Microtask T415408 as part of the CampWiz contribution tasks.

Summary of Work

  • Built a React-based frontend using Vite
  • Implemented routing for the root path (/)
  • Improved the UI using Material UI components
  • Structured the project with reusable components to support scalability and maintainability

Repository

The implementation can be found here:
https://github.com/navneetsharma212006/CampWiz-gssoc/tree/main

Task Reference

https://phabricator.wikimedia.org/T414269

I would greatly appreciate any feedback or suggestions for improvements.
Thank you for reviewing my contribution.

Email - navneetsh21@gmail.com

Hello, I am interested in working on the CampWiz NxT Redesign project for GSoC 2026.

I have experience with JavaScript, HTML, and CSS, and I am currently learning React. I have also worked on projects like Learn-Verse 3D using React and Three.js.

From my understanding, this project involves migrating the frontend from Next.js to a pure React-based architecture while maintaining existing functionality and improving usability.

I would like guidance on:

  • Which parts of the current frontend codebase I should explore first
  • Any beginner-friendly tasks or microtasks I can start with

Looking forward to your feedback. Thank you!

Hi, I have compelted the required migration tasks and submitted multiple pull requests for review.

I have also sent an interview mail to the provided email. please let me know if any further steps or improvements are needed from my side.

ThankYou !

Hello @Nokib_Sarkar @Tiven2240

My name is Edmond, a student of Kwame Nkrumah University of Science and Technology and a member of WIKITECH KNUST. I'm interested in the CampWiz Nxt frontend project.

I had mid-semester exams from March 18โ€“27, and over the past few days Iโ€™ve onboarded into the project joining Zulip, taking notes on tasks on phabricator, studying the roadmap, setting up both codebases, and reviewing existing PRs. Iโ€™ve also started working on small improvements around the CampaignEdit page to align with the current structure.

I understand you require an interview to assess contributorsโ€™ understanding, and I would really appreciate the opportunity to demonstrate mine. I have sent a mail here already support+gsoc26@wikilovesfolklore.org.

Even though today is the deadline, Iโ€™m committed to continuing contributions regardless and would be grateful for a chance to be considered.

Best regards,
Edmond

Hi, I have submitted a GSoC 2026 proposal for the CampWiz NxT Redesign project.

I am currently exploring the codebase and understanding the architecture. I would love to get guidance on beginner-friendly tasks or microtasks to start contributing.

Looking forward to contributing and learning more about the project.

Hi, I'm Aryash Jain, a GSoC 2026 contributor applicant. I've submitted a proposal for this project and will be completing microtask T415408 shortly. Looking forward to feedback from mentors.

Hi @Nokib_Sarkar and @Tiven2240,

Just a quick update: I have officially submitted my final proposal for the CampWiz NxT Redesign to the GSoC portal! The final document includes the complete technical breakdown of the React/Vite SPA migration, the SWR data-fetching architecture based on my live PoC, and the detailed 90-hour weekly execution timeline.

Thank you both for your time and guidance on the architecture over the past few weeks. I know you are incredibly busy reviewing applications today, so no immediate reply is needed. I am really looking forward to the next steps and the opportunity to interview once the portal closes!

Hi @Nokib_Sarkar,

I have submitted my interview request via email.
Looking forward to your feedback.

Thank you!

Hi, I have submitted my GSoC 2026 proposal for CampWiz NxT frontend migration. I would really appreciate any feedback or suggestions. Thank you!

Additionally, I would be happy to start working on small frontend issues or microtasks to better understand the codebase. Please let me know if there are any beginner-friendly tasks I can contribute to.

Thank you for sharing the subtask!
I will start exploring it and try to understand the current implementation and requirements. I will share my progress and any questions I have while working on it.
Please let me know if there are any specific guidelines or areas I should focus on. Thanks!

"Hi! I am Yogesh U G, B.Tech IT student from Anna University. I am applying for GSoC 2026 for this project. I have completed the microtask T415408 and set up the project locally. Looking forward to working with mentors Nokib_Sarkar and Tiven2240!"

@Nokib_Sarkar,@Tiven2240 and @LGoto
yesterday I got email of interview but not see any time slot for interview in google calendar.
I send the email about this situation but not get any response