TaskFlow Pro is a state-of-the-art, production-ready MERN stack software-as-a-service (SaaS) application designed to bridge the gap between team operations and client communications. Combining professional-grade task tracking, real-time collaboration, instant notifications, automated PDF reporting, and integrated AI-powered workflow guidance, it serves as an all-in-one ecosystem for agency operations and customer success.
- Production App (Frontend): https://task-flow-pro-project-management-cl.vercel.app
- Production Server (Backend): https://taskflow-pro-project-management-client.onrender.com
- API Base Gateway:
https://taskflow-pro-project-management-client.onrender.com/api
- Key Features
- Tech Stack Overview
- Architecture & Project Structure
- Environment Variables
- Local Development Setup
- Docker Containerization
- Production Deployment Guide
- Security & Credentials Management
- Release Versioning
- Possible Future Enhancements
- Author & Repository Info
| Category | Features Description |
|---|---|
| ๐ Authentication | Secure local signup/signin with email verification, secure bcrypt password hashing, and OAuth 2.0 (Google & GitHub Strategies via Passport.js). |
| ๐ฅ Workspaces & Teams | Dynamic multi-tenant organization. Invite users via signed secure links with token expiration; manage granular roles (Owner, Admin, Member, Client). |
| ๐ Projects & Kanban Tasks | Create projects, allocate tasks, assign owners, trace milestones, and shift states instantly using an interactive, custom drag-filtered Kanban interface. |
| ๐ฌ Real-Time Chat | Live team chatrooms integrated via WebSockets (Socket.IO) allowing instant communication and discussion flow tracking. |
| โ๏ธ Emails & Notifications | Transactional verification codes and formatted invitation emails delivered via Brevo (SMTP); live inside-app persistent notifications for project milestones. |
| ๐ Analytics & PDF Exports | Executive metrics dashboards presenting workspace statistics, visual project completions, and automated invoice/report downloads using jspdf & jspdf-autotable. |
| ๐ค AI Guidance Assistant | Guidance-focused AI assistant for helping users understand workflows, prerequisites, and app usage inside their workspaces. |
| ๐ณ Containerization | Multi-stage Docker integration for rapid, standardized deployment. |
- Core: React 19 (Hooks, Context Providers for Auth and Active Workspaces)
- Routing: React Router v8 (Protected Routes routing validation)
- Styling: Tailwind CSS v4 (Sleek dark/light theme, custom CSS at-rules)
- PDF Generation:
jspdf&jspdf-autotable - Icons & Loaders: Lucide-React
- Build Pipeline: Vite (highly optimized client-side bundler)
- Runtime: Node.js v24 (ES Modules configuration)
- Framework: Express v5 (async handlers, structured response middleware)
- Database: MongoDB via Mongoose ODM (models for relational-style validation)
- Authentication: Passport.js (Google and GitHub OAuth strategies) & JWT
- Real-time: Socket.IO
- Emailing: Nodemailer (SMTP relay setup)
- Docker: Multi-stage Dockerfiles + Docker Compose orchestration
- Hosting: Vercel (Frontend SPA) + Render (Backend Node Service)
- Database Host: MongoDB Atlas cloud cluster
- Email Service: Brevo SMTP Relay
The project is split cleanly into frontend/ (Vite SPA) and backend/ (REST API and WebSocket Server):
taskflow-pro/
โโโ docker-compose.yml # Docker Compose orchestration
โโโ README.md # Documentation
โโโ backend/ # Node.js API Service
โ โโโ Dockerfile # Multi-stage production container
โ โโโ .dockerignore
โ โโโ .env.example # Template for environment settings
โ โโโ package.json
โ โโโ src/
โ โโโ server.js # Express & Socket.IO server bootloader
โ โโโ app.js # Express middleware & routes registry
โ โโโ config/ # DB connections & passport registrations
โ โโโ controllers/ # Request handlers (auth, tasks, etc.)
โ โโโ middleware/ # Role, Auth, and error handlers
โ โโโ models/ # Database Mongoose schemas
โ โโโ routes/ # Endpoint routing maps
โ โโโ services/ # Background engines (AI service, socket)
โ โโโ sockets/ # WebSocket event registers
โ โโโ utils/ # Shared helper classes (API responses)
โโโ frontend/ # React Client Application
โโโ Dockerfile # Production-ready client container
โโโ nginx.conf # Nginx runtime configuration for routing
โโโ .env.example # Client endpoint settings template
โโโ package.json
โโโ vite.config.js # Vite compiler config with Tailwind plug
โโโ public/ # Static resources (favicon, icons)
โโโ src/
โโโ main.jsx # DOM mounting hub
โโโ App.jsx # Routes router mapping
โโโ index.css # Main styling rules + Tailwind declarations
โโโ components/ # Modals, palettes, assistant components
โ โโโ ui/ # Reusable structural form elements
โโโ context/ # Context wrappers for Auth & Workspace
โโโ hooks/ # Animation & count-up custom hooks
โโโ layouts/ # Dashboard and Auth grid systems
โโโ pages/ # Page route elements (Tasks, Members)
โโโ services/ # REST API communication modules
โโโ utils/ # Alerts triggers, validation, tokens
Create a .env file in the backend/ directory using these placeholder patterns:
# General
PORT=5000
NODE_ENV=development
MONGO_URI=mongodb://localhost:27017/taskflow-pro
JWT_SECRET=your_jwt_secret_here
JWT_EXPIRES_IN=7d
# Frontend
FRONTEND_URL=http://localhost:5173
# Email Integration (e.g. Brevo/SendGrid/SMTP)
EMAIL_HOST=smtp-relay.brevo.com
EMAIL_PORT=587
EMAIL_USER=your_email_user_here
EMAIL_PASS=your_email_pass_here
EMAIL_FROM_NAME=TaskFlow Pro
EMAIL_FROM=noreply@yourdomain.com
FEEDBACK_NOTIFY_EMAIL=admin@yourdomain.com
SUPPORT_NOTIFY_EMAIL=admin@yourdomain.com
# Google Auth
GOOGLE_CLIENT_ID=your_google_client_id_here
GOOGLE_CLIENT_SECRET=your_google_client_secret_here
GOOGLE_CALLBACK_URL=http://localhost:5000/api/auth/google/callback
# GitHub Auth
GITHUB_CLIENT_ID=your_github_client_id_here
GITHUB_CLIENT_SECRET=your_github_client_secret_here
GITHUB_CALLBACK_URL=http://localhost:5000/api/auth/github/callback
# AI Assistant
AI_PROVIDER=cloudflare
CLOUDFLARE_ACCOUNT_ID=your_cloudflare_account_id_here
CLOUDFLARE_API_TOKEN=your_cloudflare_workers_ai_token_here
CLOUDFLARE_AI_MODEL=@cf/meta/llama-3.1-8b-instruct
CLOUDFLARE_AI_URL=https://api.cloudflare.com/client/v4/accounts
AI_DAILY_MESSAGE_LIMIT=100
AI_HOURLY_ACTION_LIMIT=20Create a .env file in the frontend/ directory:
VITE_API_URL=http://localhost:5000/api- Node.js v20+ / Node.js v24+
- MongoDB Server active locally or a MongoDB Atlas Cloud cluster string.
# Navigate to backend
cd backend
# Install node dependencies
npm install
# Populate your env variables
cp .env.example .env
# Run the Express server in hot-reload mode
npm run dev# Open a new terminal and navigate to frontend
cd frontend
# Install client packages
npm install
# Setup local env
cp .env.example .env
# Fire up Vite local development server
npm run devNavigate your browser to: http://localhost:5173.
Ensure you have Docker and Docker Compose installed.
# Stand up database, backend, and frontend containers in detached mode
docker-compose up -d --buildThis builds:
- MongoDB Database container mapped to port
27017. - Node Express Server accessible at
http://localhost:5000. - Vite App / Nginx container served at
http://localhost:5173.
To spin down and remove docker volumes:
docker-compose down -v- Provision a free Shared Tier cluster on MongoDB Atlas.
- Add
0.0.0.0/0(or Render/Vercel IP ranges) to the database Network IP whitelist. - Generate your connection URI and paste it as
MONGO_URIin the production environment variables.
- Connect your GitHub repository to Render and choose the Web Service option.
- Configure build environments:
- Root Directory:
backend - Build Command:
npm install - Start Command:
npm start
- Root Directory:
- Provide env variables mapping from your local
.envkeys. Enable Google and GitHub OAuth callbacks matching your live Render URL.
- Import repository to Vercel and assign the root directory to
frontend. - Configure production build settings:
- Build Command:
npm run build - Output Directory:
dist
- Build Command:
- Set the Environment Variable
VITE_API_URLto point to the live Render Backend API (e.g.,https://your-backend.onrender.com/api).
- Credential Isolation: Never commit
.envconfiguration files to the repository. The.gitignorefiles are explicitly pre-configured to ignore all local env settings files. - Token Expirations: JWT structures use token expiration parameters. Verification links expire 7 days after issue to safeguard invite workflows.
- Password Cryptography: Users logging in with custom passwords are protected by salt-rounded bcrypt hashing algorithms.
- API Rate Limits: Built-in Express rate-limit middleware controls rapid sequential API calls to defend routes from basic DDoS or brute-force queries.
- v1.0.0: Final production release of TaskFlow Pro, incorporating fully active dashboards, transactional Brevo mailing, Google and GitHub social authentications, Kanban workflow status movements, chat integration, and cloud deployment pipelines.
- Multi-tenant isolated file vaults: Transition attachments from local directory streams to AWS S3 or Google Cloud Storage.
- Granular Permission Matrices: Expand basic role structures (Owner, Admin, Member, Client) to allow custom per-action permissions.
- Global Video Integrations: Incorporate instant live meeting endpoints or calendar invites sync directly from workspace dashboards.
- Project Owner: Roy Eid
- GitHub Profile: @RoyEid
- Source Code Repository: https://github.com/RoyEid/https://github.com/RoyEid/taskflow-pro-saas
- Production Frontend: https://task-flow-pro-project-management-cl.vercel.app
- Production Backend: https://taskflow-pro-project-management-client.onrender.com