mirror of
https://github.com/andwati/predictive_analysis.git
synced 2026-10-30 05:42:15 +00:00
200 lines
6.7 KiB
Markdown
200 lines
6.7 KiB
Markdown
# Architecture Diagrams
|
|
|
|
This directory contains comprehensive architectural diagrams for the Student Success Prediction project, created using the Python `diagrams` library.
|
|
|
|
## 📋 Overview
|
|
|
|
The diagrams visualize the complete system architecture from data analysis through production deployment, providing clear documentation for developers, stakeholders, and system administrators.
|
|
|
|
## 🎯 Diagram Categories
|
|
|
|
### 1. Data Flow Architecture (`01_data_flow_architecture.py`)
|
|
- **Purpose**: Shows the complete data pipeline from raw data to model predictions
|
|
- **Key Components**: Data sources, processing pipeline, model development, production system
|
|
- **Audience**: Data scientists, developers, project managers
|
|
|
|
### 2. EDA Process Flow (`02_eda_process_flow.py`)
|
|
- **Purpose**: Visualizes the exploratory data analysis workflow and key insights
|
|
- **Key Components**: Data quality assessment, statistical analysis, visualization insights
|
|
- **Audience**: Data analysts, researchers, stakeholders
|
|
|
|
### 3. ML Pipeline Architecture (`03_ml_pipeline_architecture.py`)
|
|
- **Purpose**: Details the machine learning workflow from preprocessing to model deployment
|
|
- **Key Components**: Preprocessing, training, validation, model persistence
|
|
- **Audience**: ML engineers, data scientists, technical leads
|
|
|
|
### 4. Application Architecture (`04_application_architecture.py`)
|
|
- **Purpose**: Shows the modular Streamlit application structure and components
|
|
- **Key Components**: Authentication, UI components, configuration, utilities
|
|
- **Audience**: Frontend developers, full-stack developers, architects
|
|
|
|
### 5. Deployment Architecture (`05_deployment_architecture.py`)
|
|
- **Purpose**: Illustrates deployment options and infrastructure choices
|
|
- **Key Components**: Streamlit Cloud, Docker containers, traditional servers
|
|
- **Audience**: DevOps engineers, system administrators, deployment teams
|
|
|
|
### 6. Feature Engineering Pipeline (`06_feature_engineering_pipeline.py`)
|
|
- **Purpose**: Details the feature transformation and encoding processes
|
|
- **Key Components**: Categorical/numerical processing, encoding schemes, validation
|
|
- **Audience**: Data engineers, ML engineers, data scientists
|
|
|
|
### 7. User Journey Flow (`07_user_journey_flow.py`)
|
|
- **Purpose**: Maps how different user types interact with the application
|
|
- **Key Components**: User roles, workflows, interface interactions
|
|
- **Audience**: UX designers, product managers, business analysts
|
|
|
|
### 8. Security Architecture (`08_security_architecture.py`)
|
|
- **Purpose**: Comprehensive security model and authentication flows
|
|
- **Key Components**: Authentication, authorization, data protection, monitoring
|
|
- **Audience**: Security engineers, compliance officers, architects
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Install Dependencies
|
|
|
|
```bash
|
|
# Install diagrams library and dependencies
|
|
pip install -r diagrams/requirements.txt
|
|
```
|
|
|
|
**Note**: You'll also need Graphviz installed on your system:
|
|
- **Windows**: Download from https://graphviz.org/download/ or use `choco install graphviz`
|
|
- **macOS**: `brew install graphviz`
|
|
- **Linux**: `sudo apt-get install graphviz` (Ubuntu/Debian) or `sudo yum install graphviz` (RHEL/CentOS)
|
|
|
|
### Generate All Diagrams
|
|
|
|
```bash
|
|
# Generate all diagrams at once
|
|
python diagrams/generate_all_diagrams.py
|
|
```
|
|
|
|
### Generate Individual Diagrams
|
|
|
|
```bash
|
|
# Generate specific diagram
|
|
cd diagrams
|
|
python 01_data_flow_architecture.py
|
|
```
|
|
|
|
## 📁 Output Files
|
|
|
|
After generation, you'll find PNG image files in the `diagrams/` directory:
|
|
|
|
```
|
|
diagrams/
|
|
├── 01_data_flow_architecture.png
|
|
├── 02_eda_process_flow.png
|
|
├── 03_ml_pipeline_architecture.png
|
|
├── 04_application_architecture.png
|
|
├── 05_deployment_architecture.png
|
|
├── 06_feature_engineering_pipeline.png
|
|
├── 07_user_journey_flow.png
|
|
├── 08_security_architecture.png
|
|
└── ... (source .py files)
|
|
```
|
|
|
|
## 🎨 Customization
|
|
|
|
### Modifying Diagrams
|
|
|
|
1. **Edit Source Files**: Modify the `.py` files to change diagram content
|
|
2. **Update Styling**: Adjust colors, layouts, and visual elements
|
|
3. **Add Components**: Include new services or modify existing ones
|
|
4. **Change Layout**: Modify `direction` parameter ("TB", "LR", "BT", "RL")
|
|
|
|
### Example Customization
|
|
|
|
```python
|
|
# Change diagram direction from top-bottom to left-right
|
|
with Diagram("My Custom Diagram",
|
|
filename="diagrams/custom_diagram",
|
|
show=False,
|
|
direction="LR"): # Changed from "TB"
|
|
# ... diagram components
|
|
```
|
|
|
|
### Adding New Diagrams
|
|
|
|
1. Create a new `.py` file in the `diagrams/` directory
|
|
2. Follow the existing naming convention: `09_my_new_diagram.py`
|
|
3. Add the new script to `generate_all_diagrams.py`
|
|
4. Use consistent styling and component types
|
|
|
|
## 🔧 Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
**Graphviz not found error**:
|
|
```bash
|
|
# Ensure Graphviz is installed and in PATH
|
|
dot -V # Should show version info
|
|
```
|
|
|
|
**Import errors**:
|
|
```bash
|
|
# Reinstall diagrams library
|
|
pip uninstall diagrams
|
|
pip install diagrams==0.23.4
|
|
```
|
|
|
|
**Permission errors**:
|
|
```bash
|
|
# Ensure write permissions in diagrams directory
|
|
chmod 755 diagrams/
|
|
```
|
|
|
|
**Large diagram files**:
|
|
- Reduce number of components
|
|
- Simplify cluster structures
|
|
- Use abbreviated labels
|
|
|
|
### Performance Tips
|
|
|
|
1. **Batch Generation**: Use `generate_all_diagrams.py` for efficiency
|
|
2. **Selective Updates**: Only regenerate changed diagrams during development
|
|
3. **Output Format**: PNG is default; SVG available for scalability
|
|
4. **Caching**: Generated images are cached until source files change
|
|
|
|
## 📊 Integration
|
|
|
|
### Documentation Integration
|
|
|
|
Include diagrams in documentation:
|
|
|
|
```markdown
|
|

|
|
```
|
|
|
|
### Presentation Use
|
|
|
|
- High-resolution PNG files suitable for presentations
|
|
- SVG format available for scalable graphics
|
|
- Consistent styling across all diagrams
|
|
|
|
### Version Control
|
|
|
|
- Include source `.py` files in version control
|
|
- Consider excluding generated `.png` files (large binary files)
|
|
- Use CI/CD to regenerate diagrams automatically
|
|
|
|
## 🤝 Contributing
|
|
|
|
When adding new diagrams:
|
|
|
|
1. **Follow Naming Convention**: `##_descriptive_name.py`
|
|
2. **Add Documentation**: Update this README with diagram description
|
|
3. **Consistent Styling**: Use similar component types and colors
|
|
4. **Test Generation**: Verify diagram generates without errors
|
|
5. **Update Master Script**: Add new diagram to `generate_all_diagrams.py`
|
|
|
|
## 📚 Resources
|
|
|
|
- **Diagrams Library**: https://diagrams.mingrammer.com/
|
|
- **Graphviz Documentation**: https://graphviz.org/documentation/
|
|
- **Icon Reference**: https://diagrams.mingrammer.com/docs/nodes/overview
|
|
- **Styling Guide**: https://diagrams.mingrammer.com/docs/guides/diagram
|
|
|
|
## 📄 License
|
|
|
|
These diagrams are part of the Student Success Prediction project and follow the same license terms. |