Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion desktop/AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ODE Desktop — AI and developer guide

**ODE Desktop** (`desktop/`) is the Tauri + React + Rust app for **Data management** (observations, sync, import) and the **Forms / app workbench** (bundles, form preview, custom app embed). User-facing overview: [desktop/README.md](README.md).
**ODE Desktop** (`desktop/`) is the Tauri + React + Rust app for **Data management** (observations, sync, import, **export**) and the **Forms / app workbench** (bundles, form preview, custom app embed). User-facing overview: [desktop/README.md](README.md).

Published docs: [ODE Desktop developer mode](https://opendataensemble.org/docs/guides/ode-desktop-developer-mode) (local custom app iteration).

Expand Down
13 changes: 13 additions & 0 deletions desktop/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,23 @@ The internal Rust crate may still be named `custodian`; user-facing strings use
## Who it is for

- **Field and data staff** managing observations and sync (Data management).
- **Analysts** exporting local Parquet from Data → **Export** for offline analysis (R, Python, etc.).
- **Form and app authors** testing bundles and custom apps against Synkronus before mobile deploy (Workbench).

Relationship to other ODE components: **Synkronus** (API), **Formulus** + **formplayer** (runtime parity), **Portal** and **CLI** (same public API — no privileged desktop channel). Long-form prose here is intended to be **copy-friendly** for [opendataensemble.org](https://opendataensemble.org/) documentation; keep user-facing sections free of repo-only trivia (put contributor notes under **Development**).

## Data management — Export

From **Data → Export**, ODE Desktop writes analyst-oriented Parquet from the **active profile’s local workspace** (not from Synkronus over the network):

1. Choose a destination parent folder (last location is remembered for the session, like Import).
2. Desktop creates a leaf folder named **`YYYYMMDD`** under that parent (overwrite confirmation if it already exists).
3. One **`<form_type>.parquet`** per form type, plus **`export_manifest.json`**, and **`snippets/`** load scripts (R, Python, Stata, Julia).
4. Optional **Include pending observations** (local rows not yet synced).
5. Optional **Include attachments** — copies referenced files into `attachments/` under the export folder. Observation data stores attachment **basenames**; prefix them with the workspace attachments path shown on Profiles / Export (or the export `attachments/` path when copied) to open files on disk.

The Export page also shows copyable load snippets with variables named after each form type. Transforms and study-specific ETL stay **outside** Desktop. For a full **server** dump as a ZIP, use Portal or `synk data export`.

## Install

Official builds are produced with **`pnpm tauri build`** (artifacts vary by OS: `.msi`, `.dmg`, `.app`, AppImage, `.deb`, etc.). When releases are published, attach those bundles to **GitHub Releases** and link them from project docs.
Expand Down
2 changes: 1 addition & 1 deletion desktop/docs/UI_FEEDBACK.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Single source of truth for how the shell surfaces status, errors, and confirmati

## Progress banner (full-width)

**Use for:** long-running sync, import, and **app bundle download/apply** jobs.
**Use for:** long-running sync, import, **export**, and **app bundle download/apply** jobs.

- Renders below the mode switch / dev bar in `Shell`.
- Shows spinner + status text; optional determinate progress bar when `bundleActivity.total > 0`.
Expand Down
Loading
Loading