Skip to content

Add Python backend for SVG rendering, connect frontend to backend, and UI/usability improvements#13

Open
afffe18 wants to merge 1 commit intocodex/fix-ui-input-fields-for-annotationsfrom
codex/2026-04-18_12-16-05-task-title
Open

Add Python backend for SVG rendering, connect frontend to backend, and UI/usability improvements#13
afffe18 wants to merge 1 commit intocodex/fix-ui-input-fields-for-annotationsfrom
codex/2026-04-18_12-16-05-task-title

Conversation

@afffe18
Copy link
Copy Markdown
Collaborator

@afffe18 afffe18 commented Apr 18, 2026

Motivation

  • Provide a minimal Python backend endpoint to render plot SVGs and support Excel imports so the frontend can offload rendering and column extraction to a server.
  • Improve editor ergonomics with tab renaming, automatic tab naming, URL-linked selection, theme settings and a simple menu to streamline configuration workflows.
  • Replace the client-only Plotly rendering flow with a backend-rendered SVG preview to simplify rendering and enable server-side logic.
  • Make configuration export deterministic for the backend by exposing toExternalConfig for JSON payloads.

Description

  • Add a Flask backend at backend/app.py with endpoints POST /api/render-plot (accepts JSON config and returns placeholder SVG) and POST /api/import-database (accepts JSON or file uploads and extracts column names using openpyxl via _extract_columns_from_xlsx), and include backend/requirements.txt with flask and openpyxl.
  • Wire the frontend to the backend by exporting toExternalConfig from src/utils/configIo.ts and updating src/components/PlotPage.tsx to send the config to /api/render-plot, display returned SVG markup, and show render state/errors.
  • Add multiple UI/UX enhancements in src/App.tsx including theme support, menu/settings/about modals, tab rename and middle-click-to-open, automatic generated names via getNextTabName, URL query param synchronization for dataframe and frame, import validation against known columns, and dynamic whitelist keyword options.
  • Adjust layout and asset pipeline: change #root sizing and dark-mode border in src/index.css, add a backend run script to package.json, and configure a dev proxy to the backend in vite.config.ts.

Testing

  • No automated tests were run for this change.

Codex Task

@afffe18
Copy link
Copy Markdown
Collaborator Author

afffe18 commented Apr 18, 2026

@copilot resolve the merge conflicts in this pull request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant