A Python-powered movie collection management system
Project description
🎥 GemFlix
A Python-powered movie collection management system designed to organize, analyze, and discover movies effortlessly. With seamless Couchbase integration, GemFlix efficiently manages data for 1000+ movies and personal user collections. Users can rate, review, and create custom collections, while tailored filters and suggestions, powered by Gemini, enhance movie discovery. Additionally, built-in analysis tools provide deeper insights into viewing habits and collection trends.
🚀 Features
-
User Management:
- Sign up new users with personalized collections.
-
Movie Management:
- Add and manage movies in your collection.
- Delete movies or collections.
-
Search Functionality:
- Search movies by keywords (e.g. father daughter story)
- Filter movies by custom filters (e.g. title, genre, director, or actor)
-
Recommendation System:
- Get personalized movie recommendations based on user preferences.
-
Data Analysis:
- Analyze user moive data such as:
- basic descriptive statistics.
- Top directors in the collection.
- Most popular genres.
- Analyze user moive data such as:
-
Visualization:
- Visualize data trends, including:
- Summary reports.
- Top directors with details.
- Annual or Monthly genre trends.
- Display an interactive dashboard for easy access to insights.
- Visualize data trends, including:
📜 Function Details
Below are the key functions in GemFlix and how they work:
sign_up
Creates a user account
Parameters:
user_id(str): The user ID
Example:
collection.user_id(user_id="julia")
create_collection
Adds a new colection to the user's document
Parameters:
collection_name(str): The name of the collection.
Example:
collection.create_collection(collection_name="sci-fi")
display_collection
Displays all collections or movies within a specified collection.
Parameters:
collection_name(str): The name of the collection. (optional)
Example:
collection.display_collection(collection_name="sci-fi")
add_log
Adds a movie to a collection by its title, including details like rating, watched date, and notes.
Parameters:
collection_name(str): The name of the collection.movie_title(str): The title of the movie to add.rate(int): The user's rating for the movie.watched_date(str): The date the movie was watched (optional).notes(str): Additional notes about the movie (optional).
Example:
collection.add_log(collection_name = "sci-fi",
movie_title = "Interstellar",
rate = 10,
watched_data = "2024-11-28",
notes = "touching")
keyword_search
Perform a keyword search using Couchbase, and generate an HTML page displaying movie results based on the search text.
Parameters:
search_text(str): The search query used for fetching the movie results.
Example:
keyword_search("christmas family movies")
filter_results
Filter documents with dynamic conditions passed by the user.
Parameters:
filters(str): A list of custom filter conditions. Each filter is a dictionary with the following keys:field(str) : The field to filtercondition(str) : The condition to applyvalues(list) : The values to match against the condition.
limit(int) : The maximum number of movies to return.sort_by(tuple) : The sorting criteria, specified as (field, order)
Example:
filters = [
{"field": "Released_Year", "condition": "BETWEEN", "values": [1960, 1980]},
{"field": "Genre", "condition": "LIKE", "values": ["Romance"]},
]
sort_by = ("IMDB_Rating", "DESC")
filter_results(filters, 5, sort_by)
recommend
Generates top 'k' movie recommendations based on a collection of movies.
Parameters:
collection(MovieCollection) : MovieCollection object to retrieve data.collection_name(str): The name of the collection base recommendations on (optional).k(int): The number of top recommendations to return.
Example:
recommend(collection, 7)
display_dashboard
Combine all visualizations into a single HTML dashboard and display it in the browser.
Parameters:
user_collection(MovieCollection): The user's collection.collection_name(str): The name of the collection.period(str) : The period criterion ('month' or 'year').year(int) : The specific year to filter the data (optional).
Example:
display_dashboard(collection, None, "Year")
Prerequisites
- Python 3.11 or higher
- Couchbase Server
- Couchbase Python SDK
poetry
Contact
For questions or feedback, please contact:
Jane
Email: janexshen@gmail.com
Jenny
Email: je.chung301@gmail.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gemflix-0.0.1.tar.gz.
File metadata
- Download URL: gemflix-0.0.1.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ff953ace9129b75114f782623605dc43e21db79cbc338a41d76979945529c21
|
|
| MD5 |
1ab92a02df6d11bc0305ab2c21319e92
|
|
| BLAKE2b-256 |
5d0096ea906350383c2a18f5e160ab066e4fc563d1d6dde4b3350b2818ea28e6
|
File details
Details for the file gemflix-0.0.1-py3-none-any.whl.
File metadata
- Download URL: gemflix-0.0.1-py3-none-any.whl
- Upload date:
- Size: 17.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08dd57994a38c00e2616dc49555f7bbb72befd3a9c03f553396d733589ee05d1
|
|
| MD5 |
7e0862bd421eaf66edf64ceaca744fe4
|
|
| BLAKE2b-256 |
f2e2307ef017d0139a6c5af7bc462c0d8266cc790f1beb74596ce53bd64a94a6
|