Update README with new icon and recent features

- Add PriceGhost logo at top of README
- Center header with icon and description
- Add ntfy.sh to notification options and setup guide
- Add Ollama as local AI extraction option
- Add ntfy test endpoint to API reference

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
clucraft 2026-01-23 04:39:33 -05:00
parent 31732b814f
commit 7afa3ccec3

View file

@ -1,8 +1,17 @@
# PriceGhost <p align="center">
<img src="frontend/public/icon.svg" alt="PriceGhost Logo" width="120" height="120">
</p>
A self-hosted price tracking application that monitors product prices from any website. Get notified when prices drop, hit your target price, or items come back in stock. <h1 align="center">PriceGhost</h1>
<img width="1609" height="1094" alt="image" src="https://github.com/user-attachments/assets/311f410c-170c-4f0c-81e3-3ba7e0141fa7" /> <p align="center">
<strong>A self-hosted price tracking application that monitors product prices from any website.</strong><br>
Get notified when prices drop, hit your target price, or items come back in stock.
</p>
<p align="center">
<img src="https://github.com/user-attachments/assets/311f410c-170c-4f0c-81e3-3ba7e0141fa7" alt="PriceGhost Dashboard" width="800">
</p>
--- ---
@ -57,6 +66,7 @@ The cost is minimal (fractions of a cent per extraction) and dramatically improv
- **Telegram** - Get alerts via Telegram bot - **Telegram** - Get alerts via Telegram bot
- **Discord** - Send alerts to any Discord channel via webhooks - **Discord** - Send alerts to any Discord channel via webhooks
- **Pushover** - Native Pushover support for mobile push notifications - **Pushover** - Native Pushover support for mobile push notifications
- **ntfy.sh** - Simple, no-account push notifications to any device
- **Per-channel toggles** - Enable/disable each notification channel independently - **Per-channel toggles** - Enable/disable each notification channel independently
- **Test notifications** - Send test alerts to verify your setup - **Test notifications** - Send test alerts to verify your setup
@ -88,7 +98,7 @@ The cost is minimal (fractions of a cent per extraction) and dramatically improv
| **Backend** | Node.js, Express, TypeScript | | **Backend** | Node.js, Express, TypeScript |
| **Database** | PostgreSQL | | **Database** | PostgreSQL |
| **Scraping** | Cheerio, Puppeteer (with stealth plugin) | | **Scraping** | Cheerio, Puppeteer (with stealth plugin) |
| **AI Extraction** | Anthropic Claude, OpenAI GPT (optional but recommended) | | **AI Extraction** | Anthropic Claude, OpenAI GPT, Ollama (optional but recommended) |
| **Charts** | Recharts | | **Charts** | Recharts |
| **Auth** | JWT + bcrypt | | **Auth** | JWT + bcrypt |
| **Scheduling** | node-cron | | **Scheduling** | node-cron |
@ -172,6 +182,15 @@ npm run dev
4. Enter both in Settings > Notifications 4. Enter both in Settings > Notifications
5. Use the toggle to enable/disable without losing your configuration 5. Use the toggle to enable/disable without losing your configuration
#### ntfy.sh
1. Choose a unique topic name (e.g., `priceghost-yourname`)
2. Subscribe to your topic on your phone:
- **Android**: Install [ntfy app](https://play.google.com/store/apps/details?id=io.heckel.ntfy) and subscribe to your topic
- **iOS**: Install [ntfy app](https://apps.apple.com/app/ntfy/id1625396347) and subscribe to your topic
- **Web**: Visit `https://ntfy.sh/your-topic-name`
3. Enter your topic name in Settings > Notifications
4. No account or API key needed - it just works!
### AI Extraction Setup (Highly Recommended) ### AI Extraction Setup (Highly Recommended)
For dramatically improved compatibility with difficult sites: For dramatically improved compatibility with difficult sites:
@ -181,7 +200,8 @@ For dramatically improved compatibility with difficult sites:
3. Choose your provider: 3. Choose your provider:
- **Anthropic (Claude)** - Get key from [console.anthropic.com](https://console.anthropic.com) - **Anthropic (Claude)** - Get key from [console.anthropic.com](https://console.anthropic.com)
- **OpenAI (GPT)** - Get key from [platform.openai.com](https://platform.openai.com/api-keys) - **OpenAI (GPT)** - Get key from [platform.openai.com](https://platform.openai.com/api-keys)
4. Enter your API key - **Ollama (Local)** - Free, runs locally. Install from [ollama.ai](https://ollama.ai), then `ollama pull llama3.2`
4. Enter your API key (or Ollama server URL for local)
5. Use "Test Extraction" to verify it works 5. Use "Test Extraction" to verify it works
The AI automatically activates when standard scraping fails to extract a price, providing a reliable fallback. The AI automatically activates when standard scraping fails to extract a price, providing a reliable fallback.
@ -218,6 +238,7 @@ The AI automatically activates when standard scraping fails to extract a price,
| POST | `/api/settings/notifications/test/telegram` | Send test Telegram notification | | POST | `/api/settings/notifications/test/telegram` | Send test Telegram notification |
| POST | `/api/settings/notifications/test/discord` | Send test Discord notification | | POST | `/api/settings/notifications/test/discord` | Send test Discord notification |
| POST | `/api/settings/notifications/test/pushover` | Send test Pushover notification | | POST | `/api/settings/notifications/test/pushover` | Send test Pushover notification |
| POST | `/api/settings/notifications/test/ntfy` | Send test ntfy notification |
| GET | `/api/settings/ai` | Get AI extraction settings | | GET | `/api/settings/ai` | Get AI extraction settings |
| PUT | `/api/settings/ai` | Update AI settings | | PUT | `/api/settings/ai` | Update AI settings |
| POST | `/api/settings/ai/test` | Test AI extraction on a URL | | POST | `/api/settings/ai/test` | Test AI extraction on a URL |