Skip to content

VaidehiDeore/Task-Scheduler-Optimization-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Scheduler Optimization System

Project Overview

Task Scheduler Optimization System is a Data Structures and Algorithms based project that optimizes task execution using scheduling techniques. The system allows users to create tasks with priorities, deadlines, execution times, profit scores, required skills, and dependencies. Resources can also be added with specific skills and working-hour constraints.

The scheduler processes all tasks and resources, applies scheduling logic using Sorting, Priority Queues, Heaps, and Greedy Algorithms, and generates an optimized execution schedule. The system provides analytics, resource utilization reports, schedule timelines, and performance metrics through a modern dashboard.

This project demonstrates how scheduling logic used in operating systems, project management tools, cloud computing platforms, and enterprise planning systems can be implemented using core DSA concepts.


Problem Statement

Managing multiple tasks manually becomes difficult when deadlines, priorities, dependencies, execution times, and resource constraints are involved.

The main challenges include:

  • Deciding which task should execute first
  • Allocating resources efficiently
  • Minimizing missed deadlines
  • Maximizing overall profit and productivity
  • Managing task dependencies correctly
  • Monitoring resource utilization

This project solves these challenges by automatically generating an optimized task schedule.


Features

  • Dynamic task creation
  • Dynamic resource management
  • Priority-based scheduling
  • Deadline-aware scheduling
  • Dependency handling
  • Skill-based resource assignment
  • Optimized task execution order
  • Completed and missed task tracking
  • Total profit calculation
  • Resource utilization monitoring
  • Interactive schedule timeline
  • Performance analytics dashboard
  • Modern responsive user interface
  • FastAPI backend
  • React frontend
  • CSV dataset support
  • GitHub-ready project structure

DSA Concepts Used

Sorting

Tasks are sorted according to deadlines, priorities, and profit scores.

Priority Queue

Tasks are selected efficiently using a priority queue.

Heap

Heap-based scheduling improves task selection performance.

Greedy Algorithm

The scheduler selects the best possible task at each step to maximize efficiency.

Queue

Used for task processing and scheduling flow.

Dependency Handling

Tasks with dependencies are executed only after prerequisite tasks are completed.

Scheduling Algorithms

Task ordering is optimized based on multiple constraints.

Complexity Analysis

  • Sorting: O(n log n)
  • Heap Operations: O(log n)
  • Scheduling: O(n log n)

System Workflow

Task Input
    ↓
Task Validation
    ↓
Sorting
    ↓
Priority Queue Processing
    ↓
Scheduling Algorithm
    ↓
Resource Assignment
    ↓
Dependency Verification
    ↓
Optimized Schedule Generation
    ↓
Timeline Visualization
    ↓
Performance Analytics
    ↓
Final Report Generation

Algorithm Explanation

Step 1: Task Creation

Each task contains:

  • Task ID
  • Task Name
  • Priority
  • Deadline
  • Execution Time
  • Profit Score
  • Required Skill
  • Dependencies

Step 2: Resource Creation

Each resource contains:

  • Resource ID
  • Resource Name
  • Skills
  • Shift Start Time
  • Shift End Time
  • Maximum Working Hours

Step 3: Validation

The system validates:

  • Empty fields
  • Invalid deadlines
  • Invalid execution times
  • Missing skills
  • Invalid dependencies

Step 4: Sorting

Tasks are sorted based on:

  1. Deadline
  2. Priority
  3. Profit Score

Step 5: Priority Queue

Tasks are inserted into a heap-based priority queue for efficient selection.

Step 6: Scheduling

The greedy scheduler:

  • Selects the highest-priority feasible task
  • Checks resource availability
  • Checks required skills
  • Verifies dependencies
  • Assigns start and end times

Step 7: Performance Calculation

The system calculates:

  • Total tasks
  • Completed tasks
  • Missed tasks
  • Total profit
  • Completion rate
  • Missed task rate
  • Resource utilization

Folder Structure

Task-Scheduler-Optimization-System/
│
├── backend/
│   ├── requirements.txt
│   ├── run.py
│   └── app/
│       ├── main.py
│       ├── models.py
│       └── scheduler.py
│
├── frontend/
│   ├── index.html
│   ├── package.json
│   └── src/
│       ├── main.jsx
│       └── style.css
│
├── data/
│   ├── sample_tasks.csv
│   └── sample_resources.csv
│
├── docs/
│   └── architecture.md
│
├── images/
│   ├── dashboard-home.png
│   ├── task-management.png
│   ├── resource-management.png
│   ├── schedule-timeline.png
│   └── reports-analytics.png
│
├── outputs/
│
├── README.md
├── .gitignore
└── main.py

Installation & Run

Create Virtual Environment

python -m venv venv

Activate Environment

.\venv\Scripts\Activate.ps1

Install Backend Dependencies

pip install -r backend\requirements.txt

Run Backend

python backend\run.py

Backend runs on:

http://127.0.0.1:8000

Run Frontend

Open a new terminal:

cd frontend

npm install

npm run dev

Open:

http://localhost:5173

Sample Input

Tasks

T1 | Design UI | Priority 5 | Deadline 48 | Duration 3 | Profit 90 | frontend
T2 | Build API | Priority 4 | Deadline 60 | Duration 4 | Profit 120 | backend | Depends on T1
T3 | Test Flow | Priority 4 | Deadline 72 | Duration 2 | Profit 80 | qa | Depends on T2

Resources

R1 | Backend Engineer | backend|qa | Shift 0-24 | Max Hours 24
R2 | Frontend Developer | frontend | Shift 0-24 | Max Hours 24

Sample Output

Completed Tasks : 3
Missed Tasks    : 0
Total Profit    : 290

Optimized Schedule:

T1 Design UI    Start: 0  End: 3
T2 Build API    Start: 3  End: 7
T3 Test Flow    Start: 7  End: 9

Completion Rate : 100%

Dashboard Modules

Dashboard

Displays:

  • Total Tasks
  • Completed Tasks
  • Missed Tasks
  • Total Profit

Task Management

  • Add tasks
  • Edit tasks
  • Delete tasks

Resource Management

  • Add resources
  • Manage skills
  • Configure shifts

Schedule Timeline

  • Optimized schedule
  • Gantt-style timeline
  • Resource assignments

Reports & Analytics

  • Completion rate
  • Missed task rate
  • Profit metrics
  • Resource utilization

Screenshots

Dashboard Overview

Dashboard Overview

Task Management

Task Management

Resource Management

Resource Management

Schedule Timeline

Schedule Timeline

Reports Analytics

Reports Analytics


Real World Applications

  • Project Management Systems
  • Operating System Scheduling
  • Cloud Job Scheduling
  • Workforce Planning
  • Manufacturing Scheduling
  • Resource Allocation Systems
  • Enterprise Planning Tools

Learning Outcomes

Through this project, I learned:

  • Sorting techniques
  • Heap and Priority Queue implementation
  • Greedy scheduling algorithms
  • Dependency handling
  • Resource allocation strategies
  • Task optimization techniques
  • FastAPI backend development
  • React frontend development
  • Dashboard design
  • GitHub project documentation
  • Software engineering practices
  • Practical DSA implementation

Future Enhancements

  • CP-SAT Optimization
  • Integer Linear Programming
  • Multi-resource scheduling
  • Real-time notifications
  • Authentication system
  • Database integration
  • Team collaboration features
  • Exportable reports
  • Advanced analytics
  • AI-assisted scheduling recommendations

Author

Vaidehi Deore

About

A constraint-aware task scheduling optimization system using DSA concepts like sorting, priority queue, greedy scheduling, dependency handling, and performance analytics with a modern dashboard.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors