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
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
accessibility violation)
+ New Projectcard gives no hint about what format to uploadGET /projects/recentdoes not return dataset shape or upload metadataPATCH /projects/{project_id}endpoint does not existExpected Behavior
Project Cards
Kebab Menu (⋮)
⋮menu with Rename and DeleteInputDialogfor editing the project name inlineConfirmDialogwith toast feedbackNew Project Card
API
GET /projects/recentreturnsupload_date,file_size_bytes,row_count,column_countPATCH /projects/{project_id}accepts{ "name": "..." }andreturns the updated project
PATCHadded to CORS allowed methodsTests
Files Affected
Backend
app/utils/pandas_helpers.pyapp/schemas.pyapp/services/project_service.pyapp/api/endpoints/projects.pyapp/main.pyFrontend
src/components/HomeScreen.jsxsrc/api/projects.jssrc/api/index.jsTests
tests/test_new_features.py