Skip to content

Latest commit

Β 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ TaskFlow

Full-Stack Team Task Manager with Role-Based Access Control

Live Demo Backend GitHub Release License

A production-ready full-stack web application where teams can create projects, assign tasks, track progress, and manage members β€” all with strict role-based access control and multi-organization isolation.

TaskFlow Dashboard Preview


πŸ“‹ Table of Contents


πŸš€ Live Demo

Service URL Status
Frontend https://taskmanager-frontend-dusky.vercel.app βœ… Live
Backend API taskmanager-3egl.onrender.com βœ… Live

⚠️ 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.

Test Accounts

Role Email Password
Admin admin@demo.com demo1234
Member member@demo.com demo1234

✨ Features

πŸ” 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

πŸ“ Project Management

  • 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

βœ… Task Management

  • 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

πŸ“Š Dashboard

  • Stats: Total tasks, completed, overdue, active projects, team size
  • Task breakdown with animated progress bars
  • Recent activity feed with project context
  • Quick action buttons

βš™οΈ Settings

  • 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

πŸ›  Tech Stack

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

πŸ“ Project Structure

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

⚑ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Git

1. Clone the repo

git clone https://github.com/yourusername/taskflow.git
cd taskflow

2. Start the Backend

cd backend
npm install
node server.js
# Server running at http://localhost:5000

3. Start the Frontend

# New terminal
cd frontend
npm install
npm start
# App running at http://localhost:3000

4. Open the app

Visit http://localhost:3000 and create an Admin account to get started.


πŸ”§ Backend Documentation

See backend/README.md for full backend docs including:

  • All API endpoints
  • Request/response formats
  • Environment variables
  • Database schema

🎨 Frontend Documentation

See frontend/README.md for full frontend docs including:

  • Component overview
  • Environment setup
  • Build and deploy steps
  • Design system tokens

πŸ“‘ API Reference

Auth

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

Admin β€” Team Management

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

Projects

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

Tasks

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

Other

Method Endpoint Auth Description
GET /api/dashboard βœ… Dashboard stats
GET /api/users βœ… List org's users

🚒 Deployment

Backend β†’ Render

  1. Push code to GitHub
  2. Go to render.com β†’ New Web Service
  3. Connect repo β†’ Set Root Directory to backend
  4. Build command: npm install
  5. Start command: node server.js
  6. Add env variable: JWT_SECRET=your_secret_here
  7. Deploy βœ…

Frontend β†’ Vercel

  1. Go to vercel.com β†’ New Project
  2. Import GitHub repo β†’ Set Root Directory to frontend
  3. Add env variable: REACT_APP_API_URL=https://your-backend.onrender.com/api
  4. Deploy βœ…

πŸ“ Changelog

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

v1.0.0 β€” Initial Release

  • βœ… 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

πŸ“„ License

MIT Β© 2024 β€” Feel free to use, modify and distribute.


Built with ❀️ using React + Node.js
Live Demo Β· Report Bug Β· Request Feature

About

Full-Stack Team Task Manager with Role-Based Access Control

Topics

Resources

Code of conduct

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages