{"id":51468649,"url":"https://github.com/gperdrizet/anime-recommendations","last_synced_at":"2026-07-06T14:30:32.418Z","repository":{"id":334266150,"uuid":"1130794150","full_name":"gperdrizet/anime-recommendations","owner":"gperdrizet","description":"Demonstration of simple Streamlit web app deployment with content based filtering for anime recommendations","archived":false,"fork":false,"pushed_at":"2026-02-13T04:28:33.000Z","size":1140,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-13T12:34:41.779Z","etag":null,"topics":["deployment","devcontainers","recommender-systems","render","streamlit"],"latest_commit_sha":null,"homepage":"https://anime-recommendations-qtbq.onrender.com","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gperdrizet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-09T02:54:05.000Z","updated_at":"2026-02-13T04:28:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gperdrizet/anime-recommendations","commit_stats":null,"previous_names":["gperdrizet/anime_recommendations"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gperdrizet/anime-recommendations","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdrizet%2Fanime-recommendations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdrizet%2Fanime-recommendations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdrizet%2Fanime-recommendations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdrizet%2Fanime-recommendations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gperdrizet","download_url":"https://codeload.github.com/gperdrizet/anime-recommendations/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gperdrizet%2Fanime-recommendations/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35195590,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deployment","devcontainers","recommender-systems","render","streamlit"],"created_at":"2026-07-06T14:30:31.542Z","updated_at":"2026-07-06T14:30:32.318Z","avatar_url":"https://github.com/gperdrizet.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anime recommendations\n\nThis repository demonstrates set-up and deployment of a simple Streamlit web application with a content-based filtering recommendation system that suggests similar anime titles based on genre similarity using the Jaccard distance metric.\n\nView the live deployment here: [anime-recommendations-qtbq.onrender.com](https://anime-recommendations-qtbq.onrender.com)\n\n## Overview\n\nThis project implements a simple yet effective anime recommendation engine that:\n- Analyzes anime genres to find similar titles\n- Uses Jaccard similarity (intersection over union) to measure genre overlap\n- Provides an interactive web interface built with Streamlit\n- Returns the top 5 most similar anime for any selected title\n\nThe dataset includes over 12,000 anime titles with information about genres, ratings, and popularity metrics.\n\n## Try it in GitHub Codespaces\n\nThe easiest way to try running this app yourself is using GitHub Codespaces, which provides a fully configured development environment in your browser:\n\n1. **Fork this repository** to your GitHub account\n2. **Open in Codespaces**:\n   - Click the green `\u003c\u003e Code` button on your forked repository\n   - Select the **Codespaces** tab\n   - Click **Create codespace on main**\n3. **Wait for setup** - The container will automatically install dependencies and run the app\n4. **Access the app** - A popup will appear asking to open the browser. Click **Open in Browser**, or visit `http://localhost:8501`\n\nThe Codespace includes Python 3.12, all required packages, and VS Code extensions pre-configured.\n\n## Fork, clone \u0026 run locally\n\n### Prerequisites\n- Python 3.10 or higher\n- pip package manager\n- Git\n\n### Setup instructions\n\n1. **Fork the repository** on GitHub (click the Fork button)\n\n2. **Clone your fork**:\n   ```bash\n   git clone https://github.com/YOUR-USERNAME/anime-recommendations.git\n   cd anime-recommendations\n   ```\n\n3. **Create a virtual environment** (recommended):\n   ```bash\n   python -m venv venv\n   source venv/bin/activate  # On Windows: venv\\Scripts\\activate\n   ```\n\n4. **Install dependencies**:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n5. **Run the Streamlit app**:\n   ```bash\n   streamlit run src/app.py\n   ```\n\n6. **Open your browser** to `http://localhost:8501`\n\n### Explore the notebook\n\nTo explore the data analysis and recommendation algorithm, see `notebooks/content_based_filtering.ipynb`.\n\n## Deploy to Render.com\n\nDeploy your own instance of this app to Render.com for free:\n\n### Step 1: Prepare your repository\n\n1. **Fork this repository** to your GitHub account if you haven't already\n\n### Step 2: Deploy on render\n\n1. **Sign up** for a free account at [render.com](https://render.com)\n\n2. **Create a new web service**:\n   - Click **New +** → **Web Service**\n   - Connect your GitHub account if not already connected\n   - Select your forked `anime-recommendations` repository\n\n3. **Configure the service**:\n   - **Name**: Choose a unique name (e.g., `my-anime-recommendations`)\n   - **Environment**: `Python 3`\n   - **Build Command**: `pip install -r requirements.txt`\n   - **Start Command**: `streamlit run src/app.py --server.port=$PORT --server.address=0.0.0.0`\n\n4. **Set environment settings** (optional):\n   - **Instance Type**: `Free` (sufficient for this app)\n   - **Auto-Deploy**: Enable to automatically deploy on git push to your fork\n\n5. **Click \"Create web service\"**\n\n6. **Wait for deployment** - Render will:\n   - Clone your repository\n   - Install dependencies\n   - Start the Streamlit app\n   - Provide you with a public URL (e.g., `https://my-anime-recommendations.onrender.com`)\n\n### Deployment notes\n\n- **First load delay**: Free tier instances spin down after inactivity. The first request may take 30-60 seconds to wake up.\n- **Custom domain**: You can add a custom domain in Render's settings.\n- **Updates**: Push to your GitHub repo to trigger automatic redeployment (if auto-deploy is enabled).\n\n## Project structure\n\n```\nanime-recommendations/\n├── data/\n│   ├── anime.csv                          # Raw anime dataset\n│   └── processed_animes.parquet           # Preprocessed data with genre sets\n├── notebooks/\n│   └── content_based_filtering.ipynb      # Jupyter notebook with analysis\n├── src/\n│   └── app.py                             # Streamlit web application\n├── .devcontainer/\n│   └── devcontainer.json                  # VS Code dev container config\n├── requirements.txt                       # Python dependencies\n└── README.md\n```\n\n## Technology stack\n\n- **Python 3.12** - Programming language\n- **Pandas** - Data manipulation and analysis\n- **Streamlit** - Web interface framework\n- **Jupyter** - Interactive notebook environment\n\n## Contributing\n\nFeel free to fork this project and customize it.\n\n## License\n\nSee [LICENSE](LICENSE) file for details.\n\n## Resources\n\n- [Streamlit Documentation](https://docs.streamlit.io/)\n- [Pandas Documentation](https://pandas.pydata.org/docs/)\n- [Jaccard Similarity](https://en.wikipedia.org/wiki/Jaccard_index)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgperdrizet%2Fanime-recommendations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgperdrizet%2Fanime-recommendations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgperdrizet%2Fanime-recommendations/lists"}