Skip to content

Latest commit

 

History

History
38 lines (32 loc) · 2.99 KB

m2.md

File metadata and controls

38 lines (32 loc) · 2.99 KB

Milestone 2

Grant at urbit.org

Expected Completion: May 2023

Payment: 3 stars

Current TODOs

  • [frontend / backend] I can organize my spreadsheets into folders that are visible from my homepage.
  • [frontend / backend] I can view an edit history of the sheet I'm working on and revert back to an arbitrary date.
  • [frontend / backend?] I can use any formula from the Formula.JS library to reference other cells within my sheet, and have those formulas automatically update when their referenced cells change.
  • [frontend] I can select a group of consecutive cells and copy-paste them into another group of consecutive cells.
  • [frontend] I can search my spreadsheet, or a selection within my spreadsheet, for a pattern of characters, and perform find/replace within my search.
  • [frontend] I can select a group of cells matching a pattern such as A1 = 1, A2 = 2, A3 = 3... and drag so that the following cells follow the pattern, ex. A4 = 4, A5 = 5....
  • [frontend / backend] I can export my spreadsheets to CSV format and download them onto my Terran computer.
  • [frontend / backend] I can import CSV spreadsheets from my Terran computer onto Membrane.
  • [backend] When receiving a spreadsheet over the network that conflicts with the path of an existing spreadsheet, I can view the changes made to my local copy and decide which changes, if any, to overwrite my local copy with. [may be better to just accept all changes automatically (maybe with some max size?) and have root folders corresponding to source ship for each file/directory...]
  • [wordcel] I can read about the features of Membrane by looking at its page in the Documentation app.
  • [backend] My spreadsheets expose an API that can be accessed by third-party front-ends, as well as other Urbit apps. All pokes and scries are documented in the Documentation app. This API contains, at minimum, the following operations:
    • [backend] Create an empty spreadsheet
    • [backend] Delete a spreadsheet
    • [backend] Rename a spreadsheet
    • [backend] Change the location of a spreadsheet in the Clay filesystem
    • [backend] Add or remove tags to a spreadsheet
    • [backend] [obsolete] Change the access level of a user in a spreadsheet
    • [backend] Retrieve an entire spreadsheet in JSON
    • [backend] Replace an entire spreadsheet with a new spreadsheet from JSON
    • [backend] Retrieve a list of subfolders or spreadsheets within a given directory
    • [backend] Modify the value and/or metadata of a cell
    • [backend] Retrieve the value and metadata of a cell in JSON
    • [backend] Retrieve an entire row of cells in JSON
    • [backend] Retrieve an entire column of cells in JSON
    • [backend] Batch a series of changes to be entered sequentially

Bonus

  • [backend] Write a +grad arm for the sheets mark to make storage more efficient in clay.