How kotnalasanskriti/echo works
ECHO is a platform for innovators and investors to develop and share ideas, discover one another, build connections, and message. The main backend workflow enters through authenticated API routes and reaches controllers that manage profiles, ideas, analysis, connections, and conversations. Innovator and investor interface modules are also present, but their runtime calls are not shown in the excerpts; those capabilities are represented without inferred links. The source index supports several backend dependencies; unsampled route and controller details are not expanded.
Main entry points: server.js API Server · authMiddleware.js Authentication · ideaRoutes.js Idea Routes · messageController.js Conversations and Messages
Components 30
Role Interfaces
- Innovator Interface
- Investor Interface
API and Identity
- User Routes
backend/routes/userRoutes.js - Authentication
backend/middleware/authMiddleware.js - User Accounts
backend/controllers/userController.js - User Records
backend/models/User.js - API Server
backend/server.js - MongoDB Connection
backend/config/db.js
Ideas and Profiles
- Idea Routes
backend/routes/ideaRoutes.js - Idea Management
backend/controllers/ideaController.js - Idea Records
backend/models/Idea.js - Idea Analysis
backend/controllers/ideaAnalysisController.js - Analysis Service
backend/services/ideaAnalyzer.js - Analysis Records
backend/models/IdeaAnalysis.js - AI Assistant
backend/controllers/assistantController.js - Innovator Profile Routes
backend/routes/innovatorProfileRoutes.js - Profile Management
backend/controllers/innovatorProfileController.js - Innovator Profiles
backend/models/InnovatorProfile.js - Profile Photos
backend/controllers/profilePhotoController.js - Photo Storage
backend/config/gridfs.js
Connections and Messaging
- Connection Routes
backend/routes/connectionRoutes.js - Connections
backend/controllers/connectionController.js - Connection Records
backend/models/Connection.js - Interest Routes
backend/routes/interestRoutes.js - Idea Interests
backend/controllers/interestController.js - Interest Records
backend/models/Interest.js - Message Routes
backend/routes/messageRoutes.js - Conversations and Messages
backend/controllers/messageController.js - Conversation Records
backend/models/Conversation.js - Message Records
backend/models/Message.js
Connections 41
- API Server → MongoDB Connection: connects
backend/server.js - API Server → User Routes: mounts
backend/server.js - API Server → Innovator Profile Routes: mounts
backend/server.js - API Server → Idea Routes: mounts
backend/server.js - API Server → Message Routes: mounts
backend/server.js - API Server → Connection Routes: mounts
backend/server.js - API Server → Interest Routes: mounts
backend/server.js - API Server → Photo Storage: initializes
backend/server.js - User Routes → Authentication: protects routes
backend/routes/userRoutes.js - User Routes → User Accounts: dispatches
backend/routes/userRoutes.js - Authentication → User Records: checks account
backend/middleware/authMiddleware.js - User Accounts → User Records: manages
backend/controllers/userController.js - Idea Routes → Authentication: protects routes
backend/routes/ideaRoutes.js - Idea Routes → Idea Management: dispatches
backend/routes/ideaRoutes.js - Idea Routes → Idea Analysis: dispatches
backend/routes/ideaRoutes.js - Idea Routes → AI Assistant: dispatches
backend/routes/ideaRoutes.js - Idea Management → Idea Records: reads and writes
backend/controllers/ideaController.js - Idea Analysis → Idea Records: loads idea
backend/controllers/ideaAnalysisController.js - Idea Analysis → Analysis Service: requests analysis
backend/controllers/ideaAnalysisController.js - Idea Analysis → Analysis Records: reads and writes
backend/controllers/ideaAnalysisController.js - Innovator Profile Routes → Authentication: protects routes
backend/routes/innovatorProfileRoutes.js - Innovator Profile Routes → Profile Management: dispatches
backend/routes/innovatorProfileRoutes.js - Innovator Profile Routes → Profile Photos: dispatches
backend/routes/innovatorProfileRoutes.js - Profile Management → User Records: reads account
backend/controllers/innovatorProfileController.js - Profile Management → Innovator Profiles: manages profile
backend/controllers/innovatorProfileController.js - Profile Photos → Innovator Profiles: updates profile
backend/controllers/profilePhotoController.js - Profile Photos → Photo Storage: stores photos
backend/controllers/profilePhotoController.js - Connection Routes → Authentication: protects routes
backend/routes/connectionRoutes.js - Connection Routes → Connections: dispatches
backend/routes/connectionRoutes.js - Connections → User Records: discovers users
backend/controllers/connectionController.js - Connections → Connection Records: manages requests
backend/controllers/connectionController.js - Interest Routes → Authentication: protects routes
backend/routes/interestRoutes.js - Interest Routes → Idea Interests: dispatches
backend/routes/interestRoutes.js - Idea Interests → Interest Records: manages interests
backend/controllers/interestController.js - Idea Interests → Idea Records: looks up ideas
backend/controllers/interestController.js - Message Routes → Authentication: protects routes
backend/routes/messageRoutes.js - Message Routes → Conversations and Messages: dispatches
backend/routes/messageRoutes.js - Conversations and Messages → Connection Records: checks connection
backend/controllers/messageController.js - Conversations and Messages → User Records: checks recipient
backend/controllers/messageController.js - Conversations and Messages → Conversation Records: manages conversations
backend/controllers/messageController.js - Conversations and Messages → Message Records: manages messages
backend/controllers/messageController.js