This project is my first portfolio, which is improved version of my final project for CS50, which I finished last year. It's designed to show what I learned through the course: basic web programming with python, javascript and HTML/CSS; data manipulation of SQL database etc. The application is a movie-recommendation system where users can search and get recommendations from imdb dataset.
このプロジェクトは私の最初のポートフォリオで、昨年修了したCS50の修了プロジェクトの改良版です。コースで学習したPython、javascript、HTML/CSSを使った基本的なウェブプログラミング、SQLデータベースのデータ操作などのスキルを活かしています。アプリケーションの機能としては、ユーザーがimdb datasetから映画を検索してお勧めの映画を表示できるレコメンダーシステムです。
At the time I built it for CS50, the recommendation algorithm was content-based filtering, which simply shows users movie titles that stars user's favorite actors/actresses.
After completed CS50, I was keen to learn more about data engineering since I was fascinated when the first moment I saw fetched data, but what I built was far from something useful. I learned some pyhton libraries for data processing such as pandas and numpy. Now this project uses collaborative filtering, which enables users to find new interests. For other user's liking data, which I don’t have actual one, I created a sample data from MovieLens Latest Datasets(ml-latest-small.zip). Please check the details on my kaggle notebook
Additionally, I decided to change SQL language from SQLite to MYSQL since it seems to be the most popular language.
CS50のために作った当時のレコメンデーション・アルゴリズムは、コンテンツベースフィルタリングというもので、単純にユーザーの好きな俳優が出演している映画を表示するものでした。
CS50修了後、クエリに引っ張られてきたデータを見たときに感動する一方、私が作ったものは役に立つものから程遠いものだったため、データエンジニアリングについてもっと学びたいと思いました。実際にpandasやnumpyといったデータ処理用のPyhtonライブラリをいくつか学び、本プロジェクトでは協調フィルタリングを使っています。とはいえ、実際のユーザーのライキングに関するデータは持ち合わせていないので、MovieLens Latest Datasets(ml-latest-small.zip)からサンプルデータを作成しました。詳しくはこちらのKaggleノートをご覧ください。
さらに、SQL言語をSQLiteから最も人気のあるSQL言語であるMYSQLに変更することにしました。
+ technology additionally used
- technology previously used
Category | Contents |
---|---|
Programming | + Data Processing (pandas, numpy) Python 3.10.11, JavaScript, HTML/CSS |
Framework | Flask 2.3.2 |
Database | - SQLite -> + MYSQL + DB Connecion & Execution( SQLAlchemy , PyMySQL ) |
Version Control | + git |
Hosting(Currently stop hosting) | + Google Cloud Platform(App Engine & Cloud SQL) |
Recommender Algorithm | - Content-based Filtering -> + Collaborative Filtering(scikit-learn) |
CSS | Bootstrap 5.1.3 |
Features | 機能 |
---|---|
User Registration & Authentication | ユーザー登録と認証 |
Query | クエリ |
Liking | ライク機能 |
Collaborative Filtering | 協調フィルタリング |
Please message me if you find bugs or technical issues in my codes. That helps a lot.
コードにバグや技術的な問題を見つけたら、ご連絡をいただけると大変助かります。
- CS: CS50
- Dev Environment Setup: Your Python Coding Environment on Windows: Setup Guide
- Collaborative Filtering: Build a Recommendation Engine With Collaborative Filtering
- Jaccard Index: Wikipedia: Jaccard Index
- Git: Ry's Git Tutorial
- App Deployment on GCP: Medium: Deploying a Flask app to Google App Engine by Doug Mahugh
Back to top