Coursera Course Recommendation System
Developed a rule-based course recommendation system using Python, MySQL, and Tkinter, enabling users to discover relevant courses from a dataset of 3,522 Coursera courses through an interactive preference questionnaire.

Problem
Online learning platforms provide thousands of courses covering different subjects, difficulty levels, and skill areas. Finding suitable courses can be time-consuming when learners need to compare multiple options against their own experience and learning objectives.
The project aimed to simplify course discovery by developing an interactive recommendation application that filters a Coursera course dataset according to user preferences, while demonstrating practical integration between a relational database, Python data processing, and a desktop interface.
Approach
Implemented a Python data collection workflow using HTTP requests to the Coursera API and prepared a separate dataset containing 3,522 courses with information about course names, educational providers, difficulty levels, ratings, descriptions, URLs, and skills.
Integrated MySQL using PyMySQL, MySQL Connector, and SQLAlchemy to store course data and retrieve records through SQL queries. Used Pandas for exploratory analysis, data cleaning, text normalization, and feature selection.
Developed seven rule-based filtering functions covering course ratings, beginner/intermediate/advanced difficulty levels, and interests in Data Analysis, Programming, and Art.
Built a Tkinter desktop application that presents a sequential Yes/No questionnaire. Converted the collected responses into binary values and applied the corresponding filters to identify courses matching the user's preferences.
Outcome
Implemented a database-backed, rule-based course recommendation workflow using Python and MySQL, with a Tkinter questionnaire for collecting user preferences.
Analyzed a dataset of 3,522 courses from 184 educational providers and developed filtering logic across three preference categories: ratings, difficulty levels, and skills.
The saved notebook demonstrates a complete example in which seven user responses are converted into filtering conditions, producing a matching course from the dataset.
The application demonstrates data retrieval, relational database operations, interactive preference collection, and rule-based recommendation. Recommendation accuracy and real-user satisfaction were not formally evaluated.
Highlights
- Processed a dataset of 3,522 Coursera courses from 184 educational providers
- Integrated Python with MySQL using SQLAlchemy and PyMySQL
- Implemented Coursera API data retrieval using HTTP requests
- Developed seven rule-based filtering functions across three preference categories
- Built an interactive Tkinter interface for collecting user preferences
- Implemented sequential filtering using course ratings, difficulty levels, and skills
- Combined database management, data analysis, and desktop application development
Notes
Developed an interactive course recommendation application as a university database laboratory project, integrating data collection, relational database management, data preprocessing, and a Python desktop interface.
The project explores course data retrieval using the Coursera API and uses a dataset of 3,522 courses from 184 educational providers. Implemented MySQL database operations with SQLAlchemy and PyMySQL to store course information and retrieve it through SQL queries.
Performed exploratory data analysis and preprocessing with Pandas to examine course ratings, difficulty levels, providers, and skills. Developed a rule-based recommendation engine that progressively filters courses according to users' responses to seven questions covering course ratings, difficulty levels, and skill interests.
Built an interactive Tkinter desktop application that guides users through a sequence of Yes/No questions and captures their preferences. The collected responses are processed by the recommendation pipeline to identify matching courses.
The project demonstrates database integration, data analysis, rule-based recommendation logic, and graphical user interface development.