-
Provide a minimalistic dashboard to manage scraping jobs.
-
Allow users to:
- Create scraping requests
- View and manage jobs (status, retry, delete)
- Test and execute generated APIs
- Control jobs via chatbot interface
-
Keep UI clean, fast, and intuitive.
- Developers, analysts, and builders who need quick web → API conversion.
- Users comfortable with APIs but prefer a UI shortcut.
-
Sidebar (icon-only):
- Dashboard
- Chatbot
- Settings
-
Dashboard
- Create Scraping Request (form)
- Jobs List (cards)
- Job actions: Test, Retry, Delete
- Endpoint link (when ready)
-
Chatbot Panel
- Conversational assistant to create/manage jobs
-
Settings
- General preferences (placeholder, no auth)
- Form →
POST /api/v1/scraping/requests - Job immediately appears in the list (
pending). - Poll status until job becomes
ready.
- Jobs list →
GET /api/v1/scraping/jobs - Job card shows: ID, URL, status, progress, actions.
- Retry/Delete mapped to API calls.
- Test endpoint →
POST /generated/{job_id}/test - Execute endpoint →
GET /generated/{job_id} - Results shown in modal/drawer.
-
Parse commands → map to API calls.
-
Examples:
- “Create scraper for https://example.com” → new request
- “List ready jobs” → filter jobs
- “Delete job 123” → delete job
- Sidebar: left, icon-only navigation.
- Main content: form at top, job list below.
- Chatbot: right-hand panel, collapsible.
- Sans-serif font, system default.
- Base size: 16px body, larger for headers.
- Sidebar Navigation – icon buttons with tooltips.
- Scraping Request Form – URL input + description + “Add” button.
- Job Card – shows job details, progress, endpoint, and actions.
- Chatbot Panel – messages list + input field.
- Result Modal – JSON test results.
| Status | UI Treatment |
|---|---|
pending |
Text label + spinner |
analyzing |
Text label + progress bar |
generating |
Text label + progress bar |
testing |
Text label + loader |
ready |
Text label + endpoint link |
failed |
Text label + Retry button |
nexus-frontend/
├── app/
│ ├── layout.tsx # Root layout (sidebar + chatbot panel)
│ ├── page.tsx # Dashboard (default view)
│ ├── chatbot/
│ │ └── page.tsx # Chatbot standalone view
│ ├── settings/
│ │ └── page.tsx # Settings page (basic)
│ └── api/ # Next.js API routes (proxy helpers if needed)
│
├── components/
│ ├── Sidebar.tsx # Navigation sidebar
│ ├── ScrapingForm.tsx # URL + description form
│ ├── JobCard.tsx # Job display card
│ ├── JobList.tsx # Job list wrapper
│ ├── Chatbot.tsx # Chat interface
│ ├── ResultModal.tsx # JSON modal
│ └── ProgressBar.tsx # Generic progress bar
│
├── lib/
│ ├── api.ts # API helper functions (fetch jobs, create request, etc.)
│ └── chatbot.ts # NL command → API mapping
│
├── styles/
│ └── globals.css # TailwindCSS setup (minimal styling)
│
├── public/ # Icons, assets if any
│
├── package.json
├── tailwind.config.js
└── tsconfig.json- Use
fetch(built-in in Next.js) orSWRfor polling job status. - No authentication needed → direct calls to backend.
- Chatbot uses a lightweight parser (regex/keywords → API calls).