How aadityaraj25/metos works
METoS is a social collaboration platform for finding people and teams, forming groups around problems, and coordinating work. Its principal workflow spans user discovery, team discovery or creation, invitations and join requests, membership, and project work in a workspace. The tree also shows profile management, connections, and real-time sockets. Sampled source confirms the app bootstrap, API routing, authentication, group management, and invitations; some frontend page-to-API and workspace details are unsampled, so those links are omitted.
Main entry points: invite.controllers.js Invite handling · app.js Express app · main.jsx Client bootstrap · group.controllers.js Group management
Components 28
Web client
- Client bootstrap
Frontend/src/main.jsx - App routing
Frontend/src/AppRouter.jsx - Auth context
Frontend/src/context/AuthContext.jsx - Socket context
Frontend/src/context/SocketContext.jsx - Product pages
Frontend/src/pages - HTTP client
Frontend/src/api/client.js
HTTP API
- Auth API
Frontend/src/api/auth.js - People API
Frontend/src/api/users.js - Groups API
Frontend/src/api/groups.js - Invitations API
Frontend/src/api/invites.js - Join requests API
Frontend/src/api/joinRequests.js - Projects API
Frontend/src/api/projects.js - Workspace API
Frontend/src/api/workspace.js - Auth routes
Backend/src/routes/auth/auth.routes.js - Group routes
Backend/src/routes/group.routes.js - Connection routes
Backend/src/routes/connection.routes.js - Join request routes
Backend/src/routes/joinRequest.routes.js
People and teams
- Authentication
Backend/src/controllers/auth.controllers.js - Group management
Backend/src/controllers/group.controllers.js - Invite handling
Backend/src/controllers/invite.controllers.js
Project work
- Workspace page
Frontend/src/pages/Workspace.jsx
Runtime and persistence
- Express app
Backend/src/app.js - Email delivery
Backend/src/utils/emailService.js - Realtime sockets
Backend/src/sockets/socket.js - User records
Backend/src/models/user.models.js - Group records
Backend/src/models/group.models.js - Invite records
Backend/src/models/invite.models.js
Other components
- Platform user
Connections 23
- Platform user → Client bootstrap: uses
- Client bootstrap → App routing: renders
- Client bootstrap → Auth context: provides auth
- Client bootstrap → Socket context: provides sockets
- App routing → Product pages: routes to
- HTTP client → Express app: sends requests
- Express app → Auth routes: mounts
- Express app → Group routes: mounts
- Express app → Connection routes: mounts
- Express app → Join request routes: mounts
- Auth routes → Authentication: dispatches
- Group routes → Group management: dispatches
- Join request routes → Invite handling
- Authentication → User records: reads and writes
- Group management → Group records: reads and writes
- Group management → User records: updates membership
- Group management → Invite records: updates invites
- Invite handling → Group records: reads and updates
- Invite handling → Invite records: reads and writes
- Invite handling → User records: looks up users
- Invite handling → Email delivery: sends invitation
- Invite handling → Realtime sockets: dispatches notification
- Product pages → Workspace page: includes