Skip to content

Save and load projects (local machine and Raspberry Pi) #8

Description

@BernardJen

Summary

Add the ability to save and load projects, both on the user's local machine and on the Raspberry Pi (via the gateway daemon).

Motivation

Drawings are currently transient. Users need to persist a full project (canvas contents, pens, paper, layout) and reopen it later — including projects stored on the Pi so the headless deployment can hold a library of plots.

What a project includes

  • All canvas objects (imported paths, shapes, text).
  • Pen / multi-color assignments.
  • Paper type and canvas layout/settings.
  • Enough metadata to reproduce the plot.

Storage targets

  • Local machine — download/open a project file from the browser.
  • Raspberry Pi — save to / load from the gateway, so projects live on the Pi and are reachable from any client connected to it.

Acceptance criteria

  • User can save the current project to a file on their machine.
  • User can load a previously saved project from their machine.
  • User can save a project to the Pi via the gateway.
  • User can list and load projects stored on the Pi.
  • A loaded project restores canvas contents, pens, and paper faithfully.

Notes

  • Define a versioned project file format so future schema changes stay compatible.
  • Pi-side storage and listing will need new gateway endpoints (gateway/server.ts); mirror the existing state-persistence patterns (PLOTTER_STATE).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions