A robust, scalable, and automated Machine Learning inference pipeline deployed on AWS. IntelliPredict detects multiple cancer types (Lung, Breast, Colorectal, Skin) using a secure, high-availability architecture.
IntelliPredict is an end-to-end Machine Learning web application designed to bridge the gap between model training and production deployment.
Unlike simple local scripts, this project demonstrates a production-grade cloud architecture. It leverages AWS services to ensure the application is scalable (Auto Scaling), resilient (Multi-AZ RDS), and automated (CloudFormation & CI/CD).
- Multi-Disease Detection: Predictive capabilities for Lung, Breast, Colorectal, and Skin cancer.
- Scalability: Handles fluctuating traffic loads using EC2 Auto Scaling Groups.
- Automation: "One-Click Deployment" utilizing AWS CloudFormation (IaC).
- Security: Implements HTTPS via NGINX/Certbot and strict IAM roles/Security Groups.
Want to see the application in action or learn how to build the infrastructure step-by-step?
👉 Click here to view Project Demos & Resources
📂 Inside this folder, you will find:
- 🎬 App Preview: A video demonstration of the live IntelliPredict application.
- 🏗️ Step-by-Step Guide: Video walkthroughs of building the AWS Cloud infrastructure.
- 🗺️ Architecture Diagram: High-resolution image of the complete cloud topology.
The system follows a 3-tier web architecture (Presentation, Logic, Data) fully hosted on the AWS Cloud.
- User Access: Users access the secure web UI via HTTPS (NGINX Reverse Proxy).
- Compute Layer (EC2): A Flask REST API receives the request.
- Bootstrapping: EC2 instances use
User Data Scriptsto install dependencies and fetch the latest code/model from S3.
- Bootstrapping: EC2 instances use
- Inference: The ML model (
model.pkl) predicts the outcome based on user input. - Data Persistence (RDS): Prediction results and user logs are securely stored in a managed PostgreSQL/MySQL database.
- Monitoring (CloudWatch): System metrics and application logs are tracked in real-time.
- Alerting (SNS/Lambda): If high load or critical errors occur, SNS triggers immediate alerts (Email/SMS).
| Service | Usage in Project |
|---|---|
| CloudFormation | Infrastructure as Code (IaC) to provision the entire stack (VPC, EC2, RDS, S3) automatically. |
| EC2 & Auto Scaling | Compute resources that scale horizontally based on CPU utilization. |
| S3 | Centralized object storage for model artifacts (model.pkl), static assets, and logs. |
| RDS | Managed Relational Database for persistent data storage with automated backups. |
| CloudWatch | Real-time monitoring of CPU, RAM, and application logs. |
| SNS | Simple Notification Service for critical system alerts. |
| IAM | Granular permission management for secure service-to-service communication. |
- Language: Python 3.x
- Framework: Flask (REST API)
- Web Server: NGINX (Reverse Proxy) + Gunicorn
- Security: Certbot (Let's Encrypt SSL/TLS)
- CI/CD: GitHub Actions / Pytest for automated backend testing.
No manual server setup. The entire environment is defined in AWS CloudFormation templates. This ensures environment consistency and rapid disaster recovery.
The application utilizes Auto Scaling Groups (ASG).
- Traffic Spike? -> Spins up new EC2 instances automatically.
- Low Traffic? -> Terminates instances to save costs.
CloudWatch integration allows for:
- Log aggregation from all active instances.
- SNS Alarms trigger emails to admins if model latency increases or error rates spike.
- Encryption: Data in transit is encrypted via HTTPS.
- Isolation: Database is protected by Security Groups, allowing access only from the App Server.
- IAM Roles: EC2 instances access S3 via roles, eliminating the need for hardcoded AWS keys.
# Clone the repository
git clone https://github.com/your-username/IntelliPredict.git
cd IntelliPredict
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the Flask App
python app.py- Upload
model.pklandapp.zipto your S3 bucket. - Navigate to the AWS CloudFormation console.
- Click Create Stack -> Upload
infrastructure.yaml(provided in this repo). - Wait for the stack to reach
CREATE_COMPLETE. - Access the Load Balancer DNS / Public IP provided in the outputs.
- ✅ Reduced Deployment Time: From hours to minutes using CloudFormation.
- ✅ 99.9% Uptime: Achieved via Auto Scaling and managed RDS services.
- ✅ Secure Pipeline: Zero hardcoded credentials; full HTTPS encryption.
