Page MenuHomePhabricator

GSoC 2026: CampWiz NxT Redesign
Open, Needs TriagePublic

Description

Campwiz_Logo.svg.png (1,920×1,080 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

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

Hi, I'm Hasish Infant, a React/TypeScript developer from Bengaluru, India. I submitted a GSoC 2026 proposal for this project (CampWiz NxT migration to pure React). While my proposal wasn't selected this cycle, I remain genuinely interested in contributing to this project.
I'm applying for the Indic Wikimedia Hackathon in Hyderabad (June 26–28) and would like to work on this migration there. Could @Nokib_Sarkar or @Tiven2240 suggest any good first tasks I could start with before then? I've already reviewed the codebase and understand the Next.js → React Router v6 migration path.
GitHub: github.com/hasishinfant

@Hasish_Infant You are absolutely welcome to our community and we would love to have you among us. But, the project is not only migration, but also redesigning the frontend too. You can help us give some designs of the interfaces or any efficiency/optimization suggestions. But I would recommend you to start from the bug reports/issues given on github/gitlab. @Tiven2240 might help you onboard. Thank you very much for your interest.

Weekly Internship Report
Week 1: May 25 – May 31

Task progress

  • First introductory call with Nokib and Tiven. We spoke about the project and expectations for the internship. Nokib walked me through some technical details of the project, like how to work with the application in a dev environment. I was also granted access to the project's main GitHub repository.
  • Pick up a bug related to the theme toggling not working and have pushed a patch for it, which has been merged PR
  • Started the UI/UX redesign of the project. First with the auth, terms, and policy pages. Shared the Figma design with my mentors, got feedback about improvements, and have proceeded to work on these improvements.

Challenges Faced

  • Creating design screens, as I do not really come from a UI/UX background

Learnings and Skills Gained

  • Learned how to better handle and create design systems.

Weekly Internship Report
Week 2: June 1– June 7

Task progress

  • Continued the UI/UX redesign work based on mentor feedback from the previous week.
  • Refined the design system elements (spacing, typography, color usage, and component consistency) to make the upcoming implementation phase smoother.
  • Prepared the design assets and screen flows needed for development and reached a point where implementation of the redesigned interface can begin shortly.

Challenges Faced

  • Translating mentor feedback into consistent design decisions across multiple screens.

Learnings and Skills Gained

  • Gained a better understanding of design system consistency and how it supports faster front-end implementation.
  • Improved iterative design workflow by incorporating structured feedback and refining screens through multiple revisions.

Weekly Internship Report
Week 3: June 8 – June 15

Task Progress

  • Finalized and rounded up the complete Figma design for CampWiz, consolidating all previously iterated screens into a cohesive, implementation-ready file: Figma
  • Did a final pass across all screens to ensure spacing, typography, and color usage matched the design system established in previous weeks.
  • Cross-checked screens against earlier mentor feedback to confirm all requested changes were reflected consistently.

Challenges Faced

  • Ensuring every screen stayed visually and structurally consistent while finalizing details across a large number of frames.
  • Balancing polish with the broader timeline, knowing implementation needs to begin soon.

Learnings and Skills Gained

  • Strengthened skills in design file organization and component structuring, which will make the development much smoother.

Weekly Internship Report
Week 4: June 16 – June 21

Task Progress

  • Continued the implementation of the redesigned CampWiz interface based on the finalized Figma designs.
  • Completed the majority of the frontend implementation, with most of the redesigned screens now integrated into the application.
  • Focused on translating the design system into reusable UI components while maintaining consistency with the approved mockups.
  • Performed iterative testing throughout development to ensure the implemented interfaces closely matched the intended designs and behaved correctly across different sections of the application.

Challenges Faced

  • Spent time navigating and understanding the existing CampWiz codebase before implementing new features, as the project structure and architecture required some exploration.
  • Understanding how the existing components and application flow interacted was necessary to integrate the redesigned interface without introducing regressions.

Learnings and Skills Gained

  • Improved my ability to work within a large, existing codebase by understanding its architecture, component hierarchy, and development patterns.
  • Gained more experience converting high-fidelity Figma designs into functional, reusable frontend components.
  • Developed a better understanding of balancing adherence to design specifications with the constraints of an existing application during implementation.

@Tiven2240 and @Nokib_Sarkar
Please, this is another reminder to complete the mentor's midterm evaluation, which closes later today.
Thank you so much

We submitted the evaluation, thanks for reminder

We submitted the evaluation, thanks for reminder

Thank you!

Weekly Internship Report

Week 5: June 23 – June 28

Task Progress

  • Finalized the remaining frontend implementation for the redesigned CampWiz interface, completing all outstanding screens from the Figma designs.
  • Conducted thorough self-review and cleanup of the codebase, including refactoring components for consistency and removing redundant code.
  • Ran final rounds of testing across the redesigned sections to confirm functionality and visual alignment with the approved mockups.
  • Opened a pull request consolidating the redesigned interface work and submitted it for mentor review.

Challenges Faced

  • Ensuring the PR was well-organized and easy to review, given the scope of changes across multiple components and screens.
  • Double-checking that no regressions were introduced across the different sections touched during the redesign before submitting for review.

Learnings and Skills Gained

  • Gained experience preparing a large feature branch for review, including structuring commits and writing clear PR descriptions.
  • Strengthened my understanding of code review best practices and how to present significant frontend changes for mentor feedback.

Weekly Internship Report

Week 6: June 30 – July 5

Task Progress

  • PR remains open and awaiting review feedback from mentors.
  • While waiting, proactively explored the application end-to-end, going through different sections and flows to identify bugs and potential areas for improvement.
  • Documented observations on inconsistencies, edge cases, and rough spots in the user experience for follow-up.
  • Began compiling a list of smaller improvements and fixes that could be tackled alongside or after the current PR is merged.

Challenges Faced

  • Working without immediate feedback on the pending PR made it difficult to plan next implementation steps with full confidence.
  • Distinguishing between issues that are pre-existing versus ones introduced by the redesign required careful, methodical testing across the application.

Learnings and Skills Gained

  • Developed a more holistic understanding of the CampWiz application by exploring it from a user's perspective rather than just a developer's.
  • Improved my ability to spot and document bugs systematically, which will help prioritize fixes going forward.
  • Practiced staying productive and proactive during a review-waiting period rather than being blocked by it.

Weekly Internship Report

Week 7: July 7 – July 12

Task Progress

  • The submitted pull request is still pending review; no new feedback has come in from mentors yet.
  • Used the time to continue getting more familiar with the application, going through additional flows and screens I hadn't fully covered before.
  • Kept a running list of small bugs and rough edges spotted along the way, adding to what was noted in the previous week.
  • No major new implementation work this week, as further progress is dependent on review feedback for the open PR.

Challenges Faced

  • The extended wait on PR feedback has made it harder to determine the right next priority, since implementation direction partly hinges on what mentors flag.
  • Balancing exploratory testing with the need to avoid duplicate effort on issues already noted took some care.

Weekly Internship Report

Week 8: July 14 – July 19

Task Progress

  • The pull request remained under review, with no substantive feedback from mentors yet.
  • Shifted focus to browsing open issues across the organization's frontend and backend repositories to get a broader sense of ongoing work and potential areas to contribute to next.
  • Cross-referenced some of these issues against the rough edges already noted from testing, and found a few overlaps worth flagging later.
  • Did some light prep work reviewing related components and code patterns, so implementation can move quickly once review feedback comes in.

Challenges Faced

  • With review feedback still pending, it was hard to commit fully to any one issue from the org repos without risking wasted effort if priorities shifted after review.
  • Navigating both frontend and backend codebases in parallel required some context-switching to stay oriented in each.

Weekly Internship Report

Week 9: July 21 – July 26

Task Progress

  • PR review was still pending for most of the week; no new comments from mentors yet.
  • Went deeper into the backend org repo to understand how a few flagged issues connected to the frontend behavior observed earlier.
  • Consolidated the bug and rough-edge notes gathered over the past few weeks into a single organized list, ready to share with mentors.
  • Picked out a small set of org repo issues that looked like good candidates for future work, noting dependencies and complexity for each.

Challenges Faced

  • Distinguishing which issues were genuinely relevant to the current project versus general backlog items took some judgment.
  • The prolonged review turnaround continued to limit forward implementation progress, even with the additional issue exploration.

Weekly Internship Report

Week 10: July 28 – August 2

Task Progress

  • Mentors began actively reviewing the submitted pull request and the code changes this week.
  • Continued exploring frontend and backend org repo issues in parallel, keeping track of those worth picking up depending on how the review turned out.
  • Engaged with mentors around their review process, clarifying context on implementation decisions where needed.
  • Stayed available to respond to review comments as they came in, while keeping the consolidated bug list updated in the background.

Challenges Faced

  • Coordinating around the review timeline required patience, since review comments came in gradually rather than all at once.
  • Balancing readiness to respond quickly to review comments with continuing the org repo exploration took some prioritization.

Weekly Internship Report

Week 11: August 4 – August 9

Task Progress

  • Received detailed feedback from mentors on the pull request, along with requested changes.
  • Reviewed all feedback carefully and began working through the requested changes systematically.
  • Addressed the majority of the review comments, updating code and adjusting implementation based on mentor guidance.
  • Drew on the earlier org repo exploration and consolidated bug list to inform some of the revisions, resolving a few overlapping issues along the way.

Challenges Faced

  • Some review comments required bigger changes than initially anticipated, needing careful rework rather than quick fixes.
  • Prioritizing which requested changes to tackle first, given some had dependencies on others, took some planning.

Weekly Internship Report

Week 12: August 10 – August 16

Task Progress

  • Completed the remaining changes requested during the mentor review and had the pull request successfully merged into the main repository.
  • Reviewed the CampWiz interface and identified additional screens that could benefit from updates and improvements.
  • Implemented updates to the additional screens, following the design direction and patterns established throughout the project.
  • Created and submitted a new pull request containing the updates to the additional screens for review.
  • Completed and submitted my final internship report, documenting the work completed, progress made, challenges encountered, and overall experience throughout the internship.
  • Filled out the internship evaluation as part of the final internship requirements.
  • Wrapped up the internship by reviewing the work completed during the program and ensuring that the relevant changes and documentation were in place.