IT645_Project is a collaborative platform designed to help learners connect with one another and learn together. By offering capabilities for messaging, meetings, recommendations, and user connection suggestions, this project enables peer-to-peer learning and enhances the experience for users seeking to expand their knowledge through community interactions.
- User Authentication & Profile Management
- Register, login, email verification, and protected profile management.
- Connections & Chat
- Suggest potential connections, send/accept/reject connection requests, view connection status, and initiate chats with connected users.
- Messaging
- Text and file-based messaging between users, with secure downloads.
- Meetings
- Create and retrieve meeting details to organize learning sessions.
- Video Recommendations
- Personalized video recommendations based on user activity or interests.
- Subscription & Payments
- Create subscription orders, verify payments, and check subscription status.
Based on the provided project screenshot:
IT645_Project/
├── .git/
├── Backend/
│ ├── config/
│ ├── controllers/
│ │ ├── authController.js
│ │ ├── chatController.js
│ │ ├── connectioncontroller.js
│ │ ├── meetingController.js
│ │ ├── messageController.js
│ │ ├── recommendationController.js
│ │ ├── subscriptioncontroller.js
│ │ └── userController.js
│ ├── middleware/
│ │ ├── authMiddleware.js
│ │ └── upload.js
│ ├── models/
│ │ ├── ConnectionRequest.js
│ │ ├── Meeting.js
│ │ ├── Message.js
│ │ ├── Subscription.js
│ │ └── User.js
│ ├── node_modules/
│ ├── routes/
│ │ ├── auth.js
│ │ ├── chat.js
│ │ ├── connect.js
│ │ ├── meeting.js
│ │ ├── messages.js
│ │ ├── recommendation.js
│ │ ├── subscription.js
│ │ └── user.js
│ ├── services/
│ ├── utils/
│ ├── views/
│ │ └── intro.ejs
│ ├── .env
│ ├── .gitignore
│ ├── app.js
│ ├── package.json
│ ├── package-lock.json
│ └── server.js
├── frontend/
│ ├── node_modules/
│ ├── public/
│ └── src/
│ ├── assets/
│ ├── components/
│ │ ├── ChatArea.jsx
│ │ ├── Icons.jsx
│ │ ├── layout.jsx
│ │ ├── MeetNotificationListener.jsx
│ │ ├── MessageBubble.jsx
│ │ ├── Navbar.jsx
│ │ ├── PrivateRoutes.jsx
│ │ └── UserList.jsx
│ ├── context/
│ ├── hooks/
│ └── pages/
│ ├── Chat/
│ ├── connections/
│ ├── Dashboard/
│ ├── example/
│ ├── login/
│ ├── Meet/
│ ├── profile/
│ ├── Recommendations/
│ ├── SignupForm/
│ ├── Subscription/
│ └── VerifyPage/
│ ├── services/
├── socket.js
POST /register– User registrationPOST /login– User loginGET /me– Get authenticated userPOST /verify– Verify user email
GET /connections– List chat user connections
GET /suggestions– Get suggested users to connect withPOST /request– Send connection requestPOST /accept– Accept connection requestPOST /reject– Reject connection requestGET /status– Request statusGET /connections– List current connections
POST /– Create meetingGET /:id– Get meeting by ID
GET /:userId– Get messages with a userPOST /– Send message/file to userGET /download/:messageId– Download message file
POST /– Get recommended videos
POST /create-order– Create subscription orderPOST /verify-payment– Verify payment for subscriptionGET /status/:userId– Get subscription status
GET /profile/:id– Get user profilePUT /update-profile/:id– Update user profileGET /:id– Get user data
- Node.js (v22+ recommended)
- MongoDB
- Cloudinary (for file uploads)
- Vite/React (Frontend)
-
Install dependencies
cd Backend npm install -
Configure
.envfile with necessary credentials (DB, Cloudinary, JWT secret). -
Start the server:
npm start
-
Install dependencies
cd frontend npm install -
Start the React frontend:
npm run dev
- Backend: Node.js, Express, MongoDB, Cloudinary
- Frontend: React, Vite
- Other: JWT authentication, REST APIs
Contributions are welcome! Please submit issues, feature requests, or pull requests.
MIT License
Developed by jenilsoni04