DevMatch is a full-stack developer networking platform that enables developers to create profiles, discover other developers, send connection requests, and build professional connections. The platform includes secure authentication, profile management, connection workflows, and email notifications powered by AWS SES.
Frontend: https://www.devmatch.website
Explore the live application and create an account to experience the complete developer networking workflow.
- User Signup
- User Login
- User Logout
- JWT-based Authentication
- JWT stored in secure httpOnly cookies
- Protected Routes
- Email Verification
- Password Reset Flow
- Secure Password Update
- View Profile
- Edit Profile
- Delete Profile
- Paginated Feed
- Excludes Current User
- Excludes Existing Connections
- Optimized Feed Retrieval
- Send Connection Requests
- Receive Pending Requests
- Accept Connection Requests
- Reject Connection Requests
- View Accepted Connections
- View Sent Pending Requests
- AWS SES Integration
- Automatic Email Notification when a Connection Request is Sent
- React.js
- TypeScript
- Vite
- Redux Toolkit
- Tailwind CSS
- DaisyUI
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT Authentication
- Cookie Parser
- AWS EC2
- AWS SES
- Nginx
Client (React + TypeScript)
↓
Node.js + Express API
↓
MongoDB Database
↓
AWS SES (Email Service)
Authentication is handled using JWT stored in httpOnly cookies. All protected routes are secured using middleware-based authentication.
DevMatch/
│
├── backend/
│ ├── src/
│ ├── routes/
│ ├── middleware/
│ ├── models/
│ ├── utils/
│ └── server.js
│
├── frontend/
│ ├── src/
│ ├── components/
│ ├── pages/
│ ├── redux/
│ └── App.tsx
│
└── README.md
Before running the project locally, ensure you have:
- Node.js (LTS Version)
- MongoDB
- AWS Account
- AWS SES Enabled
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
AWS_ACCESS_KEY=your_aws_access_key
AWS_SECRET_KEY=your_aws_secret_keyNotes:
- JWT_SECRET is used for token signing and verification.
- AWS SES is configured for email notifications.
- MongoDB stores user, profile, and connection data.
cd backend
npm install
npm run devBackend runs on:
http://localhost:8000
cd frontend
npm install
npm run devFrontend runs on:
http://localhost:5173
Base URL:
http://localhost:8000
POST /auth/signup
POST /auth/login
POST /auth/email-verify
POST /auth/reset-password
POST /auth/logoutGET /user/get-profile
PUT /user/edit-profile
DELETE /user/delete-profile
GET /user/feedPOST /request/send/:userId
GET /request
POST /request/review/:requestId
GET /request/connections
GET /request/sentAll routes are protected using JWT authentication.
- JWT Authentication
- httpOnly Cookie Storage
- Protected API Routes
- Middleware-based Authorization
- Secure Password Handling
- CORS Configuration
- Authentication Validation
The application is deployed on AWS EC2 with Nginx configured as a reverse proxy.
Production Stack:
- AWS EC2
- Nginx
- Node.js
- React
- MongoDB
- AWS SES
- Real-Time Chat System
- Profile Recommendations
- Notification Center
- Advanced Search & Filtering
- Premium Subscription Features
Through this project, I gained hands-on experience with:
- JWT Authentication
- Cookie-Based Security
- REST API Development
- MongoDB & Mongoose
- AWS SES Integration
- AWS EC2 Deployment
- Nginx Configuration
- Redux Toolkit State Management
- Full Stack Application Development
Licensed under the MIT License.