A modern, real-time team collaboration platform built with Next.js, Firebase, and Socket.IO for seamless team communication and project management.
- Live Chat: Real-time messaging with instant message delivery
- Team Rooms: Dedicated chat rooms for different teams
- User Presence: See who's online and active in your team
- Message History: Persistent chat history with Redis/Firestore storage
- User Types: Support for Team Leads and Members with different permissions
- Firebase Authentication: Secure user authentication and authorization
- User Profiles: Customizable user profiles with display names
- Role-Based Access: Different permissions for Team Leads vs Members
- Session Management: Automatic session handling and reconnection
- Team Creation: Create and manage multiple teams
- Team Membership: Invite and manage team members
- Real-Time Updates: Instant notifications for team changes
- Activity Tracking: Monitor team activity and engagement
- Responsive Design: Works seamlessly on desktop and mobile
- Dark/Light Mode: Toggle between themes
- Modern Interface: Clean, intuitive design with Tailwind CSS
- Real-Time Indicators: Visual feedback for online status and typing
- Next.js 15.3.5: React framework with App Router
- React 19: Latest React with concurrent features
- TypeScript: Type-safe development
- Tailwind CSS 4: Utility-first CSS framework
- Lucide React: Beautiful, customizable icons
- Socket.IO Client: Real-time communication
- Firebase Functions: Serverless backend functions
- Express.js: Web framework for API endpoints
- Socket.IO: Real-time bidirectional communication
- Firebase Firestore: NoSQL database for data storage
- Firebase Realtime Database: Real-time data synchronization
- Redis: In-memory data store for caching and sessions
- Firebase Authentication: Secure user authentication
- CORS: Cross-origin resource sharing configuration
- Environment Variables: Secure configuration management
- Firebase Hosting: Static site hosting for frontend
- Firebase Functions: Serverless backend deployment
- Firebase Console: Centralized project management
TaskProX/
├── client/taskprox/ # Frontend (Next.js)
│ ├── app/ # Next.js App Router
│ ├── components/ # React components
│ ├── utils/ # Utility functions
│ ├── public/ # Static assets
│ └── package.json # Frontend dependencies
├── server/ # Backend (Express + Socket.IO)
│ ├── app.js # Main server file
│ └── package.json # Backend dependencies
└── functions/ # Firebase Functions (deployment)
├── index.js # Cloud Functions entry
└── package.json # Functions dependencies
- Node.js 18+
- npm or yarn
- Firebase account
- Git
- Clone the repository
git clone <repository-url>
cd TaskProX- Install frontend dependencies
cd client/taskprox
npm install- Install backend dependencies
cd ../../server
npm install- Set up Firebase
cd ../client/taskprox
firebase login
firebase init- Configure environment variables
Create
.env.localinclient/taskprox/:
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id- Start frontend development server
cd client/taskprox
npm run devFrontend will be available at http://localhost:3000
- Start backend server
cd server
npm startBackend will be available at http://localhost:4000
- Start Firebase emulators (optional)
firebase emulators:start- Build the frontend
cd client/taskprox
npm run build- Deploy to Firebase
firebase deployThis will deploy:
- Frontend to Firebase Hosting
- Backend to Firebase Functions
- Database rules and indexes
-
Firebase Console Setup
- Create a new Firebase project
- Enable Authentication, Firestore, and Realtime Database
- Configure security rules
- Set up hosting
-
Database Configuration
- Firestore: For user data and team information
- Realtime Database: For real-time chat messages
- Redis: For session management (optional)
- Authentication: Email/password, Google, GitHub
- Firestore: User profiles, team data, settings
- Realtime Database: Chat messages, online status
- Hosting: Static file serving with custom domain support
- Firestore: User-based access control
- Realtime Database: Team-based message access
- Functions: Authenticated API endpoints
- Instant Messaging: Messages appear instantly for all team members
- Typing Indicators: See when someone is typing
- Message History: Persistent chat history with pagination
- File Sharing: Upload and share files (planned feature)
- Emoji Support: Rich emoji support for expressive communication
- Team Creation: Create new teams with custom names
- Member Invitation: Invite users via email
- Role Assignment: Assign Team Lead or Member roles
- Team Settings: Customize team preferences and permissions
- Responsive Design: Optimized for all screen sizes
- Keyboard Shortcuts: Quick navigation and actions
- Notifications: Browser notifications for new messages
- Offline Support: Queue messages when offline
- Firebase Authentication: Secure user authentication
- CORS Protection: Cross-origin request security
- Input Validation: Server-side validation for all inputs
- Rate Limiting: Protection against spam and abuse
- Data Encryption: Encrypted data transmission
- Server-Side Rendering: Fast initial page loads
- Code Splitting: Optimized bundle sizes
- Caching: Intelligent caching strategies
- CDN: Global content delivery network
- Real-Time Optimization: Efficient WebSocket connections
POST /api/auth/signin- User sign inPOST /api/auth/signup- User registrationPOST /api/auth/signout- User sign out
GET /api/teams- Get user's teamsPOST /api/teams- Create new teamPUT /api/teams/:id- Update teamDELETE /api/teams/:id- Delete team
GET /api/team/:teamId/messages- Get team messagesPOST /api/team/:teamId/messages- Send messageDELETE /api/messages/:id- Delete message
joinRoom- Join team chat roomsendMessage- Send real-time messageuserJoined- User joined notificationuserLeft- User left notificationteamMembers- Current team members list
# Run frontend tests
npm run test
# Run backend tests
cd server && npm test
# Run linting
npm run lint- Firebase Analytics: User behavior tracking
- Error Reporting: Automatic error monitoring
- Performance Monitoring: Real-time performance metrics
- Usage Analytics: Team and feature usage statistics
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the Firebase documentation
- Issues: Report bugs via GitHub Issues
- Discussions: Join community discussions
- Email: Contact support at support@taskprox.com
- File sharing and attachments
- Video/audio calls
- Mobile app (React Native)
- Advanced team permissions
- Integration with project management tools
- Advanced analytics and reporting
- Multi-language support
- Custom themes and branding
Built with ❤️ using Next.js, Firebase, and Socket.IO