Streamline team collaboration with intelligent project management
CollabTask is a comprehensive team collaboration platform built with the MERN stack (MongoDB, Express.js, React, Node.js) that addresses the fragmentation problem in modern project management tools. It provides real-time collaboration, unified project management, and intelligent insights for small to medium-sized teams.
- Real-time Collaboration: Instant updates and notifications across all project activities
- Unified Project Management: Consolidate task management, file sharing, and communication in one platform
- Intelligent Project Insights: Data-driven insights for better project decision making
- Seamless Integration Experience: Minimal friction in team adoption and daily usage
- Mobile-First Design: Responsive interface optimized for all devices
- Robust Security: JWT-based authentication with role-based access control
- React 18 with TypeScript
- Redux Toolkit for state management
- Socket.io Client for real-time features
- Material-UI for consistent design system
- React Query for data fetching and caching
- Node.js with Express.js framework
- MongoDB with Mongoose ODM
- Socket.io for real-time communication
- JWT for authentication
- Redis for session management and caching
- Frontend Deployment: Vercel/Netlify
- Backend Deployment: Vercel/Render/Heroku
- Database: MongoDB Atlas with global clusters
- Real-time: Redis Cloud for WebSocket scaling
- Monitoring: Sentry for error tracking
collabtask/
βββ π backend/ # Express.js API server
β βββ π src/
β β βββ π controllers/ # Route handlers
β β βββ π models/ # Mongoose schemas
β β βββ π routes/ # API routes
β β βββ π middleware/ # Custom middleware
β β βββ π services/ # Business logic
β β βββ π utils/ # Utility functions
β β βββ π socket/ # WebSocket handlers
β βββ π tests/ # Backend tests
β βββ π package.json
β βββ π server.js # Entry point
βββ π frontend/ # React application
β βββ π public/
β βββ π src/
β β βββ π components/ # React components
β β β βββ π ui/ # Base UI components
β β β βββ π forms/ # Form components
β β β βββ π layout/ # Layout components
β β β βββ π features/ # Feature components
β β βββ π pages/ # Page components
β β βββ π hooks/ # Custom hooks
β β βββ π store/ # Redux store
β β βββ π services/ # API services
β β βββ π utils/ # Utility functions
β β βββ π types/ # TypeScript types
β β βββ π styles/ # CSS and styling
β βββ π tests/ # Frontend tests
β βββ π package.json
β βββ π index.tsx # Entry point
βββ π shared/ # Shared types and utilities
βββ π docs/ # Documentation
βββ π .gitignore
βββ π .eslintrc.js
βββ π .prettierrc.js
βββ π package.json # Root package.json
βββ π README.md # This file
- Node.js (v18+ recommended)
- MongoDB (v6+)
- Git for version control
-
Clone the repository
git clone https://github.com/your-username/collabtask.git cd collabtask -
Install dependencies
# Install root dependencies npm install # Install backend dependencies cd backend npm install # Install frontend dependencies cd ../frontend npm install
-
Set up environment variables
# Backend (.env) cd backend cp .env.example .env # Frontend (.env) cd ../frontend cp .env.example .env
-
Start development servers
# Terminal 1: Start backend (port 5000) cd backend npm run dev # Terminal 2: Start frontend (port 3000) cd frontend npm start
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- API Documentation: http://localhost:5000/api/docs
cd backend
npm test # Run all tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Run tests with coverage reportcd frontend
npm test # Run all tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Run tests with coverage report
npm run test:e2e # Run end-to-end testscd backend
npm run build
npm startcd frontend
npm run build
npm run preview # Preview production build-
Backend Deployment
- Configure environment variables on your hosting platform
- Set up MongoDB Atlas connection
- Configure Redis for real-time features
-
Frontend Deployment
- Build the React application
- Deploy to Vercel or Netlify
- Configure environment variables
-
Database Setup
- Set up MongoDB Atlas cluster
- Create database collections
- Run initial data migrations
We use GitFlow branching strategy:
main- Production-ready codedevelop- Integration branch for featuresfeature/*- Individual feature brancheshotfix/*- Production hotfixesrelease/*- Release preparation branches
type(scope): description
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentationstyle: Code style changesrefactor: Code refactoringtest: Testingchore: Build/config changes
Examples:
feat(auth): add JWT token validation
fix(ui): resolve button hover state issue
docs(api): update endpoint documentation-
Code Quality
- Use ESLint and Prettier for code formatting
- Write unit tests for all new features
- Follow TypeScript best practices
- Use meaningful variable and function names
-
Component Development
- Create reusable, accessible components
- Follow the established design system
- Use semantic HTML and proper ARIA labels
- Implement responsive design patterns
-
API Development
- Follow RESTful API design principles
- Use proper HTTP status codes
- Implement comprehensive error handling
- Document all endpoints with Swagger
- Page Load Time: < 2 seconds
- API Response Time: < 200ms
- Real-time Update Latency: < 1 second
- Test Coverage: >80% backend, >75% frontend
- Error Tracking: Sentry integration
- Performance Monitoring: Core Web Vitals
- User Analytics: Google Analytics
- API Monitoring: Response times and error rates
- JWT Authentication: Secure token-based authentication
- Password Hashing: bcrypt for secure password storage
- Rate Limiting: API rate limiting to prevent abuse
- CORS Configuration: Proper cross-origin resource sharing
- Input Validation: Comprehensive input sanitization
- SQL Injection Prevention: MongoDB injection protection
- Swagger/OpenAPI: Interactive API documentation
- Postman Collection: Downloadable API collection
- Schema Documentation: Data model documentation
- Storybook: Component library documentation
- Design System: UI component specifications
- Style Guide: CSS and design guidelines
We welcome contributions! Please read our Contributing Guidelines for details on:
- Code of conduct
- Development process
- Pull request guidelines
- Issue reporting
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
npm test - Commit your changes:
git commit -m 'feat: 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.
- Design System: Material-UI components and design patterns
- Real-time Communication: Socket.io and WebSocket technologies
- Authentication: JWT and bcrypt security practices
- Testing: Jest, React Testing Library, and Cypress
- Deployment: Vercel, Render, and MongoDB Atlas
For support and questions:
- GitHub Issues: Create an issue
- Documentation: View docs
- Email: [email protected]
Built with β€οΈ by the CollabTask Team
Making team collaboration simple and effective.