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.