forgejo_admin
  • Joined on 2025-07-24
27. The client shall block any drag event containing > N files, where N = user's remaining monthly quota.
26. The Dashboard shall feature a drag‑and‑drop zone that accepts only .jpg, .jpeg, .png, .gif, and .webp MIME types.
25. Cancellation in Stripe shall downgrade the user to Basic at the period's end and persist renamed files already created.
24. Successful Stripe webhooks shall update the User's plan field and reset their quota counter immediately.
23. The Upgrade flow shall open a Stripe Checkout session in a modal.
22. The Billing page shall display current plan, remaining quota, next renewal date, and an "Upgrade" button.
21. Password‑based logins are explicitly out of scope for V1.
20. The system shall store only the Google user ID, display name, and email hash, never the raw OAuth access token.
19. The system shall create a new User record on first successful OAuth callback.
18. The sign‑in button shall initiate Google OAuth 2.0 with email scope only.
17. Administrators can view global usage stats, force‑reset quotas, refund payments, and ban accounts.
16. Max users inherit Basic rights and raise the quota to 1 000 images per month.
15. Pro users inherit Basic rights and raise the quota to 500 images per month.
14. Basic users can upload ≤ 50 images per month and access all core renaming features.
13. Anonymous visitors can view the marketing landing page but cannot upload images.
12. The product shall monetise via tiered monthly quotas and Stripe‑handled subscriptions.
11. The product shall output renamed images that are search‑engine‑friendly, syntactically safe for all major file systems, and semantically descriptive of image content.
10. The product shall let any authenticated user rename many images in one batch using a combination of user‑supplied keywords and automatic computer‑vision tags.
forgejo_admin created branch main in Vibecode-Together/SEO_iamge_renamer_starting_point 2025-08-04 16:04:50 +02:00