TaskBoard Pro is an advanced project collaboration platform that combines Kanban-style task management with powerful workflow automation capabilities. Built with modern web technologies, it enables teams to streamline their project workflows through customizable automation rules and real-time collaboration features.
- π User Authentication with Google OAuth (Firebase)
- π Project Management
- Create and manage projects
- Invite team members
- β
Task Management
- Create and assign tasks
- Kanban-style board view
- Custom status workflows
- β‘ Workflow Automation
- Custom automation rules
- Trigger-based actions
- Real-time notifications
- π Task commenting system
- React.js
- Redux Toolkit for state management
- Tailwind CSS for styling
- Firebase Authentication
- Node.js with Express
- MongoDB with Mongoose
- JWT for authentication
taskboard-pro/
βββ client/ # Frontend React application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ store/ # Redux store and slices
β β βββ services/ # API services
β β βββ utils/ # Utility functions
β βββ public/ # Static assets
β
βββ server/ # Backend Node.js application
βββ src/
β βββ controllers/ # Route controllers
β βββ models/ # Mongoose models
β βββ routes/ # API routes
β βββ services/ # Business logic
β βββ utils/ # Utility functions
βββ config/ # Configuration files
{
_id: ObjectId,
email: String,
name: String,
profilePicture: String,
createdAt: Date,
updatedAt: Date
}{
_id: ObjectId,
title: String,
description: String,
owner: ObjectId, // Reference to User
members: [ObjectId], // Array of User references
statuses: [String], // Custom statuses
createdAt: Date,
updatedAt: Date
}{
_id: ObjectId,
title: String,
description: String,
project: ObjectId, // Reference to Project
assignee: ObjectId, // Reference to User
status: String,
dueDate: Date,
comments: [{
user: ObjectId,
text: String,
createdAt: Date
}],
createdAt: Date,
updatedAt: Date
}{
_id: ObjectId,
project: ObjectId, // Reference to Project
trigger: {
type: String, // 'status_change', 'assignment', 'due_date'
conditions: Object
},
actions: [{
type: String, // 'assign_badge', 'change_status', 'send_notification'
params: Object
}],
createdAt: Date,
updatedAt: Date
}POST /api/auth/google- Google OAuth loginGET /api/auth/me- Get current user
GET /api/projects- List user's projectsPOST /api/projects- Create new projectGET /api/projects/:id- Get project detailsPUT /api/projects/:id- Update projectDELETE /api/projects/:id- Delete projectPOST /api/projects/:id/invite- Invite user to project
GET /api/projects/:projectId/tasks- List project tasksPOST /api/projects/:projectId/tasks- Create new taskPUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete taskPOST /api/tasks/:id/comments- Add comment to task
GET /api/projects/:projectId/automations- List project automationsPOST /api/projects/:projectId/automations- Create automationPUT /api/automations/:id- Update automationDELETE /api/automations/:id- Delete automation
{
"trigger": {
"type": "status_change",
"conditions": {
"newStatus": "Done"
}
},
"actions": [
{
"type": "assign_badge",
"params": {
"badgeType": "task_completion",
"userId": "{{task.assignee}}"
}
}
]
}{
"trigger": {
"type": "assignment",
"conditions": {
"userId": "specific_user_id"
}
},
"actions": [
{
"type": "change_status",
"params": {
"newStatus": "In Progress"
}
}
]
}{
"trigger": {
"type": "due_date",
"conditions": {
"timeframe": "24h_before"
}
},
"actions": [
{
"type": "send_notification",
"params": {
"recipient": "{{task.assignee}}",
"message": "Task '{{task.title}}' is due in 24 hours"
}
}
]
}A 3-5 minute demo video is available on Loom/YouTube:
The demo covers:
- User login with Google OAuth
- Project creation and team invitation
- Task creation and movement between statuses
- Automation trigger demonstration
- Clone the repository
- Install dependencies:
# Install backend dependencies cd server npm install # Install frontend dependencies cd ../client npm install
- Set up environment variables:
- Create
.envfiles in both client and server directories - Add necessary environment variables (see .env.example files)
- Create
- Start the development servers:
# Start backend server cd server npm run dev # Start frontend server cd ../client npm start