Toraif's Well-Architected Review Tool - A streamlined, user-friendly web application for conducting comprehensive AWS Well-Architected Framework reviews with advanced report generation and management capabilities.
Author: Mohamed Toraif
Created: 2024
License: MIT
- AWS Profile Authentication: Secure authentication using AWS CLI profiles
- Session Management: Persistent sessions with automatic timeout
- Multi-Account Support: Switch between different AWS accounts seamlessly
- Create Workloads: Set up new Well-Architected workloads
- Workload Selection: Easy workload switching and management
- Account Integration: Direct integration with AWS Well-Architected Tool
- Interactive Questionnaire: User-friendly interface for framework questions
- Pillar-based Reviews: Comprehensive coverage of all 6 Well-Architected pillars:
- ποΈ Operational Excellence
- π Security
- π‘οΈ Reliability
- β‘ Performance Efficiency
- π° Cost Optimization
- β»οΈ Sustainability
- Progress Tracking: Real-time completion status and progress indicators
- Risk Assessment: Automatic risk level calculation and categorization
- Professional Reports: Clean, print-ready reports with comprehensive analysis
- Multiple Formats: Optimized for both web viewing and printing
- Report Versioning: Track changes and improvements over time
- Report Comparison: Side-by-side comparison of different report versions
- Export Options: Print-friendly layouts with professional styling
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Intuitive Navigation: Clean, organized interface with logical flow
- Real-time Feedback: Instant validation and progress updates
- Accessibility: WCAG-compliant design for inclusive access
- Python 3.8+ installed on your system
- AWS CLI configured with valid credentials
- AWS Account with Well-Architected Tool access
- Modern Web Browser (Chrome, Firefox, Safari, Edge)
- Clone the repository:
git clone https://github.com/your-username/TorWAF.git
cd TorWAF- Install dependencies:
pip install -r requirements.txt- Configure AWS credentials:
# Option 1: Using AWS CLI
aws configure --profile torwar-profile
# Option 2: Using environment variables
export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key
export AWS_DEFAULT_REGION=us-east-1- Set up environment (optional):
cp .env.example .env
# Edit .env with your preferred settings- Start the server:
python3 app.py-
Access the application:
- Open your browser and navigate to:
http://localhost:5000 - Or access via network:
http://your-ip:5000
- Open your browser and navigate to:
-
Begin your review:
- Authenticate with your AWS profile
- Create or select a workload
- Start your Well-Architected review
Create a .env file in the root directory:
# Application Settings
SECRET_KEY=your-secret-key-here
DEBUG=False
PORT=5000
# AWS Settings (optional - can use AWS CLI profiles instead)
AWS_DEFAULT_REGION=us-east-1
AWS_PROFILE=torwar-profile
# Application Behavior
AUTO_SAVE_INTERVAL=300 # Auto-save every 5 minutes
MAX_REPORTS_PER_WORKLOAD=10Your AWS user/role needs the following permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"wellarchitected:*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"sts:GetCallerIdentity",
"iam:ListAccountAliases"
],
"Resource": "*"
}
]
}TorWAF/
βββ π app.py # Main Flask application
βββ π aws_auth.py # AWS authentication logic
βββ π£οΈ aws_auth_routes.py # Authentication routes
βββ π§ aws_helper.py # AWS session management
βββ π report_manager.py # Report generation & management
βββ π requirements.txt # Python dependencies
βββ βοΈ .env.example # Environment configuration template
βββ π¨ templates/ # HTML templates
β βββ π index.html # Homepage
β βββ π answer_question.html # Question interface
β βββ π generate_report.html # Report generation
β βββ πΎ saved_reports.html # Report management
β βββ π compare_reports.html # Report comparison
β βββ π― base.html # Base template
βββ π¨ static/ # Static assets
β βββ πΌοΈ logo.svg # TorWAR logo
βββ πΎ data/ # Application data
β βββ π reports/ # Saved reports
β β βββ metadata/ # Report metadata
β β βββ workloads/ # Workload data
β βββ ποΈ workloads/ # Workload configurations
βββ π§ͺ testing/ # Test files and documentation
βββ π logs/ # Application logs
- Launch the application and navigate to the homepage
- Click "AWS Login" to authenticate with your AWS credentials
- Select your preferred AWS region and profile
- Create a new workload or select an existing one
- Provide workload details (name, description, environment)
- Configure workload-specific settings
- Select pillars to review (or choose "All Pillars")
- Answer questions for each pillar systematically
- Use the help hints and best practices provided
- Save progress automatically or manually
- Generate comprehensive reports after completing reviews
- Customize report names and add notes
- View reports in clean, professional format
- Print or export reports as needed
- Access all saved reports from the Reports menu
- Compare different versions of reports
- Track improvements and changes over time
- Delete outdated reports when needed
- Clean, chart-free interface for easy reading
- Color-coded risk indicators (Red=High, Yellow=Medium, Blue=Low, Green=None)
- Print-optimized layouts
- No auto-scrolling or animations
- Side-by-side comparison of any two reports
- Highlight changes and improvements
- Track risk reduction over time
- Identify areas needing attention
- Works on all device sizes
- Touch-friendly interface for tablets
- Keyboard navigation support
- High contrast mode available
# Enable debug mode
export FLASK_ENV=development
export DEBUG=True
python3 app.py# Run basic functionality tests
cd testing/
python3 -m pytest
# Manual testing endpoints
curl http://localhost:5000/health
curl http://localhost:5000/saved_reports- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and test thoroughly
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Q: "Error loading saved reports" or template errors
- A: All template issues have been resolved in the latest version. Ensure you're using the updated codebase.
Q: AWS authentication fails
- A: Check your AWS credentials and permissions. Ensure the Well-Architected service is available in your region.
Q: Reports not saving
- A: Verify write permissions to the
data/reports/directory.
Q: Page keeps scrolling or charts not loading
- A: The UI has been simplified to remove problematic animations and charts.
- π§ Issues: Open an issue on GitHub
- π Documentation: Check the
testing/directory for detailed guides - π§ Configuration: Review the
.env.examplefile for all options
This project is licensed under the MIT License - see the LICENSE file for details.
- AWS Well-Architected Framework for the comprehensive review methodology
- Flask Community for the excellent web framework
- Bootstrap Team for the responsive UI components
- Contributors who helped improve and test the application
- π Enhanced analytics and trending
- π Automated report scheduling
- π₯ Multi-user collaboration features
- π± Mobile app companion
- π Integration with other AWS services
Created by Mohamed Toraif with β€οΈ in Bahrain π§π
TorWAR - Making AWS Well-Architected Reviews Simple and Effective
Β© 2024 Mohamed Toraif. Licensed under MIT License.