tahamajs/IE / Projects /docs /FrontMissingComponents.md
tahamajs's picture
|
download
raw
17.3 kB
> **Legend:**
> 🟢 = Already fully implemented (works)
> 🟡 = Partially implemented (stubs / missing integration)
> 🔴 = Not implemented (no UI or hook)
---
## 1. **Paper Collections** – 🔴
| Frontend Component | Status | Needed Work |
|--------------------|--------|--------------|
| `CollectionsPage.tsx` | 🔴 Does not exist | Create a page that lists user’s collections (grid/list). |
| `CollectionDetailPage.tsx` | 🔴 Does not exist | Page to view a single collection (papers inside). |
| `AddToCollectionModal.tsx` | 🟡 Partial (only in `usePaperCollections` hook, no UI) | Build modal that appears when user clicks “Save to collection” on an article. |
| `CollectionsSidebar.tsx` | 🔴 | Optional sidebar showing collections (like bookmarks). |
| **Integration** | 🟡 Hook `usePaperCollections` exists but never used | Wire the hook into `ArticlesPage` and `ArticleDetailPage` (add “Save to collection” button). |
> **Backend endpoints needed (you said you have them):**
> `GET /api/collections`, `POST /api/collections`, `DELETE /api/collections/{id}`, `POST /api/collections/{id}/papers`, `DELETE /api/collections/{id}/papers/{paperId}`
---
## 2. **Reference Manager** – 🔴
| Frontend Component | Status | Needed Work |
|--------------------|--------|--------------|
| `ReferenceManagerPage.tsx` | 🔴 Does not exist | Create a full page for managing references (list, add, remove). |
| `ReferenceImportModal.tsx` | 🔴 | Modal to import by DOI, BibTeX, Zotero, Mendeley. |
| `ReferencePicker.tsx` | 🔴 | Component that appears inside the rich text editor to insert citations. |
| **Integration** | 🟡 Hook `useReferenceManager` exists but not used | Wire into `CollaborativeEditor` and `ScientificEditor`. |
> **Backend endpoints needed:**
> `GET /api/documents/{docId}/references`, `POST /api/documents/{docId}/references`, `PUT /api/documents/{docId}/references/{refId}`, `DELETE /api/documents/{docId}/references/{refId}`, `POST /api/references/connect-zotero`, `POST /api/references/connect-mendeley`
---
## 3. **Preprint Submission** – 🔴
| Frontend Component | Status | Needed Work |
|--------------------|--------|--------------|
| `PreprintSubmissionPage.tsx` | 🟡 Exists but is a stub (`PreprintSubmissionPage` only imports but no UI) | Build full submission form (title, abstract, authors, manuscript upload, cover letter). |
| `PreprintScreeningResult.tsx` | 🔴 | Component to show AI screening feedback before final submission. |
| `PreprintListPage.tsx` | 🔴 | List user’s submitted preprints (with status). |
| **Integration** | 🟡 Hook `usePreprintSubmission` exists but not used | Wire into the page and add success/error handling. |
> **Backend endpoints needed:**
> `POST /api/preprints/screen`, `POST /api/preprints/submit`
---
## 4. **Provenance / Trust (Verifiable Trail)** – 🔴
| Frontend Component | Status | Needed Work |
|--------------------|--------|--------------|
| `ProvenanceTimeline.tsx` | 🟡 Component exists? (we saw `ProvenanceTimeline` in `trust/` folder but not fully integrated) | Create a modal or sidebar that shows the audit trail (events: creation, edit, share, export). |
| `ProvenanceBadge.tsx` | 🔴 | Small badge on articles/documents indicating verifiable chain. |
| `VerifyChainButton.tsx` | 🔴 | Button that calls `verifyChain` and displays result. |
| **Integration** | 🟡 Hook `useProvenance` exists but not used anywhere | Call it for articles, research objects, or messages. |
> **Backend endpoints needed:**
> `GET /api/provenance/{entityType}/{entityId}`, `POST /api/provenance/{entityType}/{entityId}/verify`
---
## 5. **Unified Inbox** – 🟡 (partial)
| Frontend Component | Status | Needed Work |
|--------------------|--------|--------------|
| `UnifiedInboxPage.tsx` | 🟡 Page exists but uses `useUnifiedInbox` which previously lacked backend | Now that backend exists, **test and fix** any data mapping errors. |
| `InboxFilterBar.tsx` | 🟡 Not imported correctly (removed from earlier fix) | Re‑add filter UI (by origin, priority, date). |
| `BroadcastChannelView.tsx` | 🟡 Exists | Ensure it fetches and displays broadcast channels/posts. |
| **Integration** | 🟡 Hook ready | No major code changes – just verify. |
> **Backend endpoint needed:**
> `GET /api/unified-inbox` – now present.
---
## 6. **Recent Items (Command Palette)** – 🟡
| Frontend Component | Status | Needed Work |
|--------------------|--------|--------------|
| `App.tsx` fetches `/api/recent-items` | 🔴 This fetch is commented or missing (we removed mock) | Uncomment / implement the fetch in `AppContent` (inside `useEffect`). |
| `usePredictiveActions` | 🟡 Works | No change. |
> **Backend endpoint needed:**
> `GET /api/recent-items` – you must implement it (returns `{ papers: [], contacts: [] }`).
---
## 7. **Global Search Modal** – 🟡
| Frontend Component | Status | Needed Work |
|--------------------|--------|--------------|
| `GlobalSearchModal.tsx` | 🟡 Exists | It currently receives `chats` but does not search messages. |
| **Integration** | 🟡 | The modal should call `/api/conversations/search` (private) and `/api/groups/{groupId}/search` (groups) – backend exists. |
| **Search results UI** | 🟡 | Show message previews with highlight. |
> **Backend endpoints exist:**
> `GET /api/conversations/search`, `GET /api/groups/{groupId}/search`, `GET /api/conversations/search/advanced`.
---
## 8. **Scheduled Messages UI** – 🟡
| Frontend Component | Status | Needed Work |
|--------------------|--------|--------------|
| `ScheduleModal.tsx` | 🟡 Exists | Already integrated in `ChatArea`? Actually, `ChatArea` has a `ScheduleModal` prop but not yet rendered. |
| `ScheduledMessagesPanel.tsx` | 🟡 Exists | Needs a button in `MessagesPage` to open it (we added a clock icon, but need to wire). |
| **Backend integration** | 🟡 `useMessaging` returns `scheduleMessage` and `showScheduledPanel` | Ensure the modal calls `scheduleMessage` and the panel loads scheduled messages. |
> **Backend endpoints exist:**
> `GET /api/messages/scheduled`, `POST /api/conversations/{username}/schedule`, `DELETE /api/messages/scheduled/{messageId}`.
---
## 9. **User Liked Articles** – 🟡
| Frontend Component | Status | Needed Work |
|--------------------|--------|--------------|
| `LikedArticlesPage.tsx` | 🟡 Exists | It calls `api.get("/users/me/liked-articles")` – but backend has only `/users/{username}/liked-articles`. |
| **Fix** | 🔴 | Change the hook/page to call `/users/${currentUsername}/liked-articles` or add an alias on backend. |
---
## 10. **Export (PDF / DOCX / LaTeX)** – 🔴
| Frontend Component | Status | Needed Work |
|--------------------|--------|--------------|
| `SubmissionExportPanel.tsx` | 🟡 Exists (in authoring) | It calls `useSubmissionExport` which expects backend `POST /ai/export`. |
| **Backend** | ❌ Not yet (you said you made backend complete – but earlier export endpoints were missing) | Implement `POST /api/ai/export` that converts HTML to PDF/DOCX/LaTeX. |
| **UI in document editor** | 🟡 Already has export button | Once backend ready, it will work. |
> **Backend endpoints needed:**
> `POST /api/ai/export`, `POST /api/documents/{docId}/export`.
---
## 11. **Collections & References in Rich Editor** – 🔴
| Feature | Needed Work |
|---------|--------------|
| Insert citation from reference manager | Add a button in `ScientificEditor` toolbar that opens `ReferencePicker`. |
| Insert collection link | Allow linking to a collection inside the editor. |
---
## 12. **Admin Panel Enhancements** – 🟡
| Feature | Status |
|---------|--------|
| User management (list, delete) | 🟡 Exists in `AdminPage` but styling/table missing? |
| Article management (list, delete) | 🟡 Exists. |
| RAG document management (list, delete) | 🟡 Exists (call `/api/admin/rag/documents`). |
| Notification stats | 🟡 Exists (`/api/admin/notifications/stats`). |
No major new code – just verify.
---
## 13. **Progressive Web App (PWA) / Offline Support** – 🔴 (optional)
| Feature | Needed Work |
|---------|--------------|
| Service worker | Not implemented. |
| `OfflineCollaborationQueue` component | 🟡 Exists but never used – needs to be integrated into `ChatArea` or global layout. |
---
## ✅ **Summary of What You Need to Build on Frontend**
| Priority | Feature | Deliverable |
|----------|---------|--------------|
| **High** | **Unified Inbox** | Test and fix any issues; add missing filter UI. |
| **High** | **Paper Collections** | Create `CollectionsPage`, `AddToCollectionModal`, and integrate with article pages. |
| **High** | **Reference Manager** | Create `ReferenceManagerPage`, import modal, citation picker in editor. |
| **High** | **Preprint Submission** | Complete `PreprintSubmissionPage` with full form and screening. |
| **High** | **Recent Items** | Implement `GET /api/recent-items` on backend (if not) and wire in `App`. |
| **Medium** | **Provenance** | Add `ProvenanceTimeline` component to article/view pages. |
| **Medium** | **Scheduled Messages UI** | Ensure `ScheduleModal` and `ScheduledMessagesPanel` work. |
| **Medium** | **User Liked Articles** | Fix endpoint call. |
| **Low** | **Export** | Implement backend export – frontend already ready. |
| **Low** | **Global Search** | Wire modal to search endpoints. |
| **Low** | **PWA / Offline** | Optional. |
---
**Final note:**
The frontend **hooks** for all these features are already written. You only need to **create the missing UI pages/components** and **wire them into the existing app** (routes, navigation, buttons). Once you do that, your frontend will be 100% complete against your backend API.
---
## ✅ **Fully Implemented Frontend (Production‑Ready)**
These features have working hooks, components, and pages; they only require backend endpoints (which you now have).
| Feature Area | Frontend Components / Hooks | Status |
|--------------|----------------------------|--------|
| **Authentication & User** | `useAuth`, `LoginPage`, `RegisterPage`, `useRegister`, `usePasswordReset`, `useProfile`, `usePublicProfile`, `ProfileModal`, `IdentityVerificationPanel` | ✅ |
| **Follow System** | `usePublicProfile`, `useRecommendations` (suggested users), `FollowersPage`, `FollowingPage` | ✅ |
| **Articles (CRUD, search, comments)** | `useArticle`, `useArticles`, `useSearch`, `ArticlesPage`, `ArticleDetailPage`, `CreateArticlePage`, `ArticleBody`, `CommentSection` | ✅ |
| **Messaging (private & group)** | `useMessaging`, `ChatSidebar`, `ChatArea`, `MessageBubble`, `GroupInfoPanel`, `GroupMembersModal`, `GroupManagementModal`, `VoiceRecorder`, `PollBubble`, `MentionInput`, `VideoCallModal` | ✅ |
| **Real‑time WebSocket** | `useWebSocket`, `useSignaling`, `WebSocketManager` (internal) | ✅ |
| **Notifications** | `SmartNotificationCenter`, `NotificationDropdown`, `useNotifications` | ✅ |
| **Recommendations & Discovery** | `useRecommendations`, `useRecommendationFeed`, `RecommendationsFeed`, `TrendingArticles`, `DiscoveryFeedWidget` | ✅ |
| **RAG Assistant** | `useRagSystem`, `RagAssistantPanel`, `RagDocumentUpload`, `RagCitationBlock` | ✅ |
| **Lab Inventory** | `useLabInventory`, `LabInventoryDashboard`, `ChemicalFormModal`, `BarcodeScannerModal`, `NFPA704Diamond`, `ChemicalDetailPanel` | ✅ |
| **Peer Review** | `usePeerReview`, `PeerReviewDashboard`, `ReviewForm`, `ReviewerCredentialsForm` | ✅ |
| **Gap Analysis** | `useGapAnalysis`, `GapAnalysisDashboard`, `KnowledgeGraphCanvas`, `GraphSearchBar`, `GraphLegend` | ✅ |
| **Projects & Tasks** | `useProjectSpace`, `useProjectTaskManager`, `ProjectWorkspacePage`, `ProjectMembersPanel`, `ProjectTasksPanel`, `ProjectReferenceLibrary` | ✅ |
| **Data Hub (Protocols, Preregistrations)** | `useProtocolsWorkspace`, `usePreregistration`, `useResearchObjectRepository`, `ProtocolsWorkspace`, `PreregistrationForm`, `ResearchObjectList` | ✅ |
| **Events** | `useEventHosting`, `EventPage`, `EventCard`, `ActivityFeed` | ✅ |
| **Workspace (SmartGlass)** | `useSmartGlassWorkspace`, `SmartGlassWorkspace`, `PanelManager`, `WebBrowserPanel` | ✅ |
| **Voice Assistant & Settings** | `useVoiceAssistant`, `VoiceAssistantWidget`, `VoiceSettingsModal`, `VoiceCommandHint`, `VoiceTranscriptPanel`, `VoiceMessageButton` | ✅ |
| **Admin Dashboard** | `AdminPage` (stats, users, articles, activity, RAG docs) | ✅ |
| **Analytics** | `usePaperAnalytics`, `AnalyticsPage`, `ViewsChart`, `StatsCards` | ✅ |
| **Polls & Quizzes** | `usePoll`, `PollBubble`, `PollCreateModal`, `PollResults` | ✅ |
| **Two‑Factor Authentication** | `useSecuritySettings`, `TwoFactorSetupModal` | ✅ |
| **Export (HTML only)** | `SubmissionExportPanel` (calls backend, works if backend ready) | ✅ |
| **Command Palette** | `CommandPaletteProvider`, `usePredictiveActions`, `CommandPalette` | ✅ |
| **Offline Queue (basic)** | `useOfflineSync`, `OfflineCollaborationQueue` component | ✅ (component exists but not integrated everywhere) |
---
## 🟡 **Partially Implemented / Needs Integration**
These features have the hooks and some UI, but are not fully wired into the app or lack certain components.
| Feature | Status | Needed Work |
|---------|--------|--------------|
| **Paper Collections** | 🟡 Hook `usePaperCollections` exists; no UI page | Create `CollectionsPage`, `CollectionDetailPage`, `AddToCollectionModal`. Integrate with article pages (add “Save to collection” button). |
| **Reference Manager** | 🟡 Hook `useReferenceManager` exists; no UI | Build `ReferenceManagerPage`, `ReferenceImportModal` (DOI/BibTeX/Zotero), `ReferencePicker` for rich editor. |
| **Preprint Submission** | 🟡 `PreprintSubmissionPage` exists but is a stub | Complete the submission form (title, abstract, authors, manuscript upload, cover letter). Add screening feedback UI. |
| **Provenance / Trust** | 🟡 Hook `useProvenance` exists; `ProvenanceTimeline` component present | Integrate timeline into article/detail pages. Add “Verify chain” button. |
| **Unified Inbox** | 🟡 `UnifiedInboxPage` and `useUnifiedInbox` exist | Test and fix data mapping. Add missing filter UI (by origin, priority, date). |
| **Recent Items (Command Palette)** | 🟡 `App.tsx` fetches `/api/recent-items` but endpoint may be missing | Ensure backend returns `{ papers: [], contacts: [] }`. Uncomment fetch in `AppContent`. |
| **Global Search Modal** | 🟡 `GlobalSearchModal` exists, but not wired to search endpoints | Hook the modal to call `/api/conversations/search` (private) and `/api/groups/{groupId}/search`. Display message previews. |
| **Scheduled Messages** | 🟡 `ScheduleModal` and `ScheduledMessagesPanel` exist, not yet triggered | Add buttons in `MessagesPage` to open these modals. Ensure `useMessaging.scheduleMessage` is called. |
| **User Liked Articles** | 🟡 `LikedArticlesPage` exists; calls wrong endpoint | Change endpoint to `/api/users/${currentUsername}/liked-articles` or add backend alias. |
| **Collections & References in Editor** | 🟡 No UI in `ScientificEditor` toolbar | Add buttons to insert citations or collection links. |
| **PWA / Offline Support** | 🟡 `OfflineCollaborationQueue` component exists but not used | Integrate queue into `ChatArea` or global layout. Add service worker (optional). |
---
## 🔴 **Missing Frontend Components (Not Yet Built)**
These features have **no UI** at all – only backend endpoints.
| Feature | Missing Components |
|---------|---------------------|
| **Paper Collections UI** | `CollectionsPage.tsx`, `CollectionDetailPage.tsx`, `AddToCollectionModal.tsx` |
| **Reference Manager UI** | `ReferenceManagerPage.tsx`, `ReferenceImportModal.tsx`, `ReferencePicker.tsx` |
| **Preprint Submission UI** | Full `PreprintSubmissionPage.tsx` (complete form), `ScreeningResultCard.tsx` |
| **Provenance UI** | No dedicated page; need to embed `ProvenanceTimeline` in article/view pages |
| **Unified Inbox Filters** | Missing filter bar (`InboxFilterBar.tsx`) – we removed it earlier; need to re‑add. |
| **Scheduled Messages UI** | Buttons in `MessagesPage` and `ChatArea` to open modals; currently not rendered. |
| **Global Search UI** | No search results page; modal only shows chats but not messages. |
| **Admin Panel Enhancements** | User management table, article management table (stubs exist but not styled). |
---
## 📋 **Final Checklist – What You Must Build**
| # | Task | Priority |
|---|------|----------|
| 1 | **Create `CollectionsPage`** and integrate with article pages | High |
| 2 | **Create `ReferenceManagerPage`** and citation picker in editor | High |
| 3 | **Complete `PreprintSubmissionPage`** with full form | High |
| 4 | **Add provenance timeline** to article detail page | Medium |
| 5 | **Fix `LikedArticlesPage` endpoint** | Medium |
| 6 | **Wire scheduled messages UI** (buttons, modals) | Medium |
| 7 | **Implement global search** (hook to backend) | Medium |
| 8 | **Add missing filters to Unified Inbox** | Low |
| 9 | **Add “Save to collection” button** on article cards | Low |
| 10 | **Integrate offline queue** into chat | Optional |

Xet Storage Details

Size:
17.3 kB
·
Xet hash:
e52ddc0bfec4620466f48e9e9e5775bd039438d6049b1027db69cb84954152b8

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.