Skip to content

[Enhancement] Project cards lack metadata, quick actions, and rename support #250

@Codewithpabitra

Description

@Codewithpabitra

Description

The project cards on the Home Screen are too minimal to be useful. Users
cannot tell anything meaningful about a project (size, shape of data, when
it was created) without opening it. There is also no way to rename a project
from the UI, and the delete button is an awkward floating icon that creates
accessibility issues (nested <button> inside <button>).

Current Behavior

  • Cards show only: project name, optional description, last modified date
  • No file size, row count, or column count visible at a glance
  • No rename functionality anywhere in the UI or API
  • Delete is a floating icon nested inside the card button (invalid HTML /
    accessibility violation)
  • + New Project card gives no hint about what format to upload
  • GET /projects/recent does not return dataset shape or upload metadata
  • PATCH /projects/{project_id} endpoint does not exist

Expected Behavior

Project Cards

  • Display metadata badges: rows, columns, file size, date created
  • Show last modified date in the card footer
  • Strong hover and focus styles for better interactivity affordance
  • Single focusable card surface (no nested interactive elements)

Kebab Menu (⋮)

  • Each card has a menu with Rename and Delete
  • Rename opens an InputDialog for editing the project name inline
  • Delete reuses the existing ConfirmDialog with toast feedback

New Project Card

  • Clearer dashed card with an upload icon and "Upload a CSV" label

API

  • GET /projects/recent returns upload_date, file_size_bytes,
    row_count, column_count
  • PATCH /projects/{project_id} accepts { "name": "..." } and
    returns the updated project
  • PATCH added to CORS allowed methods

Tests

  • Unit tests for CSV stats extraction
  • Integration tests for rename and enriched recent projects response

Files Affected

Backend

  • app/utils/pandas_helpers.py
  • app/schemas.py
  • app/services/project_service.py
  • app/api/endpoints/projects.py
  • app/main.py

Frontend

  • src/components/HomeScreen.jsx
  • src/api/projects.js
  • src/api/index.js

Tests

  • tests/test_new_features.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions