As an admin, I want to use backend APIs for user management so that I can view, invite, assign roles to, and deactivate users within the system. Implement FastAPI endpoints: GET /api/v1/admin/users (list users with role, status, last active), POST /api/v1/admin/users/invite (invite by email with role assignment), PATCH /api/v1/admin/users/{user_id}/role (update role), PATCH /api/v1/admin/users/{user_id}/status (activate/deactivate). Enforces role-based access control (Admin only). Integrates with existing auth system.
As a user, I want to use a backend API for uploading Excel files so that my files are securely received, validated, and stored for processing. Implement a FastAPI endpoint (POST /api/v1/files/upload) that accepts .xls, .xlsx, .csv files up to 50MB, validates file type and size, stores the file, creates a processing job record in MySQL, and returns a job ID and file metadata. Includes multipart form handling, file size enforcement, and basic virus/format checks.
As a developer, I want to implement the polar-excel global theme and color system so that all pages share a consistent design language. Set up CSS custom properties for Polar Blue (#1E90FF), Arctic White (#F8F9FA), Ice Gray (#D3D3D3), Sunset Red (#FF4500), dark background (#0A1628), surface tokens, border tokens, and the Inter font family. Apply the Arctic night animated background (snowfall particles, aurora radial glow, star dots) at the root level. Remove any scaffold pages not present in the design (welcome page, ai-assistant page). This task is independent and must be completed before all other frontend page tasks.
As a user, I want to use an Upload page so that I can upload my Excel files (.xls, .xlsx, .csv up to 50MB) for table extraction. Implement the Upload page based on the existing v2 JSX design. Includes: drag-and-drop zone with visual feedback, file type/size validation, upload progress indicator, file metadata preview (name, size, sheet count estimate), and navigation to the Preview page on successful upload. Connects to: Login (post sign-in), Preview (on upload success).
As a guest, I want to use a Signup page so that I can create a polar-excel account and unlock full upload and export capabilities. Implement the Signup page based on the existing v2 JSX design. Includes: name, email, password fields, 'Create Account' CTA, link to Login, and validation feedback. Connects to: Landing (Register Prompt → Signup), Login (already have account). Integrate with existing basic authentication backend.
As an admin, I want to use backend APIs for the dashboard so that I can monitor system performance metrics, processing logs, and usage statistics in real time. Implement FastAPI endpoints: GET /api/v1/admin/metrics (system health, files processed, tables extracted, avg processing time, concurrent users), GET /api/v1/admin/logs (paginated processing logs with IST timestamps, filterable by level/date), GET /api/v1/admin/activity (recent upload activity feed). Secured with admin role middleware.
As an admin, I want to use backend APIs for system settings so that I can configure global detection defaults and system parameters that apply across all users. Implement FastAPI endpoints: GET /api/v1/admin/settings (retrieve current system settings), PATCH /api/v1/admin/settings (update settings: default thresholds, file size limit, supported formats, timezone, notification preferences). Settings persisted in MySQL. Admin role required.
As an admin, I want to use a Users page so that I can manage user access, roles, and accounts within the polar-excel system. Implement the Users page based on the existing v2 JSX design. Includes: user table with name, email, role (Admin/User/Guest), status, last active columns; role assignment controls; invite user flow; deactivate/activate user actions; search and filter. Connects to: Dashboard (back), Settings (configure system). Depends on Users API.
As a user, I want to use a backend API for table detection so that my uploaded Excel sheets are analyzed and all tables are dynamically extracted without predefined boundaries. Implement the core detection engine in Python: parse multi-sheet Excel files using openpyxl/xlrd, detect table boundaries using heuristic algorithms (empty row/column gaps, data density thresholds), support configurable options (ignore empty rows, ignore empty cols, min row/col thresholds), and store detected table records in MySQL. Expose a FastAPI endpoint (POST /api/v1/jobs/{job_id}/detect) to trigger detection with custom params.
As a user, I want to use a Login page so that I can sign in to my polar-excel account and access upload and preview features. Implement the Login page based on the existing v2 JSX design. Includes: frosted-glass card, email/password fields, 'Sign In' CTA, link to Signup, and error handling for invalid credentials. Connects to: Landing (back link), Dashboard/Upload (on success). Integrate with existing basic authentication backend.
As a user, I want to see a visually engaging Landing page so that I understand polar-excel's features before signing up or logging in. Implement the Landing page based on the existing v2 JSX design. Includes: interactive polar landscape with floating icebergs representing key features (Upload Excel, View Tables, Customize Logic), snowfall animation, drag-and-drop upload zone on the central iceberg with crack visual cue, time-of-day color transitions, micro-interactions on buttons/icons, and CTAs linking to Login and Signup. Remove any scaffold home page and replace with this design.
As an admin, I want to use a Settings page so that I can configure system-wide detection defaults, data retention policies, and notification preferences. Implement the Settings page based on the existing v2 JSX design. Includes: detection defaults (empty row/col ignore toggles, threshold sliders), file size limit configuration, supported format toggles, system timezone (IST), notification preferences, and save/reset controls. Connects to: Dashboard, Users.
As an admin, I want to use a Dashboard page so that I can monitor system performance, view processing logs, and get an overview of usage metrics. Implement the Dashboard page based on the existing v2 JSX design. Includes: sticky frosted-glass TopBar, system health stats, recent upload activity feed, processing metrics (files processed, tables extracted, avg processing time), log viewer panel, and navigation to Users and Settings pages. Connects to: Login (post admin sign-in), Users (manage access), Settings (configure system).
As a user, I want to be notified via the backend when no tables are detected in my uploaded file so that I can take corrective action. Implement a notification service that triggers when the detection engine returns zero tables for a sheet or file. Expose GET /api/v1/jobs/{job_id}/notifications endpoint returning structured notification objects (type: warning/info/error, message, timestamp in IST). Frontend polls this endpoint to display the EmptyStateNotice on the Preview page.
As a user, I want to use a backend API for previewing detected tables so that I can view table data paginated by sheet in the Preview page. Implement FastAPI endpoints: GET /api/v1/jobs/{job_id}/sheets (list sheets with table counts), GET /api/v1/jobs/{job_id}/sheets/{sheet_id}/tables (list tables with dimensions), GET /api/v1/jobs/{job_id}/tables/{table_id}/data (paginated table rows and headers). Supports filtering and pagination parameters.
As a user, I want to use a Preview page so that I can view all detected tables from each sheet, customize detection logic, and select tables for export before downloading. Implement the Preview page based on the existing v2 JSX design. Includes: TopBar with breadcrumb, FileInfoBanner, SheetSidebar (sheet list with table counts), DetectionControls (ignore empty rows/cols, threshold settings, re-run detection), TableResultsGrid (card tiles per table with mini-preview, row×col dimensions, select for export), TableDetailView (expanded grid with sticky header, sortable columns, search), ExportPanel (format selector CSV/JSON, export CTA), EmptyStateNotice (no tables detected). On mobile: sidebar collapses to horizontal tabs, grids scroll horizontally. Connects to: Upload (back), Download (on export).
As a user, I want to use a backend API for exporting tables so that I can download selected tables in CSV, JSON, or XLSX format. Implement FastAPI endpoints: POST /api/v1/jobs/{job_id}/export (accepts list of table IDs and format choice, triggers export job), GET /api/v1/jobs/{job_id}/export/status (poll export status with progress percentage), GET /api/v1/jobs/{job_id}/export/download (stream the export file). Generates ZIP archive when multiple tables selected. Enforces Guest user restrictions (no download).
As a user, I want to use a Download page so that I can confirm extraction is complete and download my extracted tables in my chosen format (CSV or JSON). Implement the Download page based on the existing v2 JSX design. Includes: DownloadHero (animated checkmark, 'Your Tables Are Ready' headline, file metadata, confetti burst), ExportSummary (stat cards: sheets scanned, tables detected, total rows, est. size), FormatSelector (CSV/JSON/XLSX toggle cards), TablePreviewPanel (sidebar table list + data grid), DownloadActions (Download All / Download Selected buttons, progress bar, success toast), DetectionSettings (collapsible re-run panel), ProcessingTimeline (step indicators with IST timestamps), UploadAnother (CTA band), NavBar, Footer. Connects to: Preview (back/source), Landing (upload another).

No user flows yet.
The User Flow Agent will generate per-persona navigation diagrams after SRD updates.
No comments yet. Be the first!