How charansaigompa/devtinder-fullstack works
DevTinder is a developer networking web app. The main user journey is to authenticate, create or update a profile, discover developers, send or respond to connection requests, and chat with accepted contacts. The frontend provides routed screens and shared Redux state; the Express app mounts domain routers, connects MongoDB, and initializes Socket.IO. The README documents image uploads through Cloudinary. Several route and UI implementations were not sampled, so those feature links reflect documented capabilities rather than inspected call details.
Main entry points: app.js Express app · App.jsx Routed app · user.js Developer routes · auth.js JWT authentication
Components 25
Web application
- Routed app
frontend/src/App.jsx - Login and signup
frontend/src/components/Login.jsx - Profile editing
frontend/src/components/EditProfile.jsx - Developer discovery
frontend/src/components/Feed.jsx - Connections
frontend/src/components/Connections.jsx - Connection requests
frontend/src/components/Requests.jsx - Chat screen
frontend/src/components/Chat.jsx - Client state
frontend/src/utils/appStore.js
API and domain
- Express app
backend/src/app.js - Authentication routes
backend/src/routes/auth.js - Profile routes
backend/src/routes/profile.js - Developer routes
backend/src/routes/user.js - Request routes
backend/src/routes/request.js - Chat routes
backend/src/routes/chat.js - JWT authentication
backend/src/middleware/auth.js - Signup validation
backend/src/utils/validation.js
Data and media
- User records
backend/src/models/user.js - Connection records
backend/src/models/connectionRequest.js - Chat records
backend/src/models/chat.js - MongoDB
- Cloudinary
- Image upload utility
backend/src/utils/cloudinary.js
Real-time messaging
- Socket client
frontend/src/utils/socket.js - Socket.IO server
backend/src/utils/socket.js
Other components
- Developer
Connections 37
- Developer → Routed app: uses
- Routed app → Login and signup: routes to
- Routed app → Profile editing: routes to
- Routed app → Developer discovery: routes to
- Routed app → Connections: routes to
- Routed app → Connection requests: routes to
- Routed app → Chat screen: routes to
- Login and signup → Express app: authenticates via
- Profile editing → Profile routes: updates via
- Developer discovery → Developer routes: discovers via
- Connections → Developer routes: loads via
- Connection requests → Request routes: manages via
- Chat screen → Socket client: uses
- Chat screen → Chat routes: loads history via
- Login and signup → Client state: updates
- Profile editing → Client state: updates
- Express app → Authentication routes: mounts
- Express app → Profile routes: mounts
- Express app → Developer routes: mounts
- Express app → Request routes: mounts
- Express app → Chat routes: mounts
- Express app → Socket.IO server: initializes
- Express app → MongoDB: connects
- Authentication routes → Signup validation: validates signup
- Authentication routes → User records: reads and writes
- JWT authentication → User records: loads user
- Profile routes → JWT authentication: protects profile
- Request routes → JWT authentication: protects requests
- Developer routes → JWT authentication: protects access
- Chat routes → JWT authentication: protects chat
- Socket.IO server → Chat records: saves messages
- Socket client → Socket.IO server: exchanges events
- Profile routes → Image upload utility: uploads images
- Image upload utility → Cloudinary: stores images
- Express app → User records: persists through
- Request routes → Connection records: manages records
- Developer routes → User records: reads profiles