⚠️ Note: The backend runs on Render's free tier and may take 30–60 seconds to wake up after inactivity. Please be patient on first load.
🔐 Authentication & Security
JWT-based login and signup
Show/hide password toggle on all password fields
Change password from Settings with current password verification
Auto-logout after password change
Protected routes — unauthenticated users redirected to login
Role-based route guards (admin-only pages)
👥 Multi-Organization Team Management
Complete org isolation — each admin manages their own team independently
Admin creates members and receives auto-generated credentials to share
Credentials modal with one-click copy button
Admin can reset any member's password and get new credentials
Admin can remove members from their organization
Members from one org cannot be seen or added by another org's admin
Create, edit, delete projects
Visual progress bars showing task completion percentage
Project status: Active / Completed / Archived
Add your org's members to projects
Each admin sees only their own projects
Kanban Board view with To Do / In Progress / Done columns
List / Table view toggle
Create, edit, delete tasks
Assign tasks to team members
Priority levels: Low / Medium / High
Due dates with overdue detection (highlighted in red)
Quick status change buttons directly on Kanban cards
Stats: Total tasks, completed, overdue, active projects, team size
Task breakdown with animated progress bars
Recent activity feed with project context
Quick action buttons
Profile info display (name, email, role, account ID, join date)
Change password with show/hide toggle and confirm match validation
Logout button with confirmation step
Layer
Technology
Purpose
Frontend
React 18
UI framework
Routing
React Router v6
Client-side routing
HTTP Client
Axios
API requests
Notifications
React Hot Toast
Toast messages
Dates
date-fns
Date formatting & comparison
Backend
Node.js + Express.js
REST API server
Database
JSON file (via Node fs)
Zero-dependency data storage
Auth
JWT + Node crypto
Token-based authentication
Frontend Deploy
Vercel
Static site hosting
Backend Deploy
Render
Node.js server hosting
taskflow/
├── 📄 README.md ← You are here
│
├── 📁 backend/
│ ├── 📄 server.js ← Express API (all routes)
│ ├── 📄 package.json ← Backend dependencies
│ ├── 📄 db.json ← Auto-generated JSON database
│ └── 📄 README.md ← Backend-specific docs
│
└── 📁 frontend/
├── 📁 public/
│ └── 📄 index.html
├── 📁 src/
│ ├── 📁 pages/
│ │ ├── 📄 Login.js ← Login with show/hide password
│ │ ├── 📄 Signup.js ← Registration page
│ │ ├── 📄 Dashboard.js ← Stats + recent activity
│ │ ├── 📄 Projects.js ← Project list + create
│ │ ├── 📄 ProjectDetail.js ← Kanban board + task list
│ │ ├── 📄 Team.js ← Admin member management
│ │ └── 📄 Settings.js ← Profile + change password
│ ├── 📁 components/
│ │ └── 📄 Sidebar.js ← Navigation + logout
│ ├── 📄 AuthContext.js ← Auth state (login/logout/signup)
│ ├── 📄 api.js ← Axios instance + interceptors
│ ├── 📄 App.js ← Routes + providers
│ ├── 📄 App.css ← Full design system (CSS vars)
│ └── 📄 index.js ← React entry point
├── 📄 package.json
├── 📄 .env ← REACT_APP_API_URL
└── 📄 README.md ← Frontend-specific docs
Node.js 18+
npm or yarn
Git
git clone https://github.com/yourusername/taskflow.git
cd taskflow
cd backend
npm install
node server.js
# Server running at http://localhost:5000
# New terminal
cd frontend
npm install
npm start
# App running at http://localhost:3000
Visit http://localhost:3000 and create an Admin account to get started.
See backend/README.md for full backend docs including:
All API endpoints
Request/response formats
Environment variables
Database schema
See frontend/README.md for full frontend docs including:
Component overview
Environment setup
Build and deploy steps
Design system tokens
Method
Endpoint
Auth
Description
POST
/api/auth/signup
❌
Register new user
POST
/api/auth/login
❌
Login and get JWT
GET
/api/auth/me
✅
Get current user profile
PUT
/api/auth/change-password
✅
Change password
Method
Endpoint
Auth
Description
POST
/api/admin/create-member
✅ Admin
Create member + get credentials
POST
/api/admin/reset-member-password/:id
✅ Admin
Reset member password
DELETE
/api/admin/members/:id
✅ Admin
Remove member from org
Method
Endpoint
Auth
Description
GET
/api/projects
✅
List user's projects
POST
/api/projects
✅
Create project
GET
/api/projects/:id
✅
Get project + members
PUT
/api/projects/:id
✅
Update project
DELETE
/api/projects/:id
✅
Delete project
POST
/api/projects/:id/members
✅ Admin
Add member to project
DELETE
/api/projects/:id/members/:uid
✅ Admin
Remove member from project
Method
Endpoint
Auth
Description
GET
/api/projects/:id/tasks
✅
List project tasks
POST
/api/projects/:id/tasks
✅
Create task
PUT
/api/tasks/:id
✅
Update task
DELETE
/api/tasks/:id
✅
Delete task
Method
Endpoint
Auth
Description
GET
/api/dashboard
✅
Dashboard stats
GET
/api/users
✅
List org's users
Push code to GitHub
Go to render.com → New Web Service
Connect repo → Set Root Directory to backend
Build command: npm install
Start command: node server.js
Add env variable: JWT_SECRET=your_secret_here
Deploy ✅
Go to vercel.com → New Project
Import GitHub repo → Set Root Directory to frontend
Add env variable: REACT_APP_API_URL=https://your-backend.onrender.com/api
Deploy ✅
v2.0.0 — Multi-Org + Security Update
✅ Multi-organization isolation (each admin manages own team)
✅ Admin creates members with auto-generated credentials
✅ Credential sharing modal with copy button
✅ Password reset for members
✅ Change password feature with current password verification
✅ Show/hide password toggle on all password fields
✅ Logout with confirmation step in sidebar
✅ Settings page with profile info
✅ Team management page (admin only)
✅ Dashboard team member count stat
✅ JWT Authentication (Signup / Login)
✅ Role-based access control (Admin / Member)
✅ Project CRUD with progress tracking
✅ Task management with Kanban board
✅ List/Table view toggle
✅ Priority levels and due dates
✅ Overdue detection
✅ Dashboard with stats and recent activity
✅ Dark theme UI with Syne + DM Sans fonts
MIT © 2024 — Feel free to use, modify and distribute.