A real-time event management platform enabling users to create, manage, and participate in events with real-time communication.
- Login, Sign-Up
- User Authentication (JWT, Bcrypt)
- Role-Based Access Control
- Event Creation & Filtering
- Real-Time Friend Requests
- Live Chat in Event Lobbies
- WebSocket-based Communication
- Private Messaging
- Backend: Node.js, Express.js, MongoDB
- Authentication: JWT, Bcrypt
- Real-time Communication: Socket.IO, WebSockets, Redis
- Deployment & Management: Docker, PM2
- Frontend: React.js, Vite, Tailwind CSS
- Developed all backend APIs
- Integrated Socket.IO for real-time chat
- Implemented JWT authentication
- Designed event filtering & management
- Optimized WebSockets using Redis
- Deployed backend on Render
- Built the user interface with React.js and Vite
- Designed responsive UI using Tailwind CSS
- Implemented event filtering and creation features
- Integrated WebSockets for real-time interactions
- Connected frontend with backend APIs
- Ensured smooth user experience with error handling
- Node.js (v16+)
- MongoDB
- Redis (for WebSocket optimization)
cd backend
npm install
npm start
cd frontend
npm install
npm run dev
https://two447-event-connection-platform-2.onrender.com
URL: /user/signup
Method: POST
Headers:
Content-Type
: application/json
Request Body:
{
"email": "user@example.com",
"password": "securepassword",
"role": "participant"
}
Response (Success 201):
{
"msg": "Your Account Created Successfully",
"payload": {
"_id": "userId",
"email": "user@example.com",
"role": "participant",
"createdAt": "timestamp"
}
}
URL: /user/login
Method: POST
Request Body:
{
"email": "user@example.com",
"password": "securepassword"
}
Response (Success 200):
{
"message": "Login successful",
"accessToken": "JWT Access Token",
"user": {
"id": "userId",
"email": "user@example.com",
"role": "participant"
}
}
URL: /user/refresh
Method: POST
Response (Success 200):
{
"accessToken": "New JWT Access Token"
}
URL: /user/logout
Method: POST
Response (Success 204): No content. Refresh token cleared from cookies.
URL: /events
Method: POST
Headers:
Authorization
: Bearer <AccessToken>
Request Body:
{
"name": "Tech Conference",
"location": "City Center",
"description": "Annual tech conference for developers.",
"startDate": "2025-02-01T10:00:00Z",
"endDate": "2025-02-01T18:00:00Z",
"category": ["technology"],
"imageUrl": "http://example.com/event-image.jpg"
}
Response (Success 201):
{
"message": "Event created successfully",
"event": {
"id": "eventId",
"name": "Tech Conference",
"location": "City Center",
"createdBy": "userId"
}
}
URL: /events
Method: GET
Response (Success 200):
{
"events": [
{
"id": "eventId",
"name": "Tech Conference",
"location": "City Center",
"startDate": "2025-02-01T10:00:00Z",
"endDate": "2025-02-01T18:00:00Z",
"category": ["technology"]
}
]
}
The backend is deployed on Render and can be accessed at:
https://two447-event-connection-platform-2.onrender.com
The frontend is deployed on Vercel and can be accessed at:
https://silver-piroshki-ab1de7.netlify.app/
Contributions are welcome! Feel free to open issues or submit pull requests.
This project is licensed under the MIT License.
For any queries, reach out via GitHub or email.