← Back to projects

Iris

DockerMachine learningMongoRedisFastAPISveltePython
View live project →
Iris

Coursework project: Iris flower species classification with a NoSQL pipeline (MongoDB, Redis), a Machine Learning model (Random Forest) and an interactive prediction web app.

Context

Coursework project for a NoSQL databases and Machine Learning class. Goal: analyze the Iris dataset (Fisher, 1936) and build an end-to-end pipeline, from data storage to a real-time prediction web app.

Features

  • Iris dataset ingestion into MongoDB (document schema with a nested "features" sub-document) and caching in Redis

  • Descriptive statistical analysis and visualizations (pairplot, correlation matrix, boxplots) with Pandas and Seaborn

  • Simple and multiple linear regression (Statsmodels) — up to 96.8% explained variance

  • Supervised classification with Random Forest (Scikit-learn), ~96% accuracy, served through a FastAPI endpoint

  • Distributed classification with Spark MLlib

  • Performance benchmark comparing MongoDB and Redis (latency, throughput)

  • Interactive web interface (SvelteKit) with a real-time prediction form and analysis visualizations

  • Fully containerized environment with Docker Compose and a GitLab CI/CD pipeline

Tech stack

  • Backend: Python, FastAPI, Scikit-learn, Pandas, Statsmodels

  • Big Data: Apache Spark (MLlib)

  • Databases: MongoDB, Redis

  • Frontend: SvelteKit

  • Infrastructure: Docker, Docker Compose, GitLab CI/CD