This project is a comprehensive Python-based graphical user interface (GUI) application for project management, specifically focusing on the Program Evaluation and Review Technique (PERT) using an Activity-on-Arrow network approach.
It was originally developed as a coursework project for MSc Data Science and has been refined to provide an accurate, interactive, and visually appealing tool for analyzing project schedules.
Check out the full walkthrough of the application on YouTube:
- Platform: The standalone executable is designed for Windows OS (if you receive a Windows Defender warning, select "More info" → "Run anyway").
- Input Format: Uses the Head-Tail Node format (Activity-on-Arrow) rather than dependency mapping. You need to provide the Activity Name, Tail Node, Head Node, and 3 time estimates (Optimistic, Most Likely, Pessimistic).
- Templates: Don't want to type manually? Use the "Load Template" or "Generate template" features within the app to see it in action instantly.
- Activity-on-Arrow Network Representation: Accurately visualizes project nodes and activities.
- Three Time Estimates: Inputs for Optimistic, Most Likely, and Pessimistic time estimates for accurate expected duration and variance calculations.
- Comprehensive Float Calculations: Calculates Total Float, Free Float, and Independent Float.
- Probability Analysis: Calculates the probability of completing the project within a targeted timeframe based on network variance.
- Interactive Network Visualization: Features draggable nodes for optimal layout adjustments.
- Built-in Templates: Includes common project structures (Construction, Software Development, Case Studies) for quick start and learning.
- Data Import/Export: Ability to export reports and diagrams, as well as load data directly from Excel and CSV templates.
- Python: Core programming language.
- Tkinter: Standard GUI library for the application interface.
- NetworkX: For graph algorithms, network structures, and critical path analysis.
- Matplotlib: For rendering the interactive network diagrams.
- Pandas & NumPy: For data management and spreadsheet integration.
- SciPy: For statistical analysis (normal distribution) in probability calculations.
Ensure you have Python 3.7+ installed.
Install the required dependencies using pip:
pip install networkx matplotlib pandas numpy scipyTo run the application from the source code, simply execute the main Python script:
python pert_analyzer.py- Home Screen: Choose Program Evaluation and Review Technique to launch the analyzer.
- Adding Activities: Manually input Tail Node, Head Node, Activity Name, Optimistic, Most Likely, and Pessimistic times using the input table. Click "+ Add Activity" or use the
Tab/Enterkeys to add more rows. - Loading Templates: Click "Load Template" to select from pre-defined project structures to see how the tool works.
- Analysis: Click "Analyze" to compute the event times, critical path, and float values. The network diagram will be rendered, and detailed results will be populated in the tabs.
- Probability Calculation: After analysis, input a target project duration in the visualization pane and click "Calculate" to find the probability of meeting that deadline.
- Exporting: Use "Export to Excel" or "Save Diagram" to save your analysis results.
Developed by Barath K as part of the Optimization Techniques coursework for the MSc Data Science program at Vellore Institute of Technology (VIT).
This project is licensed under the MIT License - see the LICENSE file for details.