Customer-Purchase-Prediction-ML-System
A turnkey MLOps pipeline demonstrating how to go from raw events to real-time predictions at scale.
File Explorer
Download Latest Version (.zip)- airflow-dags.jpg
- data-grip-offline-store.jpg
- data-pipeline-dag.jpg
- feature-retrieval-swagger-ui.jpg
- grafana.jpg
- kafka-connectors.jpg
- kafka-message.jpg
- kafka-to-feast-online-store-job-log.jpg
- kafka-topic-cdc.jpg
- kafka-topic-schema-validation.jpg
- kafka-topic.jpg
- minio-buckets.jpg
- minio-record.jpg
- mlflow-models.jpg
- mlflow-ui.jpg
- nginx-proxy-manager-1.jpg
- nginx-proxy-manager-2.jpg
- ray-dashboard.jpg
- ray-task-details.jpg
- schema-validation-job-log.jpg
- serving-pipeline-swagger-ui.jpg
- signoz-1.jpg
- signoz-2.jpg
- spark-streaming-job.jpg
- training-pipeline-dag.jpg
- training-pipeline-tasks.jpg
- validated-events-to-features-job.jpg
- pipeline.png
- eda.ipynb
- inference.py
- model.ubj
- serving.ipynb
- train.ipynb
- postgresql-cdc.json
- .env.example
- __init__.py
- create_table.py
- Dockerfile
- insert_data.py
- models.py
- postgresql_client.py
- requirements.txt
- run.sh
- start.sh
- validated_events.sql
- .feastignore
- __init__.py
- api.py
- data_sources.py
- Dockerfile
- entities.py
- feature_store.docker.yaml
- feature_store.yaml
- features_view.py
- ingest_stream.py
- offline_write_batch.py
- requirements.txt
- run.sh
- .env.example
- Dockerfile
- dashboards.yaml
- datasources.yaml
- prometheus.yml
- histogramQuantile
- histogramQuantile.go
- alertmanager.yml
- alerts.yml
- clickhouse-cluster.xml
- clickhouse-config.xml
- clickhouse-storage.xml
- clickhouse-users.xml
- custom-function.xml
- docker-compose-core.yaml
- docker-compose-local.yaml
- docker-compose.testing.yaml
- docker-compose.yaml
- keeper_config.xml
- otel-collector-config.yaml
- otel-collector-opamp-config.yaml
- prometheus.yml
- test-app-docker-compose.yaml
- locustfile.py
- nginx-config.conf
- ingest_raw_data.py
- validate_raw_data.py
- load_to_dwh.py
- transform_data.py
- __init__.py
- __init__.py
- data_loader.py
- hyperparameter_tuning.py
- model_trainer.py
- results_saver.py
- data_pipeline.py
- training_pipeline.py
- db_utils.py
- dim_schemas.py
- event_schema.py
- fact_schemas.py
- monitoring.py
- sql_utils.py
- __init__.py
- data_pipeline_config.py
- tune_config.py
- chk.yml
- .ge_store_backend_id
- gold_layer_suite.json
- raw_data_suite.json
- data_docs_custom_styles.css
- .gitignore
- great_expectations.yml
- load_training_data.sql
- analytical_views.sql
- ray_setup.py
- __init__.py
- .env.example
- .gitignore
- docker-compose.orchestration.yaml
- Dockerfile
- requirements.txt
- ecommerce_events.avsc
- sample.parquet
- .env.example
- Dockerfile
- generate_schemas.py
- produce.py
- run.sh
- Dockerfile
- ray_test.py
- requirements.txt
- .dockerignore
- __init__.py
- Dockerfile
- main.py
- online_feature_service.py
- prediction_service.py
- requirements.txt
- avro-1.11.1.jar
- flink-avro-1.17.1.jar
- flink-avro-confluent-registry-1.17.1.jar
- flink-connector-kafka-1.17.1.jar
- flink-table-api-java-1.17.1.jar
- jackson-annotations-2.14.2.jar
- jackson-core-2.14.2.jar
- jackson-databind-2.14.2.jar
- kafka-clients-3.4.0.jar
- kafka-connect-jdbc-10.6.4.jar
- kafka-connect-json-schema-converter-7.5.0.jar
- kafka-schema-registry-7.5.0.jar
- kafka-schema-registry-client-7.5.0.jar
- postgresql-42.4.3.jar
- minio-sink-connector.json
- s3-sink-connector.json
- kafka_sink.py
- kafka_source.py
- check_s3_bucket.py
- deploy_s3_connector.py
- __init___.py
- alert_invalid_events_job.py
- base.py
- schema_validation_job.py
- metrics.py
- .env.example
- main.py
- .dockerignore
- .env.example
- .gitattributes
- .gitignore
- .pre-commit-config.yaml
- .python-version
- docker-compose.cdc.yaml
- docker-compose.data-lake.yaml
- docker-compose.dwh.yaml
- docker-compose.grafana.yaml
- docker-compose.kafka.yaml
- docker-compose.model-registry.yaml
- docker-compose.nginx.yaml
- docker-compose.observability.yaml
- docker-compose.online-store.yaml
- docker-compose.ray.yaml
- docker-compose.serving.yaml
- docker-compose.superset.yaml
- LICENSE
- Makefile
- pyproject.toml
- README.md
- uv.lock
# Installation Guide
git clone https://github.com/bmd1905/Customer-Purchase-Prediction-ML-System
Downloads the entire project code from GitHub to your computer.
cd Customer-Purchase-Prediction-ML-System
Moves into the project folder you just downloaded.
2. Docker
Easy Recommended- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker compose -f docker-compose.cdc.yaml up -d --build
Runs the command against the services defined in the compose file.
3. Python
Easypip install -r src/cdc/requirements.txt
Installs the Python libraries listed in requirements.txt (or similar).
jupyter notebook
Launches Jupyter in your browser so you can open and run the notebook (.ipynb) files.
4. Make
Medium- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
make up-network
Compiles the code based on the generated build configuration to produce an executable.
make up-kafka
Compiles the code based on the generated build configuration to produce an executable.
make up-cdc
Compiles the code based on the generated build configuration to produce an executable.
make schema_validation
Compiles the code based on the generated build configuration to produce an executable.
make alert_invalid_events
Compiles the code based on the generated build configuration to produce an executable.
Pulled directly from this repo's README.
