forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#67
2025-08-04 19:08:49 +02:00
67. The Dashboard shall show a quota progress bar with a numeric fraction like "23 / 50 images used".
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#66
2025-08-04 19:07:51 +02:00
66. The landing‑page hero shall feature a single‑sentence value proposition followed by a "Try it free" call‑to‑action.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#65
2025-08-04 19:06:54 +02:00
65. Background queues shall run idempotent jobs retried with exponential backoff up to five attempts.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#64
2025-08-04 19:06:12 +02:00
64. The system shall support horizontal scaling by keeping all session state in stateless JWTs and Redis.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#63
2025-08-04 19:05:58 +02:00
63. The server shall store all secrets in environment variables managed by a secrets manager, never in the repo.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#62
2025-08-04 19:05:10 +02:00
62. Uploaded files shall be scanned by ClamAV; detections shall abort processing and log an alert.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#61
2025-08-04 19:04:33 +02:00
61. All endpoints shall enforce HTTPS via HSTS with a max‑age of 31536000 s.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#60
2025-08-04 19:04:06 +02:00
60. The API shall respond to the /healthz probe in < 150 ms 95th percentile.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#59
2025-08-04 19:03:14 +02:00
59. All public pages shall score ≥ 90 on Google Lighthouse performance and accessibility audits.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#58
2025-08-04 19:02:48 +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.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#57
2025-08-04 19:02:33 +02:00
57. The server shall decrement the user's remaining quota atomically at the start of each job.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#56
2025-08-04 19:02:00 +02:00
56. A usage table shall store one row per successfully renamed image with columns user_id, timestamp, and byte_size.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#55
2025-08-04 19:01:39 +02:00
55. The ZIP archive shall preserve original EXIF metadata.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#54
2025-08-04 19:00:54 +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.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#53
2025-08-04 19:00:16 +02:00
53. The "Download ZIP" button shall remain disabled until at least one row exists and no rows are in "PROCESSING".
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#52
2025-08-04 18:59:48 +02:00
52. Pressing "Regenerate this name" on a row shall re‑run the naming algorithm with a new random seed.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#51
2025-08-04 18:59:12 +02:00
51. Editing a Proposed Filename shall update the entry's state to "CUSTOM".
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#50
2025-08-04 18:58:46 +02:00
50. The Review Table shall display columns: Thumbnail, Original Name, Proposed Filename (editable inline), and Vision Tags (tooltip).
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#49
2025-08-04 18:58:27 +02:00
49. When all jobs in a batch reach status "DONE", the client shall auto‑navigate to /batch/{batch_id}/review.
forgejo_admin
opened issue Vibecode-Together/SEO_iamge_renamer_starting_point#48
2025-08-04 18:57:57 +02:00
48. The Proposed Filename shall always include at least one token derived from the user's original Keyword Set.