How derek-aman/socialmedia works
Networq is a professional social network. Users authenticate, manage profiles and connections, publish and engage with posts, and exchange messages; the backend routes requests to controllers and persists domain data, with Redis-backed caching and Socket.IO for live messaging. The frontend includes dashboard, discovery, profile, connection, login, and messaging experiences, plus Redux state. Backend routing, controller/model use, cache access, and socket behavior are supported by excerpts; frontend-to-backend request wiring is not shown, so those links are omitted.
Main entry points: server.js HTTP server · user.controller.js User and profile logic · user.routes.js User routes · posts.routes.js Post routes
Components 29
Web application
- Login
frontend/src/pages/login/index.jsx - Dashboard
frontend/src/pages/dashboard/index.jsx - Discover
frontend/src/pages/discover/index.jsx - Connections
frontend/src/pages/my_connections/index.jsx - Profile views
frontend/src/pages/profile/index.jsx - Public profile
frontend/src/pages/view_profile/[username].jsx - Message inbox
frontend/src/pages/messages/index.jsx - Redux state
frontend/src/config/redux/store.js
Identity and network
- User routes
backend/routes/user.routes.js - User and profile logic
backend/controllers/user.controller.js - User records
backend/models/user.model.js - Profile records
backend/models/profile.model.js - Connection requests
backend/models/connections.model.js
Posts and engagement
- Post routes
backend/routes/posts.routes.js - Post operations
backend/controllers/posts.controller.js - Posts
backend/models/posts.model.js - Comments
backend/models/comments.model.js
Messaging
- Message routes
backend/routes/message.routes.js - Message operations
backend/controllers/message.controller.js - Messages
backend/models/messages.model.js - Conversations
backend/models/conversation.model.js - Live socket service
backend/socket.js
Backend platform
- HTTP server
backend/server.js - JWT authentication
backend/middleware/auth.middleware.js - Rate limiting
backend/middleware/rateLimiter.js - Cache helpers
backend/redis/safeCache.js - Redis cache
backend/redis/redisClient.js
Other components
- Network user
- MongoDB
Connections 33
- Network user → Login: uses
- Network user → Dashboard: uses
- Network user → Discover: uses
- Network user → Connections: uses
- Network user → Profile views: uses
- Network user → Public profile: uses
- Network user → Message inbox: uses
- HTTP server → User routes: mounts
backend/server.js - HTTP server → Post routes: mounts
backend/server.js - HTTP server → Message routes: mounts
backend/server.js - HTTP server → Live socket service: initializes
backend/server.js - HTTP server → MongoDB: connects
backend/server.js - User routes → User and profile logic: routes to
backend/routes/user.routes.js - User routes → JWT authentication: protects
backend/routes/user.routes.js - User routes → Rate limiting: limits
backend/routes/user.routes.js - User and profile logic → User records: reads and writes
backend/controllers/user.controller.js - User and profile logic → Profile records: reads and writes
backend/controllers/user.controller.js - User and profile logic → Connection requests: manages
backend/controllers/user.controller.js - User and profile logic → Cache helpers: uses cache
backend/controllers/user.controller.js - Post routes → Post operations: routes to
backend/routes/posts.routes.js - Post routes → JWT authentication: protects
backend/routes/posts.routes.js - Post routes → Rate limiting: limits
backend/routes/posts.routes.js - Post operations → Posts: reads and writes
backend/controllers/posts.controller.js - Post operations → Comments: manages
backend/controllers/posts.controller.js - Post operations → Cache helpers: uses cache
backend/controllers/posts.controller.js - Message routes → Message operations: routes to
backend/routes/message.routes.js - Message routes → JWT authentication: protects
backend/routes/message.routes.js - Message routes → Rate limiting: limits
backend/routes/message.routes.js - Message operations → Messages: creates and reads
backend/controllers/message.controller.js - Message operations → Conversations: updates and reads
backend/controllers/message.controller.js - Message operations → Live socket service: emits message
backend/controllers/message.controller.js - Cache helpers → Redis cache: reads and writes
backend/redis/safeCache.js - Rate limiting → Redis cache: counts requests
backend/middleware/rateLimiter.js