tahamajs/IE / Projects /docs /Structure.md
tahamajs's picture
|
download
raw
12.6 kB
ie-blog-platform/
├── backend/ # Java backend (custom HTTP server)
│ ├── pom.xml # Maven dependencies
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/ir/ac/ut/ece/ie/
│ │ │ │ ├── model/ # All entity classes
│ │ │ │ │ ├── User.java
│ │ │ │ │ ├── Article.java
│ │ │ │ │ ├── Comment.java
│ │ │ │ │ ├── Conversation.java
│ │ │ │ │ ├── Message.java
│ │ │ │ │ ├── Group.java
│ │ │ │ │ ├── Notification.java
│ │ │ │ │ ├── PeerReviewSubmission.java
│ │ │ │ │ ├── PeerReview.java
│ │ │ │ │ ├── Chemical.java
│ │ │ │ │ ├── Project.java
│ │ │ │ │ ├── Task.java
│ │ │ │ │ ├── ResearchObject.java
│ │ │ │ │ ├── Protocol.java
│ │ │ │ │ ├── Poll.java
│ │ │ │ │ ├── Grant.java
│ │ │ │ │ ├── GraphNode.java
│ │ │ │ │ ├── GraphEdge.java
│ │ │ │ │ └── ... (all models)
│ │ │ │ ├── repository/ # Thread‑safe in‑memory storage
│ │ │ │ │ ├── UserRepository.java
│ │ │ │ │ ├── ArticleRepository.java
│ │ │ │ │ ├── MessageRepository.java
│ │ │ │ │ ├── NotificationRepository.java
│ │ │ │ │ ├── PeerReviewRepository.java
│ │ │ │ │ ├── ChemicalRepository.java
│ │ │ │ │ ├── ProjectRepository.java
│ │ │ │ │ └── ...
│ │ │ │ ├── service/ # Business logic
│ │ │ │ │ ├── AuthService.java
│ │ │ │ │ ├── ArticleService.java
│ │ │ │ │ ├── MessageService.java
│ │ │ │ │ ├── NotificationService.java
│ │ │ │ │ ├── PeerReviewService.java
│ │ │ │ │ ├── LabInventoryService.java
│ │ │ │ │ ├── RAGService.java (LLM calls)
│ │ │ │ │ ├── GrantService.java
│ │ │ │ │ ├── GapAnalysisService.java
│ │ │ │ │ ├── ProjectService.java
│ │ │ │ │ ├── DataHubService.java
│ │ │ │ │ └── ...
│ │ │ │ ├── routing/ # Custom HTTP router
│ │ │ │ │ ├── Router.java
│ │ │ │ │ ├── Route.java (annotation)
│ │ │ │ │ └── DynamicRouterInitializer.java
│ │ │ │ ├── routes/ # All endpoint implementations
│ │ │ │ │ ├── AuthRoutes.java
│ │ │ │ │ ├── ArticleRoutes.java
│ │ │ │ │ ├── MessageRoutes.java
│ │ │ │ │ ├── GroupRoutes.java
│ │ │ │ │ ├── NotificationRoutes.java
│ │ │ │ │ ├── PeerReviewRoutes.java
│ │ │ │ │ ├── LabInventoryRoutes.java
│ │ │ │ │ ├── GrantRoutes.java
│ │ │ │ │ ├── GapAnalysisRoutes.java
│ │ │ │ │ ├── RAGRoutes.java
│ │ │ │ │ ├── ProjectRoutes.java
│ │ │ │ │ ├── DataHubRoutes.java
│ │ │ │ │ ├── PollRoutes.java
│ │ │ │ │ ├── AdminRoutes.java
│ │ │ │ │ ├── TwoFactorRoutes.java
│ │ │ │ │ ├── VoiceSettingsRoutes.java
│ │ │ │ │ ├── RecentItemsRoutes.java
│ │ │ │ │ ├── SearchRoutes.java
│ │ │ │ │ ├── RecommendationRoutes.java
│ │ │ │ │ └── ...
│ │ │ │ ├── server/ # HTTP server core
│ │ │ │ │ ├── DynamicContentServer.java
│ │ │ │ │ ├── RequestHandler.java
│ │ │ │ │ └── WebSocket/ # WebSocket manager
│ │ │ │ │ ├── WebSocketServer.java
│ │ │ │ │ └── WebSocketHandler.java
│ │ │ │ ├── security/ # Auth, rate limiting, firewall
│ │ │ │ │ ├── AuthFilter.java
│ │ │ │ │ ├── CsrfFilter.java
│ │ │ │ │ ├── RateLimiter.java
│ │ │ │ │ ├── Firewall.java
│ │ │ │ │ └── PasswordUtils.java
│ │ │ │ ├── search/ # Inverted index (messages)
│ │ │ │ │ ├── InvertedIndex.java
│ │ │ │ │ └── IndexingWorker.java
│ │ │ │ ├── recommendation/ # Graph & GNN recommenders
│ │ │ │ │ ├── HybridRecommender.java
│ │ │ │ │ ├── GNNRecommender.java
│ │ │ │ │ └── PageRank.java
│ │ │ │ ├── util/ # Helpers (JSON, file upload, TOTP)
│ │ │ │ │ ├── JsonUtils.java
│ │ │ │ │ ├── MultipartParser.java
│ │ │ │ │ ├── TotpUtil.java
│ │ │ │ │ └── ...
│ │ │ │ └── config/ # Configuration loader
│ │ │ │ ├── Config.java
│ │ │ │ └── FirewallConfig.java
│ │ │ └── resources/ # Static resources
│ │ │ ├── firewall.properties
│ │ │ ├── banned_keywords.txt
│ │ │ └── log4j2.xml
│ │ └── test/ # Unit & integration tests
│ │ ├── java/ir/ac/ut/ece/ie/
│ │ │ ├── routes/
│ │ │ ├── service/
│ │ │ └── ...
│ │ └── resources/
│ └── uploads/ # Stored files (avatars, manuscripts, etc.)
│
├── frontend/ # Vite + React frontend
│ ├── index.html
│ ├── package.json
│ ├── pnpm-lock.yaml
│ ├── tsconfig.json
│ ├── vite.config.ts
│ ├── .env # Environment variables
│ ├── public/ # Public assets
│ └── src/
│ ├── main.tsx # Entry point
│ ├── App.tsx # Root component, providers, routes
│ ├── index.css # Global styles (Tailwind)
│ ├── vite-env.d.ts
│ ├── lib/ # Core utilities
│ │ ├── api.ts # Axios instance (mock/real)
│ │ ├── auth.tsx # AuthProvider, useAuth
│ │ ├── useWebSocket.ts # WebSocket hook
│ │ ├── useSecretChat.ts # E2E encryption
│ │ ├── normalize.ts # Array normalisation
│ │ └── mockApi.ts # Mock API for offline dev
│ ├── hooks/ # All custom hooks
│ │ ├── useAuth.ts
│ │ ├── useMessaging.ts
│ │ ├── useUnifiedInbox.ts
│ │ ├── useArticle.ts
│ │ ├── useArticles.ts
│ │ ├── useDashboard.ts
│ │ ├── useNotifications.ts
│ │ ├── usePeerReview.ts
│ │ ├── useLabInventory.ts
│ │ ├── useProjectSpace.ts
│ │ ├── useCollaborativeEditor.ts
│ │ ├── useRagSystem.ts
│ │ ├── useGapAnalysis.ts
│ │ ├── useGrantAssistant.ts
│ │ ├── useDataHub.ts
│ │ ├── useVoiceAssistant.ts
│ │ ├── useDragDropOverlay.ts
│ │ └── ... (all hooks)
│ ├── components/ # Reusable UI components
│ │ ├── layout/ # MainLayout, LoadingScreen
│ │ ├── messages/ # ChatSidebar, ChatArea, MessageBubble...
│ │ ├── unified-chat/ # UnifiedInbox, BroadcastChannelView
│ │ ├── voice/ # VoiceAssistantWidget, VoiceRecorder
│ │ ├── notifications/ # SmartNotificationCenter
│ │ ├── command-palette/ # CommandPaletteProvider
│ │ ├── dashboard/ # Widgets (streak, kanban, etc.)
│ │ ├── article/ # Article components
│ │ ├── gap-analysis/ # GraphCanvas, SearchBar
│ │ ├── grant/ # GrantAssistantDashboard
│ │ ├── lab/ # LabInventoryDashboard, ChemicalFormModal
│ │ ├── peer-review/ # PeerReviewDashboard
│ │ ├── rag/ # RagAssistantPanel
│ │ ├── authoring/ # CollaborativeAuthoringStudio
│ │ ├── data-hub/ # RepositoryBrowser, ProtocolsWorkspace
│ │ ├── project/ # ProjectWorkspace
│ │ ├── genui/ # Generative UI components
│ │ ├── collaboration/ # ScientificEditor
│ │ ├── workspace/ # SmartGlassWorkspace, PanelManager
│ │ ├── social/ # LiveVideoRoom, PollWidget
│ │ ├── flow/ # FlowPreservationProvider
│ │ ├── async/ # OfflineCollaborationQueue, MultiAgentDebatePanel
│ │ └── ...
│ ├── pages/ # Route pages (each exports default)
│ │ ├── SmartGlassPage.tsx
│ │ ├── UnifiedInboxPage.tsx
│ │ ├── DashboardPage.tsx
│ │ ├── MessagesPage.tsx
│ │ ├── ArticlesPage.tsx
│ │ ├── ArticleDetailPage.tsx
│ │ ├── LabInventoryPage.tsx
│ │ ├── PeerReviewPage.tsx
│ │ ├── ResearchAssistantPage.tsx
│ │ ├── GapAnalysisPage.tsx
│ │ ├── GrantAssistantPage.tsx
│ │ ├── AuthoringStudioPage.tsx
│ │ ├── ProjectWorkspacePage.tsx
│ │ ├── NetworkingPage.tsx
│ │ ├── DataHubPage.tsx
│ │ ├── DiscoveryPage.tsx
│ │ ├── AICoScientistPage.tsx
│ │ ├── AboutPage.tsx
│ │ ├── LoginPage.tsx
│ │ ├── RegisterPage.tsx
│ │ ├── SettingsPage.tsx
│ │ ├── ProfileHubPage.tsx
│ │ ├── NotFound.tsx
│ │ └── ...
│ ├── types/ # TypeScript type definitions
│ │ ├── index.ts
│ │ ├── user.ts
│ │ ├── article.ts
│ │ ├── message.ts
│ │ ├── notification.ts
│ │ ├── peer-review.ts
│ │ ├── lab.ts
│ │ ├── project.ts
│ │ ├── rag.ts
│ │ ├── workspace.ts
│ │ └── ...
│ └── workers/ # Web Workers (e.g., rag-worker.ts)
│
├── nginx/ # Nginx production config (optional)
│ ├── nginx.conf
│ └── sites-enabled/
│ └── blog-api.conf
│
├── scripts/ # Utility scripts
│ ├── start-backend.sh
│ ├── start-frontend.sh
│ └── start-yjs-websocket.sh
│
├── firewall.properties # Shared config (symlink or copy)
├── banned_keywords.txt
├── README.md
└── .gitignore

Xet Storage Details

Size:
12.6 kB
·
Xet hash:
7770e0be7ca3e994808a88c285d85efd62876ab8cf5f614209282de6abd62e89

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