A production-ready Machine Learning + MLOps pipeline designed to impress recruiters and showcase real-world engineering skills. This project implements everything from data ingestion → model training → cloud storage → CI/CD → deployment.
- Complete MLOps Workflow with industry standards
- Automated Data Pipeline (Ingestion, Validation, Transformation)
- MongoDB → AWS S3 → EC2 → ECR integration
- CI/CD Pipeline using GitHub Actions
- Dockerized FastAPI/Flask App with full Prediction Pipeline
- Modular, Scalable Code Structure for production use
Template → Virtual Environment → MongoDB → Data Pipeline → AWS Setup → CI/CD → Deployment
Run:
python template.pyThis creates the full production-ready folder structure.
Configure:
setup.pypyproject.toml
These enable local package installation using pip install -e ..
Refer to crashcourse.txt for detailed explanation.
conda create -n vehicle python=3.10 -y
conda activate vehicle
pip install -r requirements.txt
pip listEnsures your local packages and dependencies are installed.
- Create project in MongoDB Atlas
- Deploy M0 cluster
- Create DB user (username + password)
- Add network IP:
0.0.0.0/0 - Copy connection string (Python driver)
- Create
notebook/mongoDB_demo.ipynb - Upload dataset to notebook folder
- Push dataset → MongoDB using your notebook
- Verify in Browse Collections
- Implement logger.py → test in
demo.py - Implement exception.py → test in
demo.py - Added EDA + Feature Engineering notebooks
Inside src/:
- Add constants in
constants/__init__.py - Add MongoDB connection logic in
configuration/mongo_db_connections.py - Implement data_access layer to fetch DB data → DataFrame
- Create config classes in
entity/config_entity.py - Create artifact classes in
entity/artifact_entity.py - Implement ingestion logic in
components/data_ingestion.py - Add ingestion stage to training pipeline
Run:
$env:MONGODB_URL="your_url_here"
python demo.pyutils/main_utils.pyconfig/schema.yamlentity/estimator.py
- Data Validation – Schema check, missing values, drift
- Data Transformation – Scalers, pipelines, preprocessing
- Model Trainer – Train & save model artifact
- Create IAM user (AdministratorAccess)
- Generate Access Key + Secret Key
- Set environment variables:
$env:AWS_ACCESS_KEY_ID="xxx"
$env:AWS_SECRET_ACCESS_KEY="yyy"- Add keys to constants
- Create S3 bucket:
Name: my-model-mlopsproj
Region: us-east-1
Public Access: OFF
- Implement
aws_connection.py - Implement
aws_storage/for pull/push to S3 - Add
s3_estimator.pyfor model registry operations
- Evaluate old model vs new model
- Compare performance
- Apply threshold
0.02 - Push new model to S3 registry
- Add prediction logic
- Add
app.py - Add
static/andtemplates/directories
- Create Dockerfile
- Add
.dockerignore
Create workflow:
.github/workflows/aws.yaml
Used for:
- Build Docker Image
- Push to ECR
- Deploy on EC2
- IAM user:
usvisa-user - ECR repository:
vehicleproj - EC2 machine: Ubuntu 24.04
- Install Docker on EC2
- Connect EC2 with GitHub as Self Hosted Runner
After CI/CD completes:
- Open EC2 Security Group
- Add inbound rule:
Type: Custom TCP
Port: 5080
Source: 0.0.0.0/0
- Visit app at:
http://<EC2_PUBLIC_IP>:5080
Model training also available at:
/training
This project demonstrates:
- Full end-to-end MLOps lifecycle
- Real-world cloud engineering
- Production-grade machine learning pipeline
- Professional CI/CD workflow
- Containerized deployable ML system
A perfect showcase to impress recruiters and companies looking for ML Engineers, Data Engineers, or MLOps Engineers.
Satyam Mishra AIML Engineer | MLOps Learner | NLP & ML Practitioner