mirror of
https://github.com/clucraft/PriceGhost.git
synced 2026-06-08 15:05:16 +02:00
Add version tracking and v1.0.0 release
- Create CHANGELOG.md documenting all features - Add version.json for version tracking - Display version in Settings page footer with links to Changelog and GitHub - Tag release as v1.0.0 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
ccbc188487
commit
5e67e76504
4 changed files with 138 additions and 0 deletions
87
CHANGELOG.md
Normal file
87
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# Changelog
|
||||
|
||||
All notable changes to PriceGhost will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.0.0] - 2026-01-23
|
||||
|
||||
### Added
|
||||
|
||||
#### Core Features
|
||||
- Universal price scraping with site-specific extractors for Amazon, Walmart, Best Buy, Target, eBay, Newegg, Home Depot, Costco, and AliExpress
|
||||
- JSON-LD structured data extraction for broad site compatibility
|
||||
- Puppeteer headless browser fallback with stealth plugin for JavaScript-rendered pages
|
||||
- Price history tracking with interactive charts (7d, 30d, 90d, all time)
|
||||
- 7-day sparkline graphs on dashboard for quick trend overview
|
||||
- Configurable check intervals (5 minutes to 24 hours)
|
||||
- Live countdown timers and progress bars showing time until next check
|
||||
- Staggered checking with jitter to prevent rate limiting
|
||||
|
||||
#### AI Features
|
||||
- AI-powered price extraction fallback (Anthropic Claude, OpenAI GPT, Ollama local)
|
||||
- AI price verification to catch scraping errors (e.g., scraping savings amounts instead of actual prices)
|
||||
- AI status badges showing verification status (✓ verified, ⚡ corrected)
|
||||
|
||||
#### Notifications
|
||||
- Telegram bot notifications
|
||||
- Discord webhook notifications
|
||||
- Pushover push notifications
|
||||
- ntfy.sh notifications (no account required)
|
||||
- Price drop alerts with configurable thresholds
|
||||
- Target price alerts
|
||||
- Back-in-stock alerts
|
||||
- Per-channel enable/disable toggles
|
||||
- Test notification buttons for each channel
|
||||
|
||||
#### Stock Tracking
|
||||
- Out-of-stock detection with visual indicators
|
||||
- Stock status history tracking
|
||||
- Stock timeline visualization
|
||||
- Back-in-stock notification alerts
|
||||
|
||||
#### User Interface
|
||||
- Dark/Light mode with system theme auto-detection
|
||||
- Responsive design for desktop and mobile
|
||||
- Toast notifications for user feedback
|
||||
- Dashboard with list layout, search, and sorting
|
||||
- Bulk actions (select multiple products, bulk delete)
|
||||
- Historical low price indicators
|
||||
- Product notification badges showing configured alerts
|
||||
|
||||
#### User Management
|
||||
- Multi-user support with JWT authentication
|
||||
- Admin panel for user management
|
||||
- Registration enable/disable control
|
||||
- Profile management (name, password)
|
||||
- Password visibility toggle for sensitive fields
|
||||
|
||||
#### PWA & Mobile
|
||||
- Progressive Web App support
|
||||
- Add to Home Screen capability
|
||||
- Service worker for offline caching
|
||||
- Custom ghost icon
|
||||
|
||||
#### Currency Support
|
||||
- USD, EUR, GBP, CHF, CAD, AUD, JPY, INR support
|
||||
- Automatic currency detection from scraped pages
|
||||
|
||||
#### Deployment
|
||||
- Docker and Docker Compose support
|
||||
- GitHub Container Registry images
|
||||
- GitHub Actions CI/CD workflow
|
||||
|
||||
### Security
|
||||
- JWT-based authentication
|
||||
- bcrypt password hashing
|
||||
- Input validation throughout
|
||||
- Secure API design
|
||||
|
||||
---
|
||||
|
||||
## Version History
|
||||
|
||||
| Version | Date | Description |
|
||||
|---------|------|-------------|
|
||||
| 1.0.0 | 2026-01-23 | Initial public release |
|
||||
4
frontend/public/version.json
Normal file
4
frontend/public/version.json
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": "1.0.0",
|
||||
"releaseDate": "2026-01-23"
|
||||
}
|
||||
|
|
@ -14,11 +14,17 @@ import {
|
|||
|
||||
type SettingsSection = 'profile' | 'notifications' | 'ai' | 'admin';
|
||||
|
||||
interface VersionInfo {
|
||||
version: string;
|
||||
releaseDate: string;
|
||||
}
|
||||
|
||||
export default function Settings() {
|
||||
const [activeSection, setActiveSection] = useState<SettingsSection>('profile');
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const [error, setError] = useState('');
|
||||
const [success, setSuccess] = useState('');
|
||||
const [versionInfo, setVersionInfo] = useState<VersionInfo | null>(null);
|
||||
|
||||
// Profile state
|
||||
const [profile, setProfile] = useState<UserProfile | null>(null);
|
||||
|
|
@ -72,6 +78,11 @@ export default function Settings() {
|
|||
|
||||
useEffect(() => {
|
||||
fetchInitialData();
|
||||
// Fetch version info
|
||||
fetch('/version.json')
|
||||
.then(res => res.json())
|
||||
.then(data => setVersionInfo(data))
|
||||
.catch(() => {}); // Silently fail if version.json not found
|
||||
}, []);
|
||||
|
||||
const fetchInitialData = async () => {
|
||||
|
|
@ -1698,6 +1709,38 @@ export default function Settings() {
|
|||
</>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Version Info */}
|
||||
{versionInfo && (
|
||||
<div style={{
|
||||
marginTop: '2rem',
|
||||
paddingTop: '1rem',
|
||||
borderTop: '1px solid var(--border)',
|
||||
textAlign: 'center',
|
||||
color: 'var(--text-muted)',
|
||||
fontSize: '0.75rem',
|
||||
}}>
|
||||
<span>PriceGhost v{versionInfo.version}</span>
|
||||
<span style={{ margin: '0 0.5rem' }}>•</span>
|
||||
<a
|
||||
href="https://github.com/clucraft/PriceGhost/blob/main/CHANGELOG.md"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
style={{ color: 'var(--primary)', textDecoration: 'none' }}
|
||||
>
|
||||
Changelog
|
||||
</a>
|
||||
<span style={{ margin: '0 0.5rem' }}>•</span>
|
||||
<a
|
||||
href="https://github.com/clucraft/PriceGhost"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
style={{ color: 'var(--primary)', textDecoration: 'none' }}
|
||||
>
|
||||
GitHub
|
||||
</a>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</Layout>
|
||||
);
|
||||
|
|
|
|||
4
version.json
Normal file
4
version.json
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": "1.0.0",
|
||||
"releaseDate": "2026-01-23"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue