From 339e89e65dfb78b37758176b4e1bb29ef81a28fc Mon Sep 17 00:00:00 2001 From: "yves.gugger" Date: Tue, 9 Dec 2025 16:54:14 +0100 Subject: [PATCH] docs: Update README with Blog, OAuth, and Admin features --- README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 64 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3624b29..5260538 100644 --- a/README.md +++ b/README.md @@ -121,12 +121,32 @@ npm run dev ### Security Features (v1.1) - **Password Reset** — Secure token-based password recovery via email - **Email Verification** — Optional email confirmation for new accounts +- **OAuth Login** — Sign in with Google or GitHub - **Rate Limiting** — Protection against brute-force attacks (slowapi) - **Stripe Payments** — Secure subscription payments with Stripe Checkout - **Stripe Customer Portal** — Manage billing, view invoices, cancel subscriptions - **Contact Form** — With email confirmation and spam protection - **Newsletter** — Subscribe/unsubscribe with double opt-in +### Blog System (v1.3) +- **Blog Posts** — Create and manage blog articles +- **Categories & Tags** — Organize content +- **Featured Posts** — Highlight posts on homepage +- **View Tracking** — Analytics for post views +- **SEO Metadata** — Custom meta titles and descriptions +- **Draft/Publish** — Content workflow management + +### Admin Panel (v1.3) +- **User Management** — List, search, upgrade, and manage users +- **Bulk Operations** — Upgrade multiple users at once +- **User Export** — Export all users to CSV +- **Price Alerts** — View all active TLD price alerts +- **Domain Health** — Manually trigger domain checks +- **Scheduler Status** — Monitor background jobs and last runs +- **Email Test** — Verify SMTP configuration +- **Activity Log** — Track admin actions +- **Blog Management** — Full CRUD for blog posts + ### CI/CD Pipeline (v1.2) - **GitHub Actions** — Automated CI/CD on push to main - **Frontend Lint** — ESLint + TypeScript type checking @@ -266,7 +286,9 @@ pounce/ | `/auctions` | Smart Pounce auction aggregator | No* | | `/contact` | Contact form | No | | `/about` | About us | No | -| `/blog` | Blog & Newsletter signup | No | +| `/blog` | Blog posts listing | No | +| `/blog/{slug}` | Blog post detail | No | +| `/admin` | Admin panel | Yes (Admin) | | `/privacy` | Privacy policy | No | | `/terms` | Terms of service | No | | `/imprint` | Legal imprint | No | @@ -525,13 +547,51 @@ This ensures identical prices on: | GET | `/api/v1/auctions/opportunities` | AI-powered opportunities (auth) | | GET | `/api/v1/auctions/stats` | Platform statistics | +### OAuth +| Method | Endpoint | Description | +|--------|----------|-------------| +| GET | `/api/v1/oauth/providers` | List enabled OAuth providers | +| GET | `/api/v1/oauth/google/login` | Initiate Google OAuth | +| GET | `/api/v1/oauth/google/callback` | Handle Google callback | +| GET | `/api/v1/oauth/github/login` | Initiate GitHub OAuth | +| GET | `/api/v1/oauth/github/callback` | Handle GitHub callback | + +### Blog +| Method | Endpoint | Description | +|--------|----------|-------------| +| GET | `/api/v1/blog/posts` | List published posts | +| GET | `/api/v1/blog/posts/featured` | Get featured posts | +| GET | `/api/v1/blog/posts/categories` | Get all categories | +| GET | `/api/v1/blog/posts/{slug}` | Get single post | +| GET | `/api/v1/blog/admin/posts` | Admin: List all posts | +| POST | `/api/v1/blog/admin/posts` | Admin: Create post | +| GET | `/api/v1/blog/admin/posts/{id}` | Admin: Get post | +| PATCH | `/api/v1/blog/admin/posts/{id}` | Admin: Update post | +| DELETE | `/api/v1/blog/admin/posts/{id}` | Admin: Delete post | +| POST | `/api/v1/blog/admin/posts/{id}/publish` | Admin: Publish post | +| POST | `/api/v1/blog/admin/posts/{id}/unpublish` | Admin: Unpublish post | + ### Admin | Method | Endpoint | Description | |--------|----------|-------------| +| GET | `/api/v1/admin/stats` | Get platform statistics | | GET | `/api/v1/admin/users` | List all users | -| POST | `/api/v1/admin/upgrade-user` | Upgrade user subscription | -| POST | `/api/v1/admin/scrape-tld-prices` | Manually trigger TLD price scrape | -| GET | `/api/v1/admin/tld-prices/stats` | Get TLD price database stats | +| GET | `/api/v1/admin/users/export` | Export users as CSV | +| POST | `/api/v1/admin/users/bulk-upgrade` | Bulk upgrade users | +| GET | `/api/v1/admin/users/{id}` | Get user details | +| PATCH | `/api/v1/admin/users/{id}` | Update user | +| DELETE | `/api/v1/admin/users/{id}` | Delete user | +| POST | `/api/v1/admin/users/{id}/upgrade` | Upgrade single user | +| GET | `/api/v1/admin/price-alerts` | List all price alerts | +| POST | `/api/v1/admin/domains/check-all` | Trigger domain checks | +| GET | `/api/v1/admin/newsletter` | List newsletter subs | +| GET | `/api/v1/admin/newsletter/export` | Export newsletter | +| POST | `/api/v1/admin/scrape-tld-prices` | Trigger TLD scrape | +| GET | `/api/v1/admin/tld-prices/stats` | Get TLD stats | +| GET | `/api/v1/admin/system/health` | System health check | +| GET | `/api/v1/admin/system/scheduler` | Scheduler status | +| POST | `/api/v1/admin/system/test-email` | Send test email | +| GET | `/api/v1/admin/activity-log` | Get activity log | ---