SolidLabResearch / Challenges

24 stars 0 forks source link

Agent that syncs pods and Google Sheets v2 #123

Open pheyvaer opened 11 months ago

pheyvaer commented 11 months ago

Pitch

A lot of users use Google Sheets to view and edit data. This data can be stored in Google Sheets itself or it can be coming from an external data source such as a MySQL database or MongoDB. So far, there is no solution that exists that allows doing this with data in Solid pods. This challenge focuses on the agent/backend part of a solution for this problem.

This challenge is an extension of challenge #120. We explain in the "Acceptance criteria" section what is expected.

Desired solution

The solution builds on this agent, which is the solution for challenge #120.

Acceptance criteria

The solution needs to support the following user flows.

Update Google Sheet with changes from pod

  1. There exists a public resource on the user's pod that they want to sync.
  2. The user opens a new Google Sheet.
  3. The user updates the config file.
  4. The user updates the YARRRML file.
  5. The user starts the server application.
  6. The Google Sheets is initially filled with the data from the resource.
  7. The user updates a field in the Google Sheets.
  8. The application writes the changes to the resource.
  9. The user manually checks the resource and sees the changes.
  10. The user updates the resource via another app or manually.
  11. The application updates the Google Sheet.

Note that steps 1 till 9 are the similar to the flow described in challenge #120. Supporting this flow includes solving https://github.com/SolidLabResearch/google-sheet-sync/issues/10.

Update Google Sheet beyond the initial range

  1. There exists a public resource on the user's pod that they want to sync.
  2. The user opens a new Google Sheet.
  3. The user updates the config file.
  4. The updates the YARRRML file.
  5. The user starts the server application.
  6. The Google Sheets is initially filled with the data from the resource. Assume that the last row is row 100.
  7. The user adds new information on row 101.
  8. The application writes the changes to the resource.
  9. The user manually checks the resource and sees the changes.

Supporting this flow includes solving https://github.com/SolidLabResearch/google-sheet-sync/issues/7.

Write changes from Google Sheets to multiple resources

  1. There exist at least two public resources on the user's pod that they want to sync.
  2. The user opens a new Google Sheet.
  3. The user updates the config file.
  4. The user updates the YARRRML file.
  5. The user starts the server application.
  6. The Google Sheets is initially filled with the data from the resource.
  7. The user updates multiple fields in the Google Sheets. The data in these fields corresponds to data spread over the different resources.
  8. The application writes the changes to the correct resources.
  9. The user manually checks the resources and sees the changes.

Supporting this flow includes solving https://github.com/SolidLabResearch/google-sheet-sync/issues/12.

Sync Google Sheet with resources that require authentication

  1. There exists a private resource on the user's pod that they want to sync.
  2. The user opens a new Google Sheet.
  3. The user updates the config file.
  4. The user updates the YARRRML file.
  5. The user starts the server application. The application asks the user for login credentials.
  6. The Google Sheets is initially filled with the data from the resource.
  7. The user updates a field in the Google Sheets.
  8. The application writes the changes to the resource.
  9. The user manually checks the resource and sees the changes.

Supporting this flow includes solving https://github.com/SolidLabResearch/google-sheet-sync/issues/13.

Scenarios