TaskPrism is a resource/task allocation app using graph coloring. It helps optimize task scheduling and resource usage. You can view the live app here.
This project demonstrates the use of graph coloring algorithms to optimize resource allocation in project management. By implementing a task allocation system, it ensures efficient task scheduling, minimizes resource conflicts, and helps project managers optimize resource usage. The system visualizes task dependencies and generates efficient execution schedules while considering task priorities, durations, and deadlines.
- Dynamic Graph Generation: Creates task dependency graphs with adjustable density
- Resource Allocation: Uses graph coloring algorithm to optimally assign resources to tasks
- Interactive Visualizations:
- Task dependency graph visualization
- Adjacency matrix representation
- Interactive Gantt chart for task execution timeline
- Task Management:
- Customizable task durations
- Deadline setting
- Priority assignment
- Task descriptions
- Analysis Tools:
- Automatic detection of overdue tasks
- Resource allocation overview
- Exportable task execution data
To follow priority in task allocation, set Priority = 1 for critical tasks.
Required Python packages:
- streamlit
- numpy
- pandas
- networkx
- matplotlib
- plotly
- Clone the repository
- Install required packages:
pip install streamlit numpy pandas networkx matplotlib plotly
-
Run the Streamlit application:
streamlit run app.py
-
Use the sidebar to configure:
- Number of tasks
- Graph density (probability of dependencies between tasks)
- Number of available resources
- Individual task details (duration, deadline, description, priority)
-
Click "Generate Graph and Allocate Tasks" to:
- View the task dependency graph
- See resource allocation
- Analyze the execution timeline
- Check for potential scheduling conflicts
-
Export the task execution data as CSV for further analysis
-
Task Dependency Graph
- Nodes represent tasks
- Edges represent dependencies
- Colors represent assigned resources
- Interactive visualization using NetworkX
-
Gantt Chart
- Interactive timeline of task execution
- Color-coded by resource
- Shows task durations and dependencies
- Built using Plotly
- Support for resource-specific constraints
- Multiple resource requirements per task
- Cost optimization
- Custom dependency definition
- Historical data analysis
- Resource load balancing
- Integration with project management tools
Contributions are welcome! Please feel free to submit a Pull Request.