# iambuzzz/devtinder architecture

> Architecture diagram of the GitHub repository iambuzzz/devtinder, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/iambuzzz/devtinder
- Repository: https://github.com/iambuzzz/devtinder

## Overview

DevTinder is a developer-connection social platform. Its main user journey is account access and profile setup, discovering developers, sending and reviewing connection requests, then chatting with accepted connections; premium purchase is a separate monetization path. The graph also includes documented email, scheduling, and media capabilities. Backend route and integration links are grounded in sampled route code or README claims; unsampled frontend API wiring and background-job internals are not inferred.

Main entry points: [`Frontend/src/App.jsx`](https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/App.jsx) (App routes), [`Backend/src/models/user.js`](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/models/user.js) (User records), [`Backend/src/middlewares/auth.js`](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/middlewares/auth.js) (JWT authorization), [`Backend/src/routes/profileRouter.js`](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/profileRouter.js) (Profile management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web client"]
  node_app["App routes<br/>[App.jsx]"]
  node_feed["Developer feed<br/>[Feed.jsx]"]
  node_requests["Connection requests<br/>[RequestsFeed.jsx]"]
  node_connections_ui["Connections list<br/>[Connections.jsx]"]
  node_chat_ui["Chat views<br/>[Chat.jsx]"]
  node_premium_ui["Premium page<br/>[PremiumPage.jsx]"]
end

subgraph group_identity["Identity and profiles"]
  node_auth_routes["Signup and login<br/>[authRouter.js]"]
  node_auth_middleware["JWT authorization<br/>[auth.js]"]
  node_profile_routes["Profile management<br/>[profileRouter.js]"]
  node_user_model["User records<br/>[user.js]"]
  node_validation["Input validation<br/>[validate.js]"]
  node_cloudinary_util["Photo uploads<br/>[cloudinary.js]"]
end

subgraph group_connections["Discovery and messaging"]
  node_request_routes["Request handling<br/>[requestRouter.js]"]
  node_request_model["Connection requests"]
  node_chat_routes["Chat API<br/>[chatRouter.js]"]
  node_chat_model["Chat records<br/>[chat.js]"]
  node_socket_service["Live events<br/>[socket.js]"]
end

subgraph group_monetization["Premium payments"]
  node_payment_routes["Payment handling<br/>[paymentRouter.js]"]
  node_payment_model["Payment records<br/>[payment.js]"]
  node_razorpay_util["Razorpay client<br/>[razorpay.js]"]
end

subgraph group_operations["Background services"]
  node_mail_queue["Email queue<br/>[mailQueue.js]"]
  node_email_sender["Email sending<br/>[sendEmail.js]"]
  node_ses_client["AWS SES client<br/>[sesClient.js]"]
  node_scheduler["Scheduled maintenance<br/>[cronjob.js]"]
end

node_developer(("Developer"))
node_server["Backend server<br/>[app.js]"]
node_database[("MongoDB")]
node_cloudinary["Cloudinary"]
node_razorpay["Razorpay"]
node_ses["AWS SES"]
node_redis[("Redis")]

node_developer -->|"uses"| node_app
node_app -->|"routes to"| node_feed
node_app -->|"routes to"| node_requests
node_app -->|"routes to"| node_connections_ui
node_app -->|"routes to"| node_chat_ui
node_app -->|"routes to"| node_premium_ui
node_server -->|"connects"| node_database
node_auth_routes -->|"validates"| node_validation
node_auth_routes -->|"reads and writes"| node_user_model
node_auth_middleware -->|"loads user"| node_user_model
node_profile_routes -->|"guards"| node_auth_middleware
node_profile_routes -->|"validates"| node_validation
node_profile_routes -->|"reads and writes"| node_user_model
node_profile_routes -->|"uploads photo"| node_cloudinary_util
node_cloudinary_util -->|"stores image"| node_cloudinary
node_user_model -->|"persists"| node_database
node_request_routes -->|"guards"| node_auth_middleware
node_request_routes -->|"checks user"| node_user_model
node_request_routes -->|"reads and writes"| node_request_model
node_request_routes -->|"emits events"| node_socket_service
node_request_model -->|"persists"| node_database
node_chat_routes -->|"guards"| node_auth_middleware
node_chat_routes -->|"reads and writes"| node_chat_model
node_chat_routes -->|"emits events"| node_socket_service
node_chat_model -->|"persists"| node_database
node_payment_routes -->|"guards"| node_auth_middleware
node_payment_routes -->|"creates order"| node_razorpay_util
node_payment_routes -->|"reads and writes"| node_payment_model
node_payment_routes -->|"updates premium"| node_user_model
node_razorpay_util -->|"calls"| node_razorpay
node_payment_model -->|"persists"| node_database
node_mail_queue -.->|"queues jobs"| node_redis
node_email_sender -->|"sends through"| node_ses_client
node_ses_client -->|"sends email"| node_ses
node_scheduler -.->|"runs scheduled"| node_server

click node_app "https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/App.jsx"
click node_feed "https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/components/Feed.jsx"
click node_requests "https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/components/RequestsFeed.jsx"
click node_connections_ui "https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/components/Connections.jsx"
click node_chat_ui "https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/components/Chat.jsx"
click node_premium_ui "https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/components/PremiumPage.jsx"
click node_auth_routes "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/authRouter.js"
click node_auth_middleware "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/middlewares/auth.js"
click node_profile_routes "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/profileRouter.js"
click node_user_model "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/models/user.js"
click node_validation "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/validate.js"
click node_cloudinary_util "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/cloudinary.js"
click node_request_routes "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/requestRouter.js"
click node_request_model "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/models/connectionRequest.js"
click node_chat_routes "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/chatRouter.js"
click node_chat_model "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/models/chat.js"
click node_socket_service "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/socket.js"
click node_payment_routes "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/paymentRouter.js"
click node_payment_model "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/models/payment.js"
click node_razorpay_util "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/razorpay.js"
click node_mail_queue "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/queues/mailQueue.js"
click node_email_sender "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/sendEmail.js"
click node_ses_client "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/sesClient.js"
click node_scheduler "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/cronjob.js"
click node_server "https://github.com/iambuzzz/devtinder/blob/main/Backend/src/app.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_feed,node_requests,node_connections_ui,node_chat_ui,node_premium_ui toneBlue
class node_auth_routes,node_auth_middleware,node_profile_routes,node_user_model,node_validation,node_cloudinary_util,node_database,node_redis toneAmber
class node_request_routes,node_request_model,node_chat_routes,node_chat_model,node_socket_service,node_server toneMint
class node_payment_routes,node_payment_model,node_razorpay_util toneRose
class node_mail_queue,node_email_sender,node_ses_client,node_scheduler,node_developer,node_cloudinary,node_razorpay,node_ses toneIndigo
```

## Components

### Web client

- [App routes](https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/App.jsx): `Frontend/src/App.jsx`
- [Developer feed](https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/components/Feed.jsx): `Frontend/src/components/Feed.jsx`
- [Connection requests](https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/components/RequestsFeed.jsx): `Frontend/src/components/RequestsFeed.jsx`
- [Connections list](https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/components/Connections.jsx): `Frontend/src/components/Connections.jsx`
- [Chat views](https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/components/Chat.jsx): `Frontend/src/components/Chat.jsx`
- [Premium page](https://github.com/iambuzzz/devtinder/blob/main/Frontend/src/components/PremiumPage.jsx): `Frontend/src/components/PremiumPage.jsx`

### Identity and profiles

- [Signup and login](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/authRouter.js): `Backend/src/routes/authRouter.js`
- [JWT authorization](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/middlewares/auth.js): `Backend/src/middlewares/auth.js`
- [Profile management](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/profileRouter.js): `Backend/src/routes/profileRouter.js`
- [User records](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/models/user.js): `Backend/src/models/user.js`
- [Input validation](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/validate.js): `Backend/src/utils/validate.js`
- [Photo uploads](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/cloudinary.js): `Backend/src/utils/cloudinary.js`

### Discovery and messaging

- [Request handling](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/requestRouter.js): `Backend/src/routes/requestRouter.js`
- [Connection requests](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/models/connectionRequest.js): `Backend/src/models/connectionRequest.js`
- [Chat API](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/chatRouter.js): `Backend/src/routes/chatRouter.js`
- [Chat records](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/models/chat.js): `Backend/src/models/chat.js`
- [Live events](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/socket.js): `Backend/src/utils/socket.js`

### Premium payments

- [Payment handling](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/routes/paymentRouter.js): `Backend/src/routes/paymentRouter.js`
- [Payment records](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/models/payment.js): `Backend/src/models/payment.js`
- [Razorpay client](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/razorpay.js): `Backend/src/utils/razorpay.js`

### Background services

- [Email queue](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/queues/mailQueue.js): `Backend/src/queues/mailQueue.js`
- [Email sending](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/sendEmail.js): `Backend/src/utils/sendEmail.js`
- [AWS SES client](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/sesClient.js): `Backend/src/utils/sesClient.js`
- [Scheduled maintenance](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/utils/cronjob.js): `Backend/src/utils/cronjob.js`

### Other components

- **Developer**
- [Backend server](https://github.com/iambuzzz/devtinder/blob/main/Backend/src/app.js): `Backend/src/app.js`
- **MongoDB**
- **Cloudinary**
- **Razorpay**
- **AWS SES**
- **Redis**

## Connections

- Developer → App routes: uses
- App routes → Developer feed: routes to
- App routes → Connection requests: routes to
- App routes → Connections list: routes to
- App routes → Chat views: routes to
- App routes → Premium page: routes to
- Backend server → MongoDB: connects
- Signup and login → Input validation: validates
- Signup and login → User records: reads and writes
- JWT authorization → User records: loads user
- Profile management → JWT authorization: guards
- Profile management → Input validation: validates
- Profile management → User records: reads and writes
- Profile management → Photo uploads: uploads photo
- Photo uploads → Cloudinary: stores image
- User records → MongoDB: persists
- Request handling → JWT authorization: guards
- Request handling → User records: checks user
- Request handling → Connection requests: reads and writes
- Request handling → Live events: emits events
- Connection requests → MongoDB: persists
- Chat API → JWT authorization: guards
- Chat API → Chat records: reads and writes
- Chat API → Live events: emits events
- Chat records → MongoDB: persists
- Payment handling → JWT authorization: guards
- Payment handling → Razorpay client: creates order
- Payment handling → Payment records: reads and writes
- Payment handling → User records: updates premium
- Razorpay client → Razorpay: calls
- Payment records → MongoDB: persists
- Email queue → Redis: queues jobs
- Email sending → AWS SES client: sends through
- AWS SES client → AWS SES: sends email
- Scheduled maintenance → Backend server: runs scheduled
