ResourceHub is a sophisticated desktop application built with Python that solves the problem of information overload by combining automated web scraping, full-text search, and AI-powered summarization into a clean, modern user interface.
It allows users to save links to articles, code snippets, or notes, automatically extracts the core content, generates a concise summary using the Gemini API, and stores everything in a local, searchable database.
This project showcases advanced integration across multiple technologies:
- Modern UI/UX (Phase 5): Built using CustomTkinter (CTk) for a clean, modern, and natively dark/light mode compatible interface.
- AI Summarization (Phase 6): Integrates the Google Gemini API (
gemini-2.5-flash) to generate concise, high-quality summaries of scraped articles. - Advanced Persistence (Phase 1): Uses SQLite3 for reliable local data storage.
- Full-Text Search (Phase 3): Implements fuzzy search across the resource Title, Tags, and the saved Full Content.
- Automation (Phase 2): Uses
requestsandBeautifulSoupfor robust content capture.
You must have Python 3.8+ installed and obtain a Gemini API Key from Google AI Studio.
-
Clone the Repository:
git clone https://github.com/<YOUR_USERNAME>/ResourceHub_Tkinter.git cd ResourceHub_Tkinter
-
Set up Virtual Environment:
python -m venv .venv # Windows .venv\Scripts\activate # macOS/Linux source .venv/bin/activate
-
Install Dependencies:
pip install -r requirements.txt
-
Set API Key Environment Variable:
You must set your Gemini API key in your terminal session before running the app. Replace
YOUR_API_KEY_HEREwith your actual key.# Windows (PowerShell) $env:GEMINI_API_KEY="YOUR_API_KEY_HERE" # macOS/Linux export GEMINI_API_KEY="YOUR_API_KEY_HERE"
Start the application from your active virtual environment:
python app.py-
Use relative paths to files committed in your repo (recommended for GitHub README):
- Put files under
docs/images/and reference as./docs/images/<file>.png.
- Put files under
-
Avoid private asset hosts (e.g.,
user-images.githubusercontent.comfrom a private repo). Those links can return 403 Access Denied to others. -
Keep file names simple (no spaces, lowercase, use
-or_). -
If hosting outside GitHub (PyPI, npm, docs sites), use absolute raw URLs:
https://raw.githubusercontent.com/<YOUR_USERNAME>/ResourceHub_Tkinter/main/docs/images/<file>.png
-
If using Git LFS, ensure bandwidth quotas aren’t exceeded; otherwise PNGs/JPGs usually don’t need LFS.
Quick add & commit:
mkdir -p docs/images
# copy your screenshots into docs/images
git add docs/images/input-form.png docs/images/results-summary.png README.md
git commit -m "docs: fix README images via repo-relative paths"
git push origin main
