This repository contains my AI Programming Foundations capstone module submission. It implements a reproducible Python data workflow using a synthetic CMMS maintenance work-order dataset and covers ingestion, cleaning, exploratory analysis, visualization, interpretation, and reproducibility.
The broader continuation of this maintenance-intelligence project is maintained in the related repository: maintenance-ml-priority-prediction.
- A reproducible Jupyter Notebook data workflow
- Reusable data-cleaning functions with docstrings
- Exploratory data analysis functions
- At least three labeled Matplotlib/Seaborn visualizations
- A written academic summary with citations
Dataset: Synthetic CMMS Maintenance Work Orders
The dataset is generated for academic use and contains simulated maintenance work-order records. It does not contain real customer, employee, technician, property, or asset data. The notebook uses the repository's deterministic generator to create the CSV with a fixed random seed when the file is not already present.
- Clone the repository:
git clone https://github.com/peymangraph/ai-programming-foundations-project.git
cd ai-programming-foundations-project-
Create and activate a Python environment.
-
Install dependencies:
pip install -r requirements.txt- Open Jupyter Notebook or JupyterLab:
jupyter notebookor
jupyter lab- Open
data_workflow.ipynband run all cells from top to bottom.
The project uses a documented dependency file and Git version control. To regenerate the dependency snapshot from the active project environment, use:
pip freeze > requirements.txtPoor data cleaning can introduce bias by changing which records remain in the analysis or by masking differences between groups. For example, deleting every row with a missing value could remove some asset types or priority levels more often than others if documentation quality is uneven. Imputation can also reduce natural variation and make the data appear more complete than it really is. This project therefore preserves the raw dataset, documents each cleaning rule, uses transparent transformations, and treats the cleaning logic as dataset-specific assumptions rather than universal rules.
For a machine-learning extension, I would separate features from the prediction target, create leakage-safe train/validation/test splits, fit preprocessing only on training data, compare multiple baseline models, tune only on training/validation data, and reserve the final test set for one locked evaluation. I would also exclude post-outcome fields such as resolution_hours from intake-time prediction because they are not available when a work order is first created.
For a neural-network workflow, I would encode categorical variables numerically, scale continuous variables where appropriate, handle missing values consistently, and create fixed train/validation/test tensors or arrays. I would also monitor class imbalance, use suitable loss functions and evaluation metrics, and keep the preprocessing pipeline reproducible so training and inference use the same transformations.
An agentic maintenance system could use this data workflow as one stage in a larger human-in-the-loop process. A future agent could gather an incoming maintenance description, validate required information, call classification or priority models, retrieve relevant asset context, summarize the evidence, and route the request to a qualified person for review or action. High-consequence decisions should remain subject to explicit human approval rather than being made autonomously.
This repository is a focused, rubric-compliant extraction of the first stage of a larger maintenance-intelligence capstone. The original work was developed iteratively in the broader maintenance-ml-priority-prediction repository, which contains the extended statistical analysis, applied machine learning, NLP, and integration work. This dedicated repository keeps the Project 1 submission concise while preserving a direct link to the broader engineering history.
The submission repository itself also includes multiple commits and an additional feature/data-workflow branch to demonstrate version-controlled development for this module.
data_workflow.ipynbmodule_summary.pdfrequirements.txtREADME.md- dataset CSV used by the notebook
This repository is the focused Programming Foundations submission. The broader maintenance-intelligence capstone continues in maintenance-ml-priority-prediction, which contains later statistical analysis, machine learning, NLP, and integration work.