A modern, collaborative project management platform designed to help teams work together seamlessly
Features β’ Installation β’ Usage β’ Tech Stack β’ API Documentation
- About
- Features
- Tech Stack
- Prerequisites
- Installation
- Environment Variables
- Usage
- Project Structure
- API Documentation
- Use Cases
- Contributing
- License
CollabSpace is a comprehensive project management solution that empowers teams to collaborate effectively, manage tasks efficiently, and track progress in real-time. Built with modern technologies, it offers an intuitive interface combined with powerful features for teams of all sizes.
- β¨ Modern UI/UX - Clean, minimal design with smooth animations
- π Secure Authentication - Powered by Clerk for enterprise-grade security
- π Real-time Analytics - Track project progress with detailed insights
- π₯ Team Collaboration - Seamless workspace and project management
- π Calendar Integration - Never miss a deadline with visual calendar views
- π¨ Dark Mode - Beautiful dark theme support
- π± Responsive Design - Works perfectly on all devices
| Feature | Description |
|---|---|
| π Workspace Management | Create and manage multiple workspaces with role-based access control |
| π Project Tracking | Organize projects with status, priority, and progress tracking |
| β Task Management | Create, assign, and track tasks with due dates and priorities |
| π₯ Team Collaboration | Invite team members, assign roles, and collaborate in real-time |
| π Calendar View | Visualize tasks and deadlines in an intuitive calendar interface |
| π Analytics & Reports | Get insights with charts, graphs, and detailed analytics |
| π¬ Comments & Updates | Communicate directly on tasks and projects |
| π Real-time Updates | See changes instantly across all devices |
| π¨ Customizable | Personalize workspaces with custom logos and settings |
- Smooth Animations - Beautiful fade-in, slide-in, and hover animations
- Interactive Cards - Hover effects and transitions for better engagement
- Loading States - Clear feedback during async operations
- Error Handling - Graceful error messages and fallbacks
- Toast Notifications - Non-intrusive notifications for user actions
- Responsive Design - Mobile-first approach with breakpoint optimization
- Secure Authentication - Clerk-powered authentication with OAuth support
- Role-Based Access - Admin and Member roles with granular permissions
- Workspace Isolation - Data separation between workspaces
- Task Permissions - Only assigned users can complete their tasks
- Protected Routes - Authentication required for app access
- React 19.1.1 - Modern UI library
- React Router DOM 7.8.1 - Client-side routing
- Redux Toolkit 2.8.2 - State management
- Tailwind CSS 4.1.12 - Utility-first CSS framework
- Vite 7.1.2 - Fast build tool and dev server
- Axios 1.7.9 - HTTP client
- React Hot Toast 2.6.0 - Toast notifications
- Recharts 3.1.2 - Chart library
- Lucide React 0.540.0 - Icon library
- date-fns 4.1.0 - Date utility library
- Clerk React 5.40.0 - Authentication
- Node.js - Runtime environment
- Express 5.2.1 - Web framework
- Prisma 6.19.2 - ORM and database toolkit
- PostgreSQL - Relational database
- Clerk Express 1.7.64 - Authentication middleware
- Nodemailer 7.0.12 - Email service
- Inngest 3.49.3 - Event-driven serverless functions
- CORS 2.8.6 - Cross-origin resource sharing
- PostgreSQL - Primary database
- Clerk - Authentication and user management
- Inngest - Background job processing
- SMTP (Brevo) - Email delivery service
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn
- PostgreSQL (v14 or higher)
- Git
- Clerk Account - For authentication (Sign up here)
- Brevo Account - For email service (Sign up here)
- Inngest Account - For background jobs (Sign up here)
git clone https://github.com/yourusername/collabspace.git
cd collabspacecd client
npm installcd server
npm installcd server
npx prisma migrate dev
npx prisma generateCreate .env files in both client and server directories. See Environment Variables section for details.
Terminal 1 - Backend:
cd server
npm run serverTerminal 2 - Frontend:
cd client
npm run devThe application will be available at:
- Frontend: http://localhost:5173
- Backend: http://localhost:5000
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
VITE_API_URL=http://localhost:5000# Database
DATABASE_URL=postgresql://user:password@localhost:5432/collabspace
DIRECT_URL=postgresql://user:password@localhost:5432/collabspace
# Clerk
CLERK_SECRET_KEY=your_clerk_secret_key
# Email (Brevo/SMTP)
SMTP_HOST=smtp-relay.brevo.com
SMTP_PORT=587
SMTP_USER=your_smtp_username
SMTP_PASSWORD=your_smtp_password
SENDER_EMAIL=noreply@collabspace.com
# Application URLs
CLIENT_URL=http://localhost:5173
FRONTEND_URL=http://localhost:5173
# Inngest
INNGEST_EVENT_KEY=your_inngest_event_key
INNGEST_SIGNING_KEY=your_inngest_signing_key
INNGEST_BASE_URL=http://localhost:3000-
Sign Up / Sign In
- Visit the home page
- Click "Get Started" or "Sign In"
- Complete authentication via Clerk
-
Create a Workspace
- After signing in, create your first workspace
- Add a name and description
- Upload a workspace logo (optional)
-
Create a Project
- Navigate to Projects
- Click "New Project"
- Fill in project details (name, description, dates, team lead)
- Add team members
-
Create Tasks
- Open a project
- Click "New Task"
- Assign tasks to team members
- Set due dates and priorities
-
Track Progress
- View analytics in the Analytics tab
- Check calendar for upcoming deadlines
- Monitor task completion in real-time
- Go to Team page
- Click "Invite Member"
- Enter email and select role
- Member receives invitation email
- They sign up/sign in and join automatically
- Create: Add new tasks with details
- Assign: Assign to team members
- Track: Monitor status and progress
- Complete: Assigned users can mark tasks as done
- Update: Team leads can update task details
- Dashboard: Overview of all projects and tasks
- Project Analytics: Detailed charts and metrics per project
- Real-time Updates: All data updates automatically
collabspace/
βββ client/ # Frontend React application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ features/ # Redux slices
β β βββ layouts/ # Layout components
β β βββ configs/ # Configuration files
β β βββ assets/ # Static assets
β βββ public/ # Public assets
β βββ package.json
β
βββ server/ # Backend Express application
β βββ controllers/ # Route controllers
β βββ routes/ # API routes
β βββ middleware/ # Express middleware
β βββ configs/ # Configuration files
β βββ utils/ # Utility functions
β βββ inngest/ # Background job handlers
β βββ prisma/ # Database schema and migrations
β βββ package.json
β
βββ README.md
client/src/components/- Reusable React componentsclient/src/pages/- Page-level componentsclient/src/features/- Redux state managementserver/controllers/- Business logic handlersserver/routes/- API endpoint definitionsserver/prisma/- Database schema and migrations
All protected routes require a Bearer token in the Authorization header:
Authorization: Bearer <clerk_jwt_token>
GET /api/workspaces
Authorization: Bearer <token>POST /api/workspaces/send-invitation-email
Authorization: Bearer <token>
Content-Type: application/json
{
"email": "user@example.com",
"workspaceName": "My Workspace",
"invitationUrl": "https://app.com?invitation_token=...",
"inviterName": "John Doe"
}GET /api/projects/workspace/:workspaceId
Authorization: Bearer <token>POST /api/projects
Authorization: Bearer <token>
Content-Type: application/json
{
"workspaceId": "workspace-id",
"name": "Project Name",
"description": "Project description",
"status": "PLANNING",
"priority": "MEDIUM",
"start_date": "2025-01-01",
"end_date": "2025-12-31",
"team_lead": "user-id",
"progress": 0
}PUT /api/projects/:projectId
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "Updated Name",
"progress": 50,
...
}POST /api/tasks
Authorization: Bearer <token>
Content-Type: application/json
{
"projectId": "project-id",
"title": "Task Title",
"description": "Task description",
"type": "TASK",
"status": "TODO",
"priority": "MEDIUM",
"assigneeId": "user-id",
"due_date": "2025-01-15"
}PUT /api/tasks/:taskId
Authorization: Bearer <token>
Content-Type: application/json
{
"status": "DONE",
...
}Note: Only assigned users can update task status to DONE. Team leads can update all other fields.
DELETE /api/tasks/delete/:taskId
Authorization: Bearer <token>- π Track Multiple Projects - Manage multiple projects across different workspaces
- π₯ Team Management - Assign tasks, monitor progress, and manage team members
- π Analytics - Get insights into team productivity and project health
- π Deadline Management - Visualize all deadlines in calendar view
- π Stay Updated - Real-time notifications for project changes
- β Task Management - View assigned tasks and update status
- π Task Completion - Mark tasks as done when completed
- π¬ Collaboration - Comment on tasks and communicate with team
- π Personal Calendar - View personal task deadlines
- π Progress Tracking - Monitor individual and team progress
- π’ Multi-Workspace - Separate workspaces for different departments
- π Role-Based Access - Control access with Admin and Member roles
- π§ Team Invitations - Easy onboarding with email invitations
- π Reporting - Comprehensive analytics for decision-making
- π Security - Enterprise-grade authentication and data protection
- Task Status Distribution - Pie charts showing task breakdown
- Priority Analysis - Visual representation of task priorities
- Type Distribution - Breakdown of tasks by type (Task, Bug, Feature, etc.)
- Progress Tracking - Real-time progress bars and metrics
- Overdue Tasks - Automatic detection and highlighting
- Monthly View - Full calendar with task indicators
- Due Date Tracking - Visual representation of all due dates
- Overdue Highlighting - Red borders for overdue tasks
- Upcoming Tasks - Sidebar showing upcoming deadlines
- Task Details - Click any date to see all tasks for that day
- Multiple Types - Task, Bug, Feature, Improvement, Other
- Priority Levels - Low, Medium, High with color coding
- Status Tracking - TODO, IN_PROGRESS, DONE
- Assignee Management - Assign tasks to team members
- Due Dates - Set and track deadlines
- Comments - Add comments and updates
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages
- Add comments for complex logic
- Test your changes thoroughly
- Update documentation as needed
This project is licensed under the ISC License.
- Clerk - For authentication infrastructure
- Prisma - For excellent ORM and database tools
- Tailwind CSS - For the utility-first CSS framework
- React Team - For the amazing React library
- Lucide - For beautiful icons
For support, email support@collabspace.com or open an issue in the repository.
- Build the project:
cd client
npm run build-
Deploy the
distfolder to your hosting service -
Set environment variables in your hosting platform
- Set up a PostgreSQL database
- Set environment variables
- Deploy the server directory
- Run migrations:
npx prisma migrate deploy
Ensure all environment variables are set in your hosting platform, including:
- Database connection strings
- Clerk keys
- SMTP credentials
- Application URLs
Made with β€οΈ by the CollabSpace Team
β Star this repo β’ π Report Bug β’ π‘ Request Feature