Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enterprise Task Hub

Enterprise Task Hub Logo

Enterprise Task Hub

A modern enterprise task management platform that enables organizations to efficiently assign, manage, track, and review employee tasks through a secure role-based workflow.

Next.js React Node.js Express.js MongoDB JWT Vercel

Enterprise Task Hub is a full-stack enterprise task management platform designed to simplify how organizations assign work, monitor employee progress, and manage task approvals.

The platform provides dedicated dashboards for Managers/Admins and Employees, allowing each role to perform its own responsibilities efficiently.

Managers can create tasks, assign employees, update priorities, edit task details, review submissions, and either approve or reject completed work. Employees can access assigned tasks, submit completion notes with project links, monitor submission status, and manage their profiles.

Authentication is secured using JWT, bcryptjs, and HTTP Cookies, ensuring that only authorized users can access protected resources.


Live Demo


Preview

Screenshots of Enterprise Task Hub

Click to view screenshots
Home

Home



Admin Dashboard

Admin Dashboard



Manage Tasks

Manage Tasks



Employee Dashboard

Employee Dashboard



My Tasks

My Tasks



Profile

Profile



Not Found

Not Found



Responsive Design

Responsive Home Page Responsive Dashboard

Project Highlights

  • Modern enterprise task management system
  • Secure JWT Authentication
  • Role-based authorization (Admin & Employee)
  • Separate dashboards for Admins and Employees
  • Task assignment and progress tracking
  • Task approval & rejection workflow
  • Task priority management (Low, Medium, High, Critical)
  • Employee submission notes and project links
  • Profile management
  • Responsive user interface
  • MongoDB database integration
  • Built using Express.js and Next.js
  • Deployed on Vercel

Table of Contents


Introduction

Enterprise Task Hub is a complete full-stack task management solution built for organizations that need a structured way to manage employee work.

The application solves common workplace challenges by providing a centralized platform where managers can assign tasks, employees can complete and submit work, and administrators can review and approve submissions.

The system follows a role-based architecture with two primary user roles:

  • Admin / Manager
  • Employee

Each role has its own dashboard and permissions.

Admins and managers have complete control over task management, including creating tasks, assigning employees, modifying task details, updating priorities, and reviewing submissions.

Employees can access their assigned tasks, update their progress, submit completion details, and track approval status.

The application focuses on:

  • Secure authentication
  • Efficient task management
  • Transparent workflow
  • Employee productivity tracking
  • Easy collaboration between managers and employees

Features

Authentication & Security

  • User registration and login system
  • JWT-based authentication
  • Secure password hashing using bcryptjs
  • HTTP cookie-based authentication
  • Protected frontend routes
  • Protected backend APIs
  • Role-based access control
  • Secure session management

Admin / Manager Features

Dashboard

  • Dedicated admin dashboard
  • Overview of assigned tasks
  • Employee activity tracking
  • Task progress monitoring

Task Management

  • Create new tasks
  • Assign tasks to employees
  • Edit existing tasks
  • Delete tasks
  • Update task details
  • Change task priority
  • Manage task status

Task Priority Management

Tasks can have different priority levels:

Priority Description
Low Normal priority tasks
Medium Regular business tasks
High Important tasks requiring attention
Critical Urgent tasks requiring immediate action

Submission Management

Managers can:

  • Review employee submissions
  • Check submission notes
  • Open submitted project links
  • Accept completed tasks
  • Reject incomplete submissions
  • Request improvements

Employee Features

Employee Dashboard

Employees get a personalized dashboard where they can:

  • View assigned tasks
  • Track task progress
  • Monitor submission status
  • Manage profile information

Task Submission

Employees can submit completed tasks with:

  • Completion notes
  • Project links
  • Repository links
  • Demo links
  • Additional information

Progress Tracking

Employees can:

  • View pending tasks
  • View completed tasks
  • Track approved submissions
  • Track rejected submissions

Workflow

Admin / Manager Workflow

flowchart TD

A[Admin Login]
--> B[Manage]

B --> C[Create Task]

C --> D[Assign Employee]

D --> E[Employee Receives Task]

E --> F[Employee Completes Work]

F --> G[Employee Submits Task]

G --> H[Manager Reviews Submission]

H --> I{Decision}

I -->|Accept| J[Task Completed]

I -->|Reject| K[Employee Updates Work]

K --> G
Loading

Employee Workflow

flowchart TD

A[Employee Login]

A --> B[My Task]

B --> C[View Assigned Tasks]

C --> D[Complete Task]

D --> E[Submit Notes + Link]

E --> F[Waiting For Review]

F --> G{Manager Decision}

G -->|Approved| H[Completed]

G -->|Rejected| I[Modify Task]

I --> D
Loading

Task Lifecycle

Created
   |
Assigned
   |
Pending
   |
Submitted
   |
Under Review
   |
Approved / Rejected
   |
Completed

Technologies Used

Frontend

The frontend is built using modern React technologies with Next.js App Router.

Framework

  • Next.js
  • React.js
  • JavaScript

State Management

  • Redux Toolkit

Styling & UI

  • Tailwind CSS
  • Shadcn UI
  • Radix UI Components
  • Lucide Icons

Frontend Utilities

  • clsx
  • tailwind-merge

Backend

The backend provides REST APIs and handles authentication, database operations, and business logic.

Runtime & Framework

  • Node.js
  • Express.js

Database

  • MongoDB
  • Mongoose ODM

Authentication & Security

  • JSON Web Token (JWT)
  • bcryptjs
  • cookie-parser

Backend Utilities

  • dotenv
  • cors

Backend Dependencies

{
  "bcryptjs": "^3.0.3",
  "cookie-parser": "^1.4.7",
  "cors": "^2.8.6",
  "dotenv": "^17.4.2",
  "express": "^5.2.1",
  "jsonwebtoken": "^9.0.3",
  "mongoose": "^9.6.3"
}

Project Structure

Enterprise Task Hub
│
├── backend
│   │
│   ├── controllers
│   │   ├── task.controller.js
│   │   └── user.controller.js
│   │
│   ├── middlewares
│   │   └── isAuthenticated.js
│   │
│   ├── models
│   │   ├── task.model.js
│   │   └── user.model.js
│   │
│   ├── routers
│   │   ├── task.router.js
│   │   └── user.router.js
│   │
│   ├── utils
│   │   └── db.js
│   │
│   ├── index.js
│   ├── package.json
│   └── package-lock.json
│
│
├── frontend
│   │
│   ├── app
│   │   │
│   │   ├── (auth)
│   │   │   ├── signin
│   │   │   │   └── page.js
│   │   │   │
│   │   │   ├── signup
│   │   │   │   └── page.js
│   │   │
│   │   ├── (main)
│   │   │   │
│   │   │   ├── admin-dashboard
│   │   │   │   └── page.js
│   │   │   │
│   │   │   ├── employee-dashboard
│   │   │   │   └── page.js
│   │   │   │
│   │   │   ├── manage-tasks
│   │   │   │   └── page.js
│   │   │   │
│   │   │   ├── profile
│   │   │   │   └── page.js
│   │   │   │
│   │   │   └── tasks
│   │   │       └── page.js
│   │   │
│   │   ├── redux
│   │   │   ├── authSlice.js
│   │   │   └── store.js
│   │   │
│   │   ├── layout.js
│   │   ├── page.js
│   │   ├── globals.css
│   │   ├── provider.js
│   │   └── not-found.js
│   │
│   ├── components
│   │   │
│   │   ├── ui
│   │   │   ├── button.jsx
│   │   │   ├── input.jsx
│   │   │   ├── dialog.jsx
│   │   │   ├── tabs.jsx
│   │   │   └── textarea.jsx
│   │   │
│   │   ├── Navbar.jsx
│   │   ├── Footer.jsx
│   │   ├── ProtectedAuth.js
│   │   ├── EditTaskDialog.jsx
│   │   ├── EditProfileDialog.jsx
│   │   └── SettingsDialog.jsx
│   │
│   ├── lib
│   │   └── utils.js
│   │
│   ├── public
│   │   ├── default_pic.jpg
│   │   ├── logo.jpg
│   │   └── assets
│   │
│   ├── package.json
│   ├── next.config.mjs
│   └── package-lock.json
│
├── screenshots
├── LICENSE
└── README.md

Architecture Overview

Enterprise Task Hub follows a full-stack client-server architecture.

                    User
                     |
                     |
              Next.js Frontend
                     |
                     |
              REST API Requests
                     |
                     |
              Express Backend
                     |
                     |
              MongoDB Database

Frontend Responsibilities

  • User interface rendering
  • Dashboard management
  • Authentication state handling
  • API communication
  • User interaction

Backend Responsibilities

  • Authentication handling
  • Authorization checks
  • Business logic
  • Task management
  • Database operations

Database Responsibilities

  • Store users
  • Store tasks
  • Store submissions
  • Maintain relationships between employees and assigned tasks

Getting Started

Follow the steps below to run Enterprise Task Hub locally on your machine.

Prerequisites

Before starting, make sure you have installed:

  • Node.js (v18 or above recommended)
  • npm or yarn
  • MongoDB database
  • Git

Check your installed versions:

node -v

npm -v

Installation

1. Clone the Repository

git clone https://github.com/Abad-Ali/Enterprise-Task-Hub.git

Navigate into the project:

cd Enterprise-Task-Hub

Backend Setup

Move into the backend directory:

cd backend

Install backend dependencies:

npm install

Create a .env file inside the backend folder.

Example:

PORT=8000

MONGODB_URI=your_mongodb_connection_string

JWT_SECRET=your_jwt_secret_key

CLIENT_URL=http://localhost:3000

Start the backend server:

npm run dev

Backend will run on:

http://localhost:8000

Frontend Setup

Open a new terminal.

Move into frontend:

cd frontend

Install frontend dependencies:

npm install

Create a .env.local file:

NEXT_PUBLIC_API_URL=http://localhost:8000

Start the development server:

npm run dev

Frontend will run on:

http://localhost:3000

Environment Variables

Backend Environment Variables

Variable Description
PORT Backend server port
MONGODB_URI MongoDB database connection
JWT_SECRET Secret key for JWT authentication
CLIENT_URL Frontend application URL

Example:

PORT=8000
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/database
JWT_SECRET=mysecretkey
CLIENT_URL=http://localhost:3000

Frontend Environment Variables

Variable Description
NEXT_PUBLIC_API_URL Backend API URL

Example:

NEXT_PUBLIC_API_URL=http://localhost:8000

Available Scripts

Backend Scripts

Command Description
npm run dev Starts backend development server
npm start Starts production backend server

Frontend Scripts

Command Description
npm run dev Starts Next.js development server
npm run build Creates production build
npm start Starts production application
npm run lint Runs ESLint checks

Running the Application

After starting both servers:

Backend:

http://localhost:8000

Frontend:

http://localhost:3000

The application is now ready to use.


Authentication & Security

Enterprise Task Hub uses a secure authentication system to protect user accounts and application resources.

The authentication system is built using:

  • JWT (JSON Web Token)
  • bcryptjs password encryption
  • HTTP Cookies
  • Protected API Middleware
  • Role-Based Authorization

Authentication Flow

flowchart TD

A[User Registration]
--> B[Password Encryption]

B --> C[User Stored In Database]

C --> D[User Login]

D --> E[JWT Token Generated]

E --> F[Token Stored In Cookie]

F --> G[Protected Routes Access]
Loading

User Roles

The application supports two types of users.

Admin / Manager

Permissions:

  • Access admin dashboard
  • Create tasks
  • Assign employees
  • Update tasks
  • Review submissions
  • Accept submissions
  • Reject submissions

Employee

Permissions:

  • Access employee dashboard
  • View assigned tasks
  • Submit completed tasks
  • Add submission notes
  • Submit project links
  • Track task status

Protected Routes

Protected routes ensure that only authenticated users can access private sections.

Examples:

/admin-dashboard

/employee-dashboard

/manage-tasks

/profile

/tasks

Unauthorized users are redirected to the login page.


Security Features

Implemented security practices:

  • Password hashing before database storage
  • JWT token validation
  • Protected API endpoints
  • Role-based authorization checks
  • Secure cookies
  • Environment-based configuration
  • CORS configuration

API Overview

Enterprise Task Hub uses REST APIs for communication between the frontend and backend.


User APIs

Authentication Routes

Method Endpoint Description
POST /api/v1/user/register Create a new account
POST /api/v1/user/login Login user
GET /api/v1/user/logout Logout user
GET /api/v1/user/profile Get logged-in user details
PUT /api/v1/user/profile Update user profile

Task APIs

Method Endpoint Description
POST /api/v1/task/create Create a new task
GET /api/v1/task/all Get tasks
PUT /api/v1/task/update/:id Update task details
DELETE /api/v1/task/delete/:id Delete task
POST /api/v1/task/submit/:id Submit completed task
PUT /api/v1/task/accept/:id Accept submission
PUT /api/v1/task/reject/:id Reject submission

Deployment

Enterprise Task Hub is deployed using modern cloud deployment practices.

Frontend Deployment

The frontend application is deployed on:

Live Application:

https://enterprise-task-hub-pied.vercel.app


Backend Deployment

The backend can be deployed using platforms such as:

  • Render
  • Railway
  • AWS
  • DigitalOcean
  • Any Node.js hosting provider

Required configuration:

  • Add environment variables
  • Connect MongoDB database
  • Configure frontend URL in CORS
  • Start production server

Production Build

Frontend

Create optimized production build:

npm run build

Start production server:

npm start

Backend

Install dependencies:

npm install

Start server:

npm start

Future Improvements

The following features are planned for future releases:

Communication

  • Real-time notifications
  • Task comments
  • Employee-manager chat
  • Email notifications

Task Management

  • Task deadlines
  • Calendar integration
  • Task templates
  • Recurring tasks
  • File attachments
  • Task history logs

Analytics

  • Employee productivity analytics
  • Task completion reports
  • Performance charts
  • Organization insights

Platform Improvements

  • Mobile application
  • Progressive Web App support
  • Advanced search and filtering
  • Multi-company support
  • Team management system
  • Dark mode improvements

Contributing

Contributions are welcome and appreciated.

If you would like to improve Enterprise Task Hub, follow these steps:

1. Fork the Repository

Create your own fork of the project.


2. Clone Your Fork

git clone https://github.com/Abad-Ali/Enterprise-Task-Hub.git

3. Create a Feature Branch

git checkout -b feature/new-feature

4. Make Your Changes

Improve the project, fix bugs, or add new functionality.


5. Commit Changes

git add .

git commit -m "Add new feature"

6. Push Changes

git push origin feature/new-feature

7. Create Pull Request

Submit a pull request explaining your changes.


Contribution Guidelines

Before submitting a contribution:

  • Follow existing coding style
  • Write clean and readable code
  • Test your changes
  • Update documentation if required
  • Avoid breaking existing features

Author

Abad Ali

Full Stack Developer

Passionate about creating modern, scalable, and user-friendly web applications using current technologies.


Usage Policy

This project is created and maintained by Abad Ali.

You are allowed to:

  • Explore the source code
  • Learn from the implementation
  • Use it as a reference for educational purposes
  • Create improvements through contributions

You are not allowed to:

  • Claim this project as your own work
  • Copy the complete project and redistribute it under your name
  • Use personal branding, images, or content without permission

If you use this project as inspiration, proper credit is appreciated.


Acknowledgements

Special thanks to the open-source community and developers who create amazing tools and libraries that make projects like this possible.

Technologies used in this project:

  • Next.js
  • React
  • Express.js
  • MongoDB
  • Mongoose
  • Redux Toolkit
  • Tailwind CSS
  • JWT
  • Open Source Community

About

Enterprise Task Hub helps organizations streamline how work gets done. It brings together project execution, task management, team collaboration, approval workflows, and performance tracking into a single unified platform—allowing managers ans admin to assign and oversee work effortlessly while teams stay aligned and productive.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages