Skip to content

drogoXX/ScheduleAss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

61 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Schedule Quality Analyzer

Automated EPC Schedule Assessment & Analysis Application

Version Python Streamlit License

๐Ÿ“‹ Overview

The Schedule Quality Analyzer is a web-based application designed to automate the assessment and analysis of EPC (Engineering, Procurement, Construction) project schedules against industry best practices. It implements DCMA 14-Point Schedule Assessment and GAO Schedule Assessment Guide methodologies, providing project managers and schedulers with instant, data-driven insights into schedule quality, risks, and improvement opportunities.

โœจ Key Features

  • โœ… Automated Schedule Analysis - DCMA 14-Point and GAO compliance checking
  • ๐Ÿ“Š Interactive Dashboards - Real-time metrics with visualizations
  • ๐Ÿ“„ Professional Reports - Generate DOCX and Excel reports
  • ๐Ÿ” Schedule Comparison - Track quality improvements across versions
  • ๐Ÿ‘ฅ Multi-User Access - Role-based permissions (Admin/Viewer)
  • ๐Ÿ’ก Smart Recommendations - Prioritized, actionable improvement suggestions
  • ๐ŸŽฏ Health Score - Composite 0-100 metric for schedule quality

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.11 or higher
  • pip package manager
  • Git

Installation

  1. Clone the repository
git clone https://github.com/drogoXX/ScheduleAss.git
cd ScheduleAss
  1. Install dependencies
pip install -r requirements.txt
  1. Run the application
streamlit run app.py
  1. Access the application
  • Open your browser to http://localhost:8501
  • Login with demo credentials (see below)

Demo Credentials

Admin Account:

  • Username: admin
  • Password: admin123

Viewer Account:

  • Username: viewer
  • Password: viewer123

๐Ÿ“– User Guide

Uploading a Schedule

  1. Navigate to Upload Schedule page
  2. Select an existing project or create a new one
  3. Upload your P6 CSV export file
  4. Click Upload and Analyze
  5. Wait for analysis to complete (10-30 seconds)

Viewing Analysis

  1. Go to Analysis Dashboard
  2. Select a schedule from the dropdown
  3. Explore different tabs:
    • Overview: Health score and key metrics
    • Detailed Metrics: In-depth analysis with charts
    • Issues: Identified problems by severity
    • Recommendations: Prioritized improvement actions
    • Activities: Searchable activity list

Generating Reports

  1. Visit Reports page
  2. Select a schedule
  3. Choose report type:
    • DOCX: Executive summary for stakeholders
    • Excel: Detailed analysis for technical teams
  4. Click Generate and download

Comparing Schedules

  1. Navigate to Comparison page
  2. Select two schedule versions
  3. View side-by-side metrics
  4. Analyze improvements or regressions

๐Ÿ—๏ธ Project Structure

ScheduleAss/
โ”œโ”€โ”€ app.py                          # Main application entry point
โ”œโ”€โ”€ requirements.txt                # Python dependencies
โ”œโ”€โ”€ .streamlit/
โ”‚   โ””โ”€โ”€ config.toml                # Streamlit configuration
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ auth/
โ”‚   โ”‚   โ””โ”€โ”€ auth_manager.py        # Authentication logic
โ”‚   โ”œโ”€โ”€ parsers/
โ”‚   โ”‚   โ””โ”€โ”€ schedule_parser.py     # CSV parser for P6 exports
โ”‚   โ”œโ”€โ”€ analysis/
โ”‚   โ”‚   โ”œโ”€โ”€ dcma_analyzer.py       # DCMA metrics calculator
โ”‚   โ”‚   โ”œโ”€โ”€ metrics_calculator.py  # CPLI, BEI, health score
โ”‚   โ”‚   โ””โ”€โ”€ recommendations.py     # Recommendations engine
โ”‚   โ”œโ”€โ”€ database/
โ”‚   โ”‚   โ””โ”€โ”€ db_manager.py          # Data storage manager
โ”‚   โ”œโ”€โ”€ reports/
โ”‚   โ”‚   โ”œโ”€โ”€ docx_generator.py      # DOCX report generator
โ”‚   โ”‚   โ””โ”€โ”€ excel_generator.py     # Excel report generator
โ”‚   โ””โ”€โ”€ utils/
โ”‚       โ””โ”€โ”€ helpers.py             # Utility functions
โ”œโ”€โ”€ pages/
โ”‚   โ”œโ”€โ”€ 1_Upload_Schedule.py       # Upload interface
โ”‚   โ”œโ”€โ”€ 2_Analysis_Dashboard.py    # Main dashboard
โ”‚   โ”œโ”€โ”€ 3_Comparison.py            # Schedule comparison
โ”‚   โ”œโ”€โ”€ 4_Reports.py               # Report generation
โ”‚   โ””โ”€โ”€ 5_Settings.py              # Settings and profile
โ”œโ”€โ”€ data/
โ”‚   โ””โ”€โ”€ sample_schedule.csv        # Sample P6 export
โ””โ”€โ”€ README.md                      # This file

๐Ÿ“Š Supported CSV Format

The application expects Primavera P6 CSV exports with the following columns:

Required Columns

  • Activity ID
  • Activity Name
  • Activity Status
  • Start
  • Finish
  • Total Float
  • Duration Type

Optional Columns (Recommended)

  • WBS Code
  • At Completion Duration
  • Free Float
  • Predecessors / Predecessor Details
  • Successors / Successor Details
  • Primary Constraint
  • Activity Type
  • Resource Names

Example P6 Export Settings

When exporting from P6:

  1. File โ†’ Export โ†’ Spreadsheet
  2. Select "Activity" layout
  3. Include all columns listed above
  4. Export as CSV format

๐Ÿ” Analysis Metrics

DCMA 14-Point Assessment

Metric Description Target
Negative Lags Activities with lead relationships 0
Positive Lags Percentage of relationships with lags โ‰ค5%
Hard Constraints Activities with mandatory dates โ‰ค10%
Missing Logic Activities without predecessors/successors 0
Long Durations Activities exceeding 20 days Minimize
High Float Excessive total float activities Review

Performance Indices

  • CPLI (Critical Path Length Index)

    • Formula: (Critical Path + Total Float) / Critical Path
    • Target: โ‰ฅ 0.95
    • Measures schedule compression risk
  • BEI (Baseline Execution Index)

    • Formula: Completed Tasks / Planned Tasks
    • Target: โ‰ฅ 0.95
    • Measures schedule adherence
  • Health Score

    • Composite metric (0-100)
    • Based on DCMA compliance
    • Ratings: Excellent (90-100), Good (75-89), Fair (60-74), Poor (40-59), Critical (0-39)

๐Ÿ” Security & Authentication

User Roles

Role Permissions
Admin Upload schedules, run analysis, generate reports, delete data, manage users
Viewer View dashboards, access reports (read-only)

Session Management

  • 30-minute inactivity timeout
  • Password-based authentication
  • Session state isolation
  • Audit logging for all actions

๐Ÿ› ๏ธ Technology Stack

Component Technology
Frontend Streamlit 1.28+
Backend Python 3.11+
Database Session-based (upgradeable to Pocketbase)
Data Processing Pandas, NumPy
Visualization Plotly, Altair, Matplotlib
Reports python-docx, openpyxl
Authentication Streamlit Session State

๐Ÿ“ˆ Performance

  • CSV Parsing: <10 seconds for 1000-1500 activities
  • Analysis Execution: <30 seconds for full DCMA assessment
  • Dashboard Rendering: <5 seconds for all visualizations
  • Report Generation: <15 seconds for DOCX and Excel

๐Ÿšง Troubleshooting

Common Issues

"Missing required columns" error

  • Verify P6 export includes all required fields
  • Check column names match expected format

"Failed to parse CSV" error

  • Ensure file is valid CSV format
  • Remove special characters or formatting issues
  • Try re-exporting from P6

Analysis takes too long

  • Large schedules (>5000 activities) may take longer
  • Check system resources (RAM, CPU)
  • Try with smaller schedule first

Login not working

  • Verify correct username/password
  • Try refreshing the page
  • Clear browser cache

๐Ÿ”„ Deployment

Streamlit Community Cloud

  1. Push code to GitHub repository
  2. Visit streamlit.io/cloud
  3. Connect your GitHub account
  4. Deploy from repository
  5. Configure secrets (if needed)

Local Deployment

# Production mode
streamlit run app.py --server.port 8501 --server.address 0.0.0.0

Docker Deployment (Coming Soon)

# Dockerfile example
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["streamlit", "run", "app.py"]

๐Ÿ—บ๏ธ Roadmap

Phase 1 โœ… (Current)

  • โœ… Basic authentication
  • โœ… CSV parser
  • โœ… DCMA analysis engine
  • โœ… Dashboards and visualizations
  • โœ… Report generation (DOCX & Excel)
  • โœ… Schedule comparison

Phase 2 ๐Ÿšง (Planned)

  • Pocketbase integration
  • Advanced user management
  • Monte Carlo risk analysis
  • Critical path visualization
  • Email notifications
  • Custom metric thresholds

Phase 3 ๐Ÿ”ฎ (Future)

  • Direct XER file import
  • Resource loading analysis
  • Portfolio dashboard
  • RESTful API
  • Mobile app
  • Machine learning predictions

๐Ÿค Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ“ง Contact

For questions, issues, or suggestions:

  • GitHub Issues: Create an issue
  • Email: [Your email]
  • Documentation: See in-app help sections

๐Ÿ™ Acknowledgments

  • DCMA - For the 14-Point Schedule Assessment framework
  • GAO - For Schedule Assessment Guide best practices
  • Streamlit - For the amazing web framework
  • Community - For feedback and contributions

๐Ÿ“š References


Built with โค๏ธ for EPC Project Teams

Version 1.0.0 - November 2025

About

Schedule assessment and analysis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages