-
Notifications
You must be signed in to change notification settings - Fork 4
Dashboard Frontend MVP v0.1.0 #98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…s, Runs Created the initial file structure for the dashboard MVP, including components, hooks, context, GraphQL client, and shared types. Added placeholder pages for Experiments, Trials, and Runs with corresponding list/detail views. Set up basic layout, sidebar, and project context as foundation for upcoming UI and data integration.
- Removed Chat components, useChat hooks, useDashboard, and legacy services/api imports - Cleaned App.tsx to minimal working routing structure - Ensured Vite dev server can run without referencing removed files
- Added GraphQL-powered hooks for projects, experiments, trials, runs, and metrics - Implemented ExperimentsPage with Overview and List tabs - Added navigation support from experiment list to detail page - Verified experiments query works end-to-end with seed data
…g update - Completed ExperimentDetail view with breadcrumb, metadata section, and trials list - Added working navigation from experiment list to detail page in App routing - Verified end-to-end experiment detail rendering with seeded data
- Add GraphQL client and typed queries for Alphatrion backend - Implement Projects list page - Implement Experiments page with Overview/List tabs - Implement Experiment Detail with trials list - Implement Trial Detail with metrics charts and runs list - Add React Query hooks for all data layers - Add CORS middleware to backend Removed unused files from miniproject migration.
|
/kind feature |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I launched the dashboard in my laptop, glad to have a skeleton, but still need to polish a bit before release a min version. Here're some suggestions I have, but glad to discuss about it.
- Let's default to one existing project, we can choose the first one from project list. In the future, we can cache the choice locally.
- For every item(project, exp, trial, run, let's put the id first and not hide them.
- In the sidebar, let's only have projects and experiments. Then we can navigate to the trials from experiment page, and runs from trial page.
- Remove the
view xxxcolumn, instead, let's just click the ID directly to jump to the next page, this is more straightforward I believe. - Also for trials page and runs page, we should also have a overview table and a list table just like we do for experiment, because usually, for the overview page, we have charts and list page we have the data.
For the first round of view.
| @@ -0,0 +1,14 @@ | |||
| node_modules/ | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's rename the frontend to dashboard globally.
frontend/src/styles/index.css
Outdated
| @tailwind components; | ||
| @tailwind utilities; | ||
|
|
||
| /* 专业浅色背景 - Notion/Linear 风格 */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove chinese words here.
frontend/Manual_Testing.md
Outdated
| # Manual Testing Checklist | ||
|
|
||
| ## Prerequisites | ||
| - Backend running: `uv run alphatrion server --host 127.0.0.1` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can use alphatarion server to launch the server.
frontend/Manual_Testing.md
Outdated
|
|
||
| ## Prerequisites | ||
| - Backend running: `uv run alphatrion server --host 127.0.0.1` | ||
| - Frontend running: `npm run dev` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should add introductions about how to launch the dashboard in the README.md, including Prerequisites like vite.
|
cc @dalphyx if you also want to take a look. |
|
@kerthcet thank you for your review, will work through the changes on Thursday. |
- Show full IDs in first column for all tables (Projects, Experiments, Trials, Runs); - Remove 'View xxx' action column, click ID directly to navigate; - Sidebar shows only Projects (removed Experiments and Trials); - Auto-redirect to first project's experiments on initial visit; - Users can still access Projects page to switch between projects.
|
Thanks for review, just updated the PR, please take a look.
For next PR:
|
kerthcet
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only one nit, then let's merge and optimize it step by step.
dashboard/src/pages/App.tsx
Outdated
| <div className="p-4 border-t"> | ||
| {sidebarOpen && ( | ||
| <div className="text-sm text-gray-500"> | ||
| <p>Version 0.1.0 MVP</p> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's remove the MVP here.
Also it could be good to have a dynamic version here or at least make it not a magic number , but I'm ok to leave it to future.
|
/lgtm |
|
part of #98 |
What this PR does / why we need it
What I Did
Built the initial dashboard frontend connecting to the Alphatrion GraphQL backend.
Completed Features:
Projects list page with navigation to experiments
Experiments page with Overview and List tabs (per maintainer requirement of two tables per layer)
Experiment Detail page showing experiment info and associated trials
Trial Detail page with parameters, metadata, metrics charts, and runs list
GraphQL client setup with typed queries and React Query integration
CORS configuration added to backend for frontend access
Technical Implementation:
React + TypeScript + Tailwind CSS
@tanstack/react-query for data fetching
Custom hooks for each data layer (useProjects, useExperiments, useTrials, useRuns, useTrialMetrics)
Simple SVG-based metrics visualization (no external charting library)
Manual Testing
Tested the following flows:
Projects → View Experiments → Experiment Detail → Trial Detail
Overview/List tab switching on Experiments page
Metrics chart rendering with multiple metric types (accuracy, fitness, precision, loss)
Breadcrumb navigation between pages
(See manual_testing.md)
What's Next
Short-term:
Add unit tests
Implement Trials list page (Overview + List)
Implement Runs list page (Overview + List)
Run Detail page
Improvements Identified:
Extract common components (StatusBadge, Card, Table) for reusability
Move ProjectsDashboard from App.tsx to separate component
UI polish to reduce "AI-generated" look (spacing, visual hierarchy)
Consider using a charting library (recharts) for better metrics visualization
Add loading skeletons instead of spinners
Add error boundaries