
Turn the public Netflix catalog into a live analytics dashboard — 8 Chart.js visualizations, a pandas cleaning pipeline, and a TF-IDF genre classifier. Runs on your laptop in 10 minutes.
Python | Flask | pandas | scikit-learn | Chart.js | Jupyter Notebook
You take the public Netflix titles catalog — around 8,800 rows of movies and TV shows sitting in a CSV — and you turn it into a dashboard that actually answers questions. How much of the catalog is movies versus shows? Which countries produce the most content? Which directors show up again and again? What happened to release volume after 2016?
The data gets cleaned once, offline, inside a Jupyter notebook. That notebook fills in missing directors and cast members, fixes a genuinely annoying column-shift bug that exists in the raw dataset, parses date_added into real datetime objects, and pulls duration_minutes out of movie rows and seasons out of TV rows using regex. Output is a clean CSV.
Then app.py — a Flask app, nothing fancy — loads that cleaned CSV, computes the aggregates with pandas, and hands them to a single-page dashboard rendered with Chart.js. Two routes. That's the entire backend.
And there's a bonus ML layer on top. A TF-IDF vectorizer over the description column, a MultiLabelBinarizer for the genre tags, and a OneVsRestClassifier wrapping logistic regression. Feed it a plot summary, it predicts the genres. Model artifacts get saved with joblib so you never have to retrain during your viva.
vectorizer.pkl, mlb.pkl and genre_model.pkl saved and committedGET / renders the dashboard from templates/index.htmlGET /api/summary returns the exact same metrics as JSON — useful if you want to extend this into a mobile app later, or just to prove to your guide that the backend and frontend are actually separatedOne more thing that saves you: if processed/cleaned.csv is missing for any reason, app.py runs the same cleaning logic in memory at startup. The app never refuses to boot. Small detail, big relief at 11 PM before submission.
OTT platforms run exactly this kind of catalog analysis before deciding what to license next — which regions are underrepresented, which genres are saturated, whether the acquisition team has been buying too many 2019 titles. Media research firms build similar dashboards for competitive reporting.
Outside streaming, the same pattern applies anywhere you have a messy product catalog and questions about it. Library systems. E-commerce inventory. Music archives. Swap the CSV, change the column names, and the architecture holds.
For your own portfolio, this reads as a data engineering plus visualization project rather than another CRUD app. Recruiters looking at fresher resumes see a lot of student management systems. They see far fewer projects where someone cleaned real dirty data and explained why.
If you're a BCA or BSc IT student in your final semester, your synopsis is already approved, and you now need working code plus a report in under two weeks — this fits. It's a Python project, so it maps to almost every university's syllabus, and it doesn't need a database server, a paid API, or a cloud account.
MCA and BTech CSE students who want something with an actual ML component but don't want to fight with deep learning setup — this is your middle ground. Scikit-learn only. No CUDA, no GPU, no 4 GB model downloads.
Honestly, if your guide has specifically asked for a deep learning project with a neural network, this isn't the one. Logistic regression is classical ML and you'd be misrepresenting it. Check first.
Now, the hard part — because you should know before you buy. The genre classifier is multi-label, and multi-label accuracy scores look bad. Like, 30-something percent bad, because a prediction only counts as correct if it gets every genre tag right. Your examiner may look at that number and frown. You need to be ready to explain subset accuracy versus Hamming loss versus per-label F1. The notebook walks through this, but it's the one thing you genuinely have to understand rather than just run.
The easy part? Setup. There's no database to configure, no environment variables, no API keys. It's a virtualenv, a pip install, and python app.py. If you've ever run a Flask hello-world, you're already qualified.
Every project ships with a complete project report — abstract, literature survey, system design with diagrams, module descriptions, testing tables, conclusion, references — formatted the way Indian universities actually want it, not a generic template. You also get the cleaned dataset and pre-trained model files committed in the repo, so nothing depends on you successfully re-running a notebook the night before. And if the app doesn't start on your machine, our project setup support gets on a call and fixes it with you. We'd rather spend twenty minutes on a screen share than have you submit something broken.
If data-heavy work is your thing, browse the rest of our data science projects with source code — several use the same pandas-plus-Flask pattern, so a second project becomes much faster to understand. Students specifically looking for Python final year projects will find the whole collection sorted by difficulty there.
Add any of these professional upgrades to save time and impress your evaluators.
We'll install and configure the project on your PC via remote session (Google Meet, Zoom, or AnyDesk).
1-hour live session to explain logic, flow, database design, and key features.
Want to know exactly how the setup works? Review our detailed step-by-step process before scheduling your session.
Fully customized to match your college format, guidelines, and submission standards.
Need feature changes, UI updates, or new features added?
Charges vary based on complexity.
We'll review your request and provide a clear quote before starting work.
Reviews