tahamajs/IE / Projects /docs /Missing.md
tahamajs's picture
|
download
raw
9.53 kB

Based on a thorough review of all frontend React code (hooks, pages, components) and the backend Java repositories and route files you provided, the following backend components are missing or incomplete. The repositories you have are excellent low‑level data access, but the service layer that orchestrates them and the route handlers that implement the actual endpoints are largely absent.

Below is the complete list of what you still need to implement to have a fully functioning backend.


1. Missing Service Classes

These services contain business logic, call repositories, and are injected into route handlers. Your route files (e.g., ArticleRoutes, AuthRoutes, MessagingRoutes) reference them – they are not implemented yet.

Service Purpose Used By
ArticleService CRUD, search, tags, likes, comments, analytics, graph recommendations ArticleRoutes, AdminRoutes
UserService User profiles, follow/unfollow, bookmarks, security (2FA, password reset), activity UserRoutes, AuthRoutes
MessageService Private messages, conversations, read status, threading, ephemeral, scheduled MessagingRoutes
GroupService Group chat, members, admins, pins, mute, messages, polls MessagingRoutes
NotificationService Create, list, mark read, delete notifications (also SSE broadcasting) NotificationRoutes
AnalyticsService User and article analytics (views over time, top articles, platform stats) AnalyticsRoutes
GapAnalysisService Graph nodes/edges CRUD, AI‑powered gap detection GapAnalysisRoutes
GrantService Grant deadlines, user grants, AI draft generation GrantRoutes
ProjectService Projects, members, tasks (Kanban), outputs ProjectRoutes
DataHubService Research objects, protocols, preregistrations (CRUD, fork, submit) DataHubRoutes
PollService Polls/quizzes, voting, results, templates, analytics PollRoutes
EventService Events (create, RSVP, reminders, iCal export, recurring) EventRoutes
LabInventoryService Chemicals, locations, alerts, compatibility, statistics LabInventoryRoutes
PeerReviewService Submissions, reviews, reviewer credentials, assignment PeerReviewRoutes
WorkspaceService SmartGlass panels, presets, sharing, backup, import/export WorkspaceRoutes
VoiceSettingsService Voice settings (profiles, language overrides, wake words) VoiceSettingsRoutes
RagService RAG chat, document indexing, AI predictions, conversation history RagRoutes
PasswordResetService Security question retrieval and password reset PasswordResetRoutes
TwoFactorService TOTP secret generation, QR code, verification, backup codes AuthRoutes
SearchService Advanced message search (full‑text) MessagingRoutes
MediaService Upload, retrieve, delete media attachments MessagingRoutes
RateLimitService Token‑bucket rate limiting (already has TokenBucket class but no service) MessagingRoutes, AuthRoutes
ContentModeration Censor profanity, detect offensive language MessagingRoutes
CitationGraphService Build citation graph, provide co‑citation and PageRank recommendations ArticleRoutes
GNNRecommendationService Graph Neural Network based recommendations (personalised feed) GNNRecommendationRoutes
RecommendationService Traditional collaborative filtering / content‑based feed RecommendationRoutes
SseManager Server‑Sent Events manager for real‑time notifications SseRoutes, NotificationService

Note: You have many repositories (ArticleRepository, UserRepository, etc.). The services above would use them.


2. Missing Route Handlers (Endpoints)

Even though you have many route files (e.g., ArticleRoutes, AuthRoutes), the following endpoints are not yet implemented (from our earlier frontend API audit):

Endpoint Frontend Feature Required Service
GET /api/recent-items Command palette UserService (or a dedicated RecentItemService)
GET /api/unified-inbox Unified inbox UnifiedInboxService (aggregate messages from multiple sources)
GET /api/discovery/digest Discovery digest preference NotificationService (or UserService)
GET /api/discovery/recommendations Discovery feed (alias) RecommendationService (can redirect to /recommendations/feed)
GET /api/users/me/liked-articles Liked articles page ArticleService
GET /api/conversations/{username}/last-read Messaging last read ID MessageService (alias to /read-status)
GET /api/conversations/{username}/keys Secret chat key exchange EncryptionKeyRepository (already has repo, but no endpoint)
GET /api/groups/{groupId}/pinned Group pinned messages (alias) GroupService (currently /pins exists)
Collections (all endpoints) Paper collections CollectionService + new CollectionRepository (not provided)
Reference Manager (all endpoints) Citations, DOI/BibTeX import ReferenceService + new ReferenceRepository
Preprint (all endpoints) Preprint screening & submission PreprintService + PreprintRepository
Provenance (all endpoints) Trust / audit log ProvenanceService + ProvenanceEventRepository
Export (POST /ai/export, POST /documents/{docId}/export) Document export (PDF, DOCX, LaTeX) ExportService (calls external converters)

Additionally, the following complete route groups are completely missing (no route files found):

  • Paper collections – CRUD for collections and papers inside them.
  • Reference manager – endpoints for /api/documents/{docId}/references and /api/references/connect-*.
  • Preprint submission – /api/preprints/screen and /api/preprints/submit.
  • Provenance – /api/provenance/{entityType}/{entityId} and /verify.

3. Missing Model Classes (Already provided in previous answer)

You already received the missing model classes for:

  • Paper collections (PaperCollection, CollectionPaper)
  • Reference manager (ManagedReference, ReferenceGroup)
  • Preprint (Preprint, ScreeningResult)
  • Provenance (ProvenanceEvent)
  • Unified inbox (UnifiedMessage, BroadcastChannel, BroadcastPost, PaperQuestion, PaperAnswer)
  • Recent items (RecentItem)
  • Workspace (WorkspacePanel, WorkspacePreset)
  • Pre‑key encryption (PreKey, SignedPreKey)
  • Notification settings (NotificationSettings)
  • Export options (ExportOptions)

If you haven't created them yet, you must add those .java files.


4. Missing Utility / Helper Classes

Class Purpose Where Used
JsonUtils JSON serialisation (you have it in util package?) Every route handler
TokenUtil Extract JWT from Authorization header AuthUtils
SessionManager Manage user sessions, tokens, CSRF AuthUtils, AuthRoutes
WebSocketManager Push real‑time events to connected clients MessagingRoutes, NotificationService
RateLimitService (wrapper for TokenBucket) Apply rate limits per IP/user MessagingRoutes
ContentModeration Censor profanity (e.g., using external API) MessagingRoutes
MailService Send verification emails, password reset emails UserService, AuthRoutes
FileStorageService Save uploaded files (avatars, manuscripts, research objects) UserService, PeerReviewService, DataHubService
CitationGenerator Convert article metadata to APA/MLA/BibTeX ArticleService
ExportConverter Convert HTML to PDF/DOCX/LaTeX ExportService

Many of these are referenced in your route files but not implemented.


5. Summary of What You Must Build Now

Category Items Priority
Services All 20+ services listed above High
Route Handlers Missing endpoints (collections, references, preprints, provenance, etc.) High
Model Classes Already provided – add to model package Medium
Utility Classes SessionManager, WebSocketManager, MailService, FileStorageService, etc. Medium
Database Schema Create tables matching all repository schemas (SQL scripts) High
Authentication / Security JWT generation, CSRF, password hashing (BCrypt) High
Real‑time WebSocket Implement WebSocketManager and integrate with MessageService, GroupService Medium

✅ Recommended Next Steps

  1. Implement the core services first: UserService, ArticleService, MessageService, GroupService. These are used by many routes.
  2. Add missing route handlers for the endpoints listed above (start with /api/recent-items, /api/unified-inbox, and collections).
  3. Create the missing model classes (you already have the code).
  4. Implement SessionManager and WebSocketManager to enable real‑time messaging.
  5. Write the SQL schema for all repositories (tables for users, articles, messages, groups, etc.).

Once these are in place, the frontend will have zero missing API calls and the application will be fully functional.

Would you like me to provide Java skeleton code for any of these services or route handlers?

Xet Storage Details

Size:
9.53 kB
·
Xet hash:
fced69a8005110d4524534cf9b037560e30b53345cbbaf092dce631023c28905

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