TeamFlow is a full-stack team collaboration and project management platform. It provides a workspace where teams can manage projects and tasks, communicate in real time, and collaborate from a single application.
Live Demo: https://team-flow-dun.vercel.app
- User authentication and authorization
- Project creation and management
- Task creation, assignment, and status tracking
- Drag-and-drop task management
- Team member management
- Real-time updates using Socket.IO
- File uploads and cloud storage
- AI-assisted functionality
- Responsive web interface
- React
- React Router
- Axios
- Socket.IO Client
- @hello-pangea/dnd
- Node.js
- Express.js
- MongoDB
- Mongoose
- Socket.IO
- JWT
- bcryptjs
- Multer
- Cloudinary
- Google Gemini
- Groq
TeamFlow/
│
├── client/
│ ├── public/
│ ├── src/
│ └── package.json
│
├── server/
│ ├── routes/
│ ├── models/
│ ├── controllers/
│ ├── middleware/
│ ├── services/
│ ├── index.js
│ └── package.json
│
└── README.md
- Node.js
- MongoDB
- npm
git clone https://github.com/sandesh1414/TeamFlow.git
cd TeamFlowFrontend:
cd client
npm installBackend:
cd ../server
npm installCreate a .env file in the server directory.
PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
GEMINI_API_KEY=your_gemini_api_key
GROQ_API_KEY=your_groq_api_keyDo not commit your .env file to the repository.
cd server
npm run devThe backend runs on:
http://localhost:5000
In a separate terminal:
cd client
npm startThe frontend runs on:
http://localhost:3000
The application is deployed using separate frontend and backend services.
| Component | Platform |
|---|---|
| Frontend | Vercel |
| Backend | Render |
| Database | MongoDB |
| File Storage | Cloudinary |
The frontend communicates with the deployed backend through REST APIs, while Socket.IO is used for real-time communication.
Socket.IO is used for real-time events between users. This allows changes made by one user to be reflected for other connected users without requiring a page refresh.
Authentication is handled using JWT tokens. Passwords are securely hashed using bcryptjs, and protected routes require valid authentication credentials.
The backend includes integrations with Google Gemini and Groq for AI-related functionality within the application.