A social platform designed for developers to connect, collaborate, and build amazing projects together. Think of it as the developer's version of a social match-making app, but for techies!
- 🔐 User Authentication - Secure signup/login with JWT
- 👤 Profile Management - Create and edit developer profiles
- 🔍 Developer Discovery - Browse and discover other developers
- 🤝 Connection System - Send and manage connection requests
- 💬 Request Management - Review incoming connection requests
- 🎨 Modern UI - Responsive design with dark/light theme support
- React 19 with Vite
- Redux Toolkit for state management
- Tailwind CSS + DaisyUI for styling
- React Router for navigation
- Axios for API communication
- Node.js with Express.js
- MongoDB with Mongoose ODM
- JWT for authentication
- bcrypt for password hashing
- CORS enabled for cross-origin requests
- Node.js (v16 or higher)
- MongoDB
- Git
cd backend
npm install
Create a .env
file in the backend directory:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
PORT=3000
Start the backend server:
npm run dev
Available Scripts:
npm start
- Start production servernpm run dev
- Start development server with nodemon
cd frontend
npm install
Start the development server:
npm run dev
Available Scripts:
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run lint
- Run ESLint
POST /signup
- Register new userPOST /login
- Authenticate userPOST /logout
- Logout user
GET /profile/view
- Get user profilePATCH /profile/edit
- Update profilePATCH /profile/password
- Change password
POST /request/send/:status/:userId
- Send connection requestPOST /request/review/:status/:requestId
- Review connection requestGET /user/requests/received
- Get received requestsGET /user/connections
- Get user connectionsGET /user/feed?page=1&limit=10
- Get discoverable users (supports pagination)
Connection Request Statuses:
ignored
- User ignored the profileinterested
- User showed interestaccepted
- Connection request acceptedrejected
- Connection request rejected
{
firstName: String (required, 4-50 chars),
lastName: String,
emailId: String (unique, required, validated),
password: String (hashed, required, strong password validation),
age: Number (min: 18),
gender: String (enum: male, female, others),
photoUrl: String (default avatar, URL validation),
about: String (default description),
skills: [String] (comma-separated input converted to array),
timestamps: true
}
{
fromUserId: ObjectId (ref: User),
toUserId: ObjectId (ref: User),
status: String (ignored, interested, accepted, rejected),
timestamps: true
}
Coming Soon - Deployment instructions will be added here.
Backend (.env):
MONGO_URI
- MongoDB connection stringJWT_SECRET
- Secret key for JWT tokensPORT
- Server port (default: 3000)
Frontend:
- Update
BASE_URL
insrc/utils/constants.js
for production
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License.
Milind Kumar Sahu
- GitHub: @milindkusahu
Built with ❤️ to help developers build cool things — together.
⭐ Star this repository if you find it helpful!