This website requires JavaScript.
Explore
Help
Register
Sign in
Vibecode-Together
/
SEO_iamge_renamer_starting_point
Watch
1
Star
0
Fork
You've already forked SEO_iamge_renamer_starting_point
0
Code
Issues
10
Pull requests
Projects
1
Releases
Packages
Wiki
Activity
Actions
Labels
Milestones
New issue
KanBan
83
Backlog
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.
#10 opened
2025-08-04 18:39:37 +02:00
by
forgejo_admin
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.
#11 opened
2025-08-04 18:40:03 +02:00
by
forgejo_admin
12. The product shall monetise via tiered monthly quotas and Stripe‑handled subscriptions.
#12 opened
2025-08-04 18:40:20 +02:00
by
forgejo_admin
13. Anonymous visitors can view the marketing landing page but cannot upload images.
#13 opened
2025-08-04 18:40:38 +02:00
by
forgejo_admin
14. Basic users can upload ≤ 50 images per month and access all core renaming features.
#14 opened
2025-08-04 18:41:08 +02:00
by
forgejo_admin
15. Pro users inherit Basic rights and raise the quota to 500 images per month.
#15 opened
2025-08-04 18:41:24 +02:00
by
forgejo_admin
16. Max users inherit Basic rights and raise the quota to 1 000 images per month.
#16 opened
2025-08-04 18:41:44 +02:00
by
forgejo_admin
17. Administrators can view global usage stats, force‑reset quotas, refund payments, and ban accounts.
#17 opened
2025-08-04 18:42:15 +02:00
by
forgejo_admin
18. The sign‑in button shall initiate Google OAuth 2.0 with email scope only.
#18 opened
2025-08-04 18:42:52 +02:00
by
forgejo_admin
19. The system shall create a new User record on first successful OAuth callback.
#19 opened
2025-08-04 18:43:14 +02:00
by
forgejo_admin
20. The system shall store only the Google user ID, display name, and email hash, never the raw OAuth access token.
#20 by
forgejo_admin
was closed
2025-08-05 20:14:29 +02:00
21. Password‑based logins are explicitly out of scope for V1.
#21 by
forgejo_admin
was closed
2025-08-05 14:55:31 +02:00
22. The Billing page shall display current plan, remaining quota, next renewal date, and an "Upgrade" button.
#22 by
forgejo_admin
was closed
2025-08-05 20:14:28 +02:00
23. The Upgrade flow shall open a Stripe Checkout session in a modal.
#23 by
forgejo_admin
was closed
2025-08-05 20:14:16 +02:00
24. Successful Stripe webhooks shall update the User's plan field and reset their quota counter immediately.
#24 by
forgejo_admin
was closed
2025-08-05 20:14:16 +02:00
25. Cancellation in Stripe shall downgrade the user to Basic at the period's end and persist renamed files already created.
#25 by
forgejo_admin
was closed
2025-08-05 20:14:15 +02:00
26. The Dashboard shall feature a drag‑and‑drop zone that accepts only .jpg, .jpeg, .png, .gif, and .webp MIME types.
#26 by
forgejo_admin
was closed
2025-08-05 20:14:15 +02:00
27. The client shall block any drag event containing > N files, where N = user's remaining monthly quota.
#27 by
forgejo_admin
was closed
2025-08-05 20:14:14 +02:00
28. The client shall compute SHA‑256 checksums of files to avoid duplicate uploads in the same batch.
#28 by
forgejo_admin
was closed
2025-08-05 20:14:14 +02:00
29. After drop, the client shall POST a multipart/form‑data request to /api/batch containing files and raw Keyword Set.
#29 by
forgejo_admin
was closed
2025-08-05 20:14:14 +02:00
30. The server shall persist the raw binary files to an object‑store bucket under a time‑based UUID folder.
#30 by
forgejo_admin
was closed
2025-08-05 20:14:13 +02:00
31. The server shall enqueue one background job per image for AI Vision processing.
#31 by
forgejo_admin
was closed
2025-08-05 20:13:27 +02:00
32. The server shall respond synchronously with a batch_id and an initial status of "PROCESSING".
#32 by
forgejo_admin
was closed
2025-08-05 20:13:27 +02:00
33. The "Enhance keywords with AI" button shall be disabled until at least one keyword is typed.
#33 by
forgejo_admin
was closed
2025-08-05 20:13:26 +02:00
34. Pressing the button shall call /api/keywords/enhance with the current Keyword Set and target locale "en‑US".
#34 by
forgejo_admin
was closed
2025-08-05 20:13:26 +02:00
35. The enhancement endpoint shall invoke an LLM that returns up to ten additional, SEO‑relevant keywords ranked by search volume.
#35 by
forgejo_admin
was closed
2025-08-05 20:13:25 +02:00
36. The client shall merge and de‑duplicate the Enhanced Keyword Set before re‑rendering the chip‑list UI.
#36 by
forgejo_admin
was closed
2025-08-05 20:13:25 +02:00
37. Users can manually delete any auto‑suggested keyword before upload.
#37 by
forgejo_admin
was closed
2025-08-05 20:13:25 +02:00
38. Each background job shall send the image to a vision API (e.g., OpenAI Vision or Google Vision) requesting labels and confidence scores.
#38 by
forgejo_admin
was closed
2025-08-05 20:13:24 +02:00
39. The system shall discard any label below 0.40 confidence.
#39 by
forgejo_admin
was closed
2025-08-05 20:13:24 +02:00
40. The remaining labels shall form the AI Vision Descriptor list for that image.
#40 by
forgejo_admin
was closed
2025-08-05 20:13:23 +02:00
41. The server shall combine Enhanced Keyword Set + AI Vision Descriptor into a ranked pool, giving 70 % weight to Vision tags and 30 % to user keywords when resolving conflicts.
#41 by
forgejo_admin
was closed
2025-08-05 20:12:27 +02:00
42. The final pool shall be truncated to a maximum of six distinct, natural‑language tokens.
#42 by
forgejo_admin
was closed
2025-08-05 20:12:27 +02:00
43. The Proposed Filename shall start with an uppercase letter and contain only letters, numbers, spaces, and hyphens.
#43 by
forgejo_admin
was closed
2025-08-05 20:12:26 +02:00
44. The Proposed Filename shall always exclude stop‑words such as "the", "a", "an", "and".
#44 by
forgejo_admin
was closed
2025-08-05 20:12:26 +02:00
45. The Proposed Filename shall be ≤ 60 characters long, excluding the original extension.
#45 by
forgejo_admin
was closed
2025-08-05 20:12:25 +02:00
46. The Proposed Filename shall never duplicate within the same batch; a numeric suffix " (2)" shall be appended when collisions occur.
#46 by
forgejo_admin
was closed
2025-08-05 20:11:52 +02:00
47. The Proposed Filename shall always include at least one token derived from the AI Vision Descriptor.
#47 by
forgejo_admin
was closed
2025-08-05 20:11:52 +02:00
48. The Proposed Filename shall always include at least one token derived from the user's original Keyword Set.
#48 by
forgejo_admin
was closed
2025-08-05 20:11:52 +02:00
49. When all jobs in a batch reach status "DONE", the client shall auto‑navigate to /batch/{batch_id}/review.
#49 by
forgejo_admin
was closed
2025-08-05 20:11:51 +02:00
50. The Review Table shall display columns: Thumbnail, Original Name, Proposed Filename (editable inline), and Vision Tags (tooltip).
#50 by
forgejo_admin
was closed
2025-08-05 20:11:51 +02:00
51. Editing a Proposed Filename shall update the entry's state to "CUSTOM".
#51 by
forgejo_admin
was closed
2025-08-05 20:11:50 +02:00
52. Pressing "Regenerate this name" on a row shall re‑run the naming algorithm with a new random seed.
#52 by
forgejo_admin
was closed
2025-08-05 20:11:50 +02:00
53. The "Download ZIP" button shall remain disabled until at least one row exists and no rows are in "PROCESSING".
#53 by
forgejo_admin
was closed
2025-08-05 20:11:16 +02:00
54. Clicking "Download ZIP" shall trigger a GET to /api/batch/{batch_id}/zip; the server shall stream a ZIP archive containing renamed files.
#54 by
forgejo_admin
was closed
2025-08-05 20:11:15 +02:00
55. The ZIP archive shall preserve original EXIF metadata.
#55 by
forgejo_admin
was closed
2025-08-05 20:11:15 +02:00
56. A usage table shall store one row per successfully renamed image with columns user_id, timestamp, and byte_size.
#56 by
forgejo_admin
was closed
2025-08-05 20:11:14 +02:00
57. The server shall decrement the user's remaining quota atomically at the start of each job.
#57 by
forgejo_admin
was closed
2025-08-05 20:11:14 +02:00
58. At UTC 00:00 on the first of each month, a cron job shall reset every user's quota to their plan limit.
#58 by
forgejo_admin
was closed
2025-08-05 20:11:13 +02:00
59. All public pages shall score ≥ 90 on Google Lighthouse performance and accessibility audits.
#59 by
forgejo_admin
was closed
2025-08-05 20:11:13 +02:00
60. The API shall respond to the /healthz probe in < 150 ms 95th percentile.
#60 by
forgejo_admin
was closed
2025-08-05 20:11:13 +02:00
61. All endpoints shall enforce HTTPS via HSTS with a max‑age of 31536000 s.
#61 by
forgejo_admin
was closed
2025-08-05 20:10:35 +02:00
62. Uploaded files shall be scanned by ClamAV; detections shall abort processing and log an alert.
#62 by
forgejo_admin
was closed
2025-08-05 20:10:34 +02:00
63. The server shall store all secrets in environment variables managed by a secrets manager, never in the repo.
#63 by
forgejo_admin
was closed
2025-08-05 20:10:34 +02:00
64. The system shall support horizontal scaling by keeping all session state in stateless JWTs and Redis.
#64 by
forgejo_admin
was closed
2025-08-05 20:10:33 +02:00
65. Background queues shall run idempotent jobs retried with exponential backoff up to five attempts.
#65 by
forgejo_admin
was closed
2025-08-05 20:10:33 +02:00
66. The landing‑page hero shall feature a single‑sentence value proposition followed by a "Try it free" call‑to‑action.
#66 by
forgejo_admin
was closed
2025-08-05 20:10:32 +02:00
67. The Dashboard shall show a quota progress bar with a numeric fraction like "23 / 50 images used".
#67 by
forgejo_admin
was closed
2025-08-05 20:10:32 +02:00
68. Drag‑and‑drop zone shall highlight when files hover over it and display the total number accepted.
#68 by
forgejo_admin
was closed
2025-08-05 20:10:32 +02:00
69. Invalid files shall be listed with a red icon and a tooltip reason like "GIF over 25 MB rejected".
#69 by
forgejo_admin
was closed
2025-08-05 20:09:53 +02:00
70. While Vision jobs run, each Proposed Filename cell shall display a looping shimmer placeholder animation.
#70 by
forgejo_admin
was closed
2025-08-05 20:09:52 +02:00
71. The billing modal shall summarise price, billing frequency, and confirm upgrade in ≤ three clicks.
#71 by
forgejo_admin
was closed
2025-08-05 20:09:52 +02:00
72. All user‑facing times shall be displayed in the user's browser locale, derived via Intl.DateTimeFormat.
#72 by
forgejo_admin
was closed
2025-08-05 20:09:52 +02:00
73. POST /api/batch → { batch_id, accepted_count, skipped_count }.
#73 by
forgejo_admin
was closed
2025-08-05 20:09:51 +02:00
74. GET /api/batch/{batch_id}/status → { state: PROCESSING|DONE|ERROR, progress: 0‑100 }.
#74 by
forgejo_admin
was closed
2025-08-05 20:09:51 +02:00
75. PUT /api/image/{image_id}/filename accepts { new_name } and returns the updated record.
#75 by
forgejo_admin
was closed
2025-08-05 20:09:50 +02:00
76. POST /api/keywords/enhance accepts { keywords[] } and returns { enhanced_keywords[] }.
#76 by
forgejo_admin
was closed
2025-08-05 20:09:50 +02:00
77. WebSocket ws://…/progress/{batch_id} streams JSON events { image_id, status }.
#77 by
forgejo_admin
was closed
2025-08-05 20:09:11 +02:00
79. batches : id, user_id, status, created_at.
#79 by
forgejo_admin
was closed
2025-08-05 20:07:49 +02:00
80. images : id, batch_id, original_name, proposed_name, vision_tags jsonb, status.
#80 by
forgejo_admin
was closed
2025-08-05 20:07:50 +02:00
81. payments: id, user_id, stripe_session_id, plan, amount, currency, status.
#81 by
forgejo_admin
was closed
2025-08-05 20:09:11 +02:00
82. All API calls shall log trace IDs compatible with OpenTelemetry.
#82 by
forgejo_admin
was closed
2025-08-05 20:09:11 +02:00
83. Errors shall be sent to Sentry with user ID redacted.
#83 by
forgejo_admin
was closed
2025-08-05 20:09:10 +02:00
84. Batch processing time per image shall be exported as a Prometheus histogram.
#84 by
forgejo_admin
was closed
2025-08-05 20:09:10 +02:00
85. All interactive controls shall be reachable via keyboard and labelled with aria‑label.
#85 by
forgejo_admin
was closed
2025-08-05 20:09:09 +02:00
86. The app shall support English only in V1, but all text shall be pulled from a translation JSON to allow later localisation.
#86 by
forgejo_admin
was closed
2025-08-05 20:09:09 +02:00
87. The app shall be containerised in a multi‑stage Dockerfile producing a final Alpine image < 300 MB.
#87 by
forgejo_admin
was closed
2025-08-05 20:09:09 +02:00
88. CI shall run ESLint, Prettier, unit tests, and Cypress e2e tests on every pull request.
#88 by
forgejo_admin
was closed
2025-08-05 20:09:08 +02:00
89. Production shall run on Kubernetes with separate pods for API, worker, and front‑end static hosting.
#89 by
forgejo_admin
was closed
2025-08-05 20:03:48 +02:00
90. Zero‑downtime deploys shall be achieved with rolling updates and readiness probes.
#90 by
forgejo_admin
was closed
2025-08-05 20:03:48 +02:00
91. Every sentence numbered 10‑90 defines a single, atomic requirement that an LLM can verify by querying the deployed system's observable behaviour, data, or codebase.
#91 by
forgejo_admin
was closed
2025-08-05 20:03:48 +02:00
92. A compliance suite shall map each requirement ID to a unit‑test prompt following the pattern: "Assert that requirement NN is satisfied by …".
#92 by
forgejo_admin
was closed
2025-08-05 20:03:31 +02:00
78. users : id, google_uid, email_hash, plan, quota_remaining, created_at.
#78 by
forgejo_admin
was closed
2025-08-05 20:07:35 +02:00
0
To Do
0
In Progress
0
Done