Course Recommendation System Using Machine Learning — Python Flask Final Year Project with Source Code

Course Recommendation System Using Machine Learning — Python Flask Final Year Project with Source Code

A working course recommender built on real Harvard enrollment data — KMeans clustering plus cosine similarity, wrapped in a Flask app with search, analytics dashboard and a JSON API. Runs on your laptop in 10 minutes.

Technology Used

Python | Flask | scikit-learn | KMeans Clustering | Pandas | NumPy | Chart.js | HTML/CSS

codeAj
codeAjVerified
🏆5K+ Projects Sold
Google Review
4991999

Get complete project source code + Installation guide + chat support

Project Files

Get Project Files

What This Project Actually Does

You type a course name. The system finds other courses that get enrolled in by a similar mix of students, and ranks them by how close that mix is. That's it. No magic.

The dataset here is real Harvard enrollment data, aggregated at the course-section level. So each course has a profile: how many undergrads, how many grad students, how many cross-registered, which department it sits in, total headcount. The training notebook (Course_Recommendation_Training.ipynb) scales those features, runs KMeans to group courses into clusters with similar enrollment shapes, and saves everything into models/ as pickle files. At runtime the Flask app just loads those artifacts once at startup and does cosine similarity between feature vectors. Fast, because nothing is recomputed per request.

One thing worth being upfront about: this is not student-level collaborative filtering. There are no individual student records in the source CSV, so it can't say "students like you also took X." It says "courses like this one attract a similar crowd." Your guide will probably ask about this distinction, and being able to answer it clearly is worth more marks than you'd expect.

Key Features

  • Search any course by name with live autocomplete pulling from /api/courses, so you don't have to remember exact course codes like AESTHINT 13
  • Ranked recommendations with an actual similarity score (0 to 1) next to each result, not just an unexplained list
  • A toggle for same_cluster_only — keep it on to stay inside the searched course's KMeans cluster, turn it off to sweep the entire dataset
  • Fuzzy suggestions on a miss: type a course that doesn't exist and the API returns a 404 with a list of close matches instead of just failing
  • An Explore page with filtering, sorting and pagination over every course, where clicking any row instantly fires a recommendation
  • An Analytics dashboard with department distribution, cluster breakdown, class-size histogram and enrollment-composition charts — all served from a single /api/analytics endpoint
  • A proper JSON API (GET /recommend?course=AESTHINT%2013&top_n=5) so you can demo it in Postman during your viva, which examiners love
  • A /health route, because deployment day is not the time to find out your app is half-dead
  • An About page that documents the methodology and the limitations in plain language — half your report's "Limitations" chapter is already written

Real-World Applications

The obvious one is a university course catalogue. Any institution with a course-registration portal can bolt this on so students browsing one elective see four related ones underneath.

Beyond campus, the same enrollment-composition logic maps onto EdTech platforms recommending the next course after someone finishes one, corporate L&D dashboards grouping internal trainings by who actually signs up for them, and academic advising tools that help a counsellor suggest electives to a confused second-year. Swap the Harvard CSV for your own college's enrollment sheet and the pipeline works the same way, which is exactly the extension your panel will ask you about.

Who Should Buy This

If you're a BCA or BSc IT student in your last semester with a submission date closing in and no working ML project, this is the one to pick up. It's Python, it's Flask, it uses scikit-learn properly, and every part of it is explainable in a five-minute viva without hand-waving.

Also good for MCA and BTech CSE students who want a machine learning final year project that isn't another Iris classifier or Titanic survival notebook. Every second batch has one of those. This one has clustering, similarity math, a real web layer and a REST API, which puts it in a different bracket entirely.

Skip it if your college has specifically demanded a Django backend or a deep learning model. Different requirement, different project — check our other listings instead.

What's Hard and What Isn't

The hard part: retraining on a new dataset. If you want to swap in your own college's enrollment data, you have to re-run the notebook, regenerate all six artifacts in models/, and make sure your column names line up with feature_columns.pkl. Get that mismatched and recommender.py throws at startup. We'll walk you through it if you go that route, but don't leave it for the night before.

The easy part, and honestly the surprising one — you don't need to train anything to run the demo. The model artifacts ship pre-trained. No GPU, no CUDA, no waiting. Clone, install requirements, python app.py, done.

Why CodeAj

You're not just getting a zip file. Every project ships with a college-format report covering abstract, literature survey, system design, methodology, results and future scope — formatted the way most universities want it, so you're editing rather than writing from zero. If setup goes sideways on your machine, the project setup session gets it running with you on a call. And if you're browsing around, our machine learning projects with source code collection and the recommendation engine solutions page have close alternatives if this particular dataset isn't your thing.

Frequently Asked Questions

You will get the complete source code along with an installation guide and chat support to help you set up and understand the project.
All our projects are thoroughly tested multiple times, so the code is completely error-free. But in case you still face any issue, you can reach out to us on WhatsApp (+91 8603862290) and we will fix it and provide you the updated code.
You can book a 1-on-1 Setup & Explanation Session where we connect via AnyDesk and Google Meet, set up the project on your laptop, and explain the complete code working and flow.
No, you cannot re-sell the project. This is completely illegal and a violation of our terms. If we find any such activity, we will take legal action.
Full source code. app.py, recommender.py, every template, the CSS file, requirements.txt, all six model artifacts inside models/ and the training notebook. Nothing is obfuscated or held back. Open it in VS Code and you can read every line.
No. kmeans_model.pkl, scaler.pkl, feature_columns.pkl, top_departments.pkl, courses_with_clusters.csv and X_scaled.npy are already trained and sitting in the models folder. The app loads them once when Flask boots. Training is only needed if you want to plug in a different dataset.
It'll run on anything from the last eight years. No deep learning, no GPU, no CUDA headaches. 4GB RAM and Python 3.9 or above is genuinely all you need. Startup takes a couple of seconds because it's just loading pickle files.
Yes. You get a college-format report with abstract, literature survey, system design, methodology, implementation details, results and future scope. Drop in your name, college, roll number and guide's name, adjust the formatting to whatever your university demands, and it's ready.
Say no, and say why. The source data is aggregated at course-section level with zero individual student records, so there's no user-item matrix to factorise. This is item-to-item similarity over enrollment composition features. Being able to explain that difference clearly is usually worth marks.
You can, but it's the harder path. Re-run Course_Recommendation_Training.ipynb with your CSV, regenerate all six artifacts, and make sure your column names match what feature_columns.pkl expects. Mismatch there and recommender.py fails at startup. Worth doing if you have the time, and we'll help on a setup call if you get stuck.
The API returns a 404 with a suggestions list of fuzzy-matched names, so the UI shows close alternatives instead of a dead end. Only courses present in courses_with_clusters.csv can be recommended, since the app looks up a precomputed feature vector rather than building one on the fly.
Yeah, completely offline once it's installed. Flask runs on 127.0.0.1:5000, the dataset is local, the models are local. Just install everything a day before, not during the presentation.
Installation Guide

Extra Add-Ons Available – Elevate Your Project

Add any of these professional upgrades to save time and impress your evaluators.

Project Setup

We'll install and configure the project on your PC via remote session (Google Meet, Zoom, or AnyDesk).

Source Code Explanation

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.

999

Custom Documents (College-Tailored)

  • Custom Project Report: ₹1,500
  • Custom Research Paper: ₹1,000
  • Custom PPT: ₹800

Fully customized to match your college format, guidelines, and submission standards.

Project Modification

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.

Project Files

GoogleReviews

What Our Students Say

4.9(38+ reviews)
Google review 1
Google review 2
Google review 3
Google review 4
Google review 5
Google review 6
Google review 7
Google review 8
Google review 9
Google review 10
Google review 11
Google review 12
Google review 13
Google review 14
Google review 15
Google review 16
Google review 17
Google review 18
Google review 19
Google review 20
Google review 21
Google review 22
Google review 23
Google review 24
Google review 25
Google review 26
Google review 27
Google review 28
Google review 29
Google review 30
Google review 31
Google review 32
Google review 33
Google review 34
Google review 35
Google review 36
Google review 37
Google review 38
⭐ 98% SUCCESS RATE
  • Full Development
  • Documentation
  • Presentation Prep
  • 24/7 Support
Chat with us