Proposal for Modernize Data Fetching API GSoC Project

:raised_back_of_hand: Hey everyone,
I'm interested in contributing to Modernize Data Fetching API Project for GSoC'23. I have gone through these resources:

I have also created a small prototype to get a better understanding of the project. I published an npm package @curiousyuvi/tquery-actions of TanStack Query hooks using superagent for a demo json-server API (endpoint).

I'm new to testing in React, so I'm still exploring testing right now. After that, I'll also try writing tests for the hooks in the library.

I also bootstrapped a Razzle-React project and used the TanStack query hooks package in it.

I tried following this documentation to setup TanStack Query for SSR in Razzle, but I was not able to make it work and the API calls are happening in the client-side only. Guess, it is something to be discussed later.

I have started drafting the proposal for this project, @sneridagh I have some doubts that I need help with:

  1. Since the project deliverables includes Tested Actions, can I know which testing library are we talking about and can you point me to some resources to learn that library and an example of the kind of tests to be written for the tanstack query actions.
  2. In the project's PLIP, in the deliverables list, I don't really get the last point:
    List of all Components that are affected, so people can check their shadows and update them.
    Can you share some references that might give me some background on this.

Thank You

PS : I'll post any further doubts I have while drafting the proposal in this topic.

Hey @sneridagh, I'm awaiting your response. Thank you.

Hi Yuvraj,

1.- Take a look at the existings PoC and initial implementation on @plone/client:

Existing PoC: #3406
Existing work already in @plone/client GitHub - plone/plone.restapi-client: JavaScript Plone RESTAPI client - JS framework agnostic library based on TanStack Query

2.- This project will change lots of components in core Volto. One of the core features is "component shadowing"

We have to document which components are we changing in our upgrade guide. Try to maintain the contract in components is also important. However, this is quite deep in the implementation details, and deliverables of the project, to be tackled during the actual implementation.

1 Like

Thank You, I'll go through these references.

Is there a specific format for GSoC proposals in Plone? If yes, can you share its reference? Thank you.

There isn't any. You can follow the general guidelines mentioned in Writing a proposal | Google Summer of Code Guides

1 Like that so...Thank you.

I have submitted the initial draft of the proposal. @sneridagh please provide your feedback.