PromptBase
PromptBase SelectGet Select
Close icon
General
Home
Marketplace
Create
Hire
Login
Chat
Sell
Explore

Prompt Details

Model
Chat - (gpt-5.6)
Token size
3,205
Example input
[Describe the feature, bug, technical problem, refactoring task, review request, or development objective]: Fix duplicate order creation when users double-click the "Place Order" button. [Provide relevant files, code snippets, repository structure, architecture documentation, or available codebase context]: React checkout page + Node.js/Express order API. Relevant files are not provided. [Provide programming language, frameworks, libraries, database, infrastructure, runtime, and relevant tooling]: React, TypeScript, Node.js, Express, PostgreSQL. [Describe what the system currently does, what is failing, and what the desired behavior should be]: Two rapid clicks can create two orders. Expected: one user action creates only one order. [Specify whether you need analysis, implementation, debugging, review, refactoring, architecture, tests, documentation, or a complete engineering solution]: Full senior-level analysis, design, implementation plan, testing, security, performance, and production-readiness review.
Example output
πŸ”Ž Phase 1 β€” Development Context Reconstruction 🎯 Objective Prevent duplicate order creation caused by repeated checkout submissions. βœ… Confirmed Facts The frontend is React + TypeScript. The backend is Node.js + Express. PostgreSQL is used. Duplicate orders can occur after rapid repeated clicks. No existing regression test covers this behavior. No new dependency should be introduced. πŸ” Inference The frontend may allow multiple requests while the first request is still pending. ⚠️ Assumption The backend currently does not have an idempotency mechanism or equivalent database constraint preventing duplicate order creation. This must be verified against the actual repository. πŸ’‘ Proposed Decision Use two layers of protection: Frontend: prevent accidental repeated submissions. Backend/database: protect data integrity if duplicate requests still reach the server. --- 🧩 Phase 2 β€” Requirement & Acceptance Analysis Functional Requirements User can place an order normally. Rapid repeated clicks must not create duplicate orders. A failed order request must remain retryable. Existing successful checkout behavior should remain unchanged. Edge Cases User clicks twice within milliseconds. User clicks while request is pending. Network timeout occurs. Server returns an error. User refreshes the page during checkout. The same request is accidentally submitted twice. Two legitimate orders are created sequentially. Acceptance Criteria 1. One checkout action produces one order. 2. Repeated submission of the same operation does not create another order. 3. Failed requests can be retried. 4. Existing API consumers remain compatible. 5. Automated regression tests cover duplicate submission behavior. --- πŸ—οΈ Phase 3 β€” Codebase & Architecture Analysis Because the actual repository was not supplied, the following are not confirmed repository facts. Expected areas to inspect Checkout React component Order submission handler API client/service Express order route Order service PostgreSQL order repository Order schema/migrations Existing checkout tests Authentication/user identity handling πŸ” Important Investigation Before changing code, determine: Where the order ID is generated. Whether an existing request ID exists. Whether the database has unique constraints. Whether order creation happens inside a transaction. Whether payment processing happens before or after order creation. Whether retries are already supported. 🚫 Do Not Do Do not immediately rewrite the checkout system. The evidence currently only supports investigating duplicate submission handling. --- 🧠 Phase 4 β€” Technical Design Recommended Flow User clicks Place Order ↓ Frontend prevents duplicate submission ↓ Generate/reuse idempotency key ↓ POST /orders ↓ Backend validates request ↓ Check idempotency key ↓ Create order transactionally ↓ Store result against idempotency key ↓ Return existing result for duplicate request Design Decision Layer 1: Frontend Protection While the request is pending: Place Order ↓ Submitting... ↓ Button disabled This improves UX but cannot be the only protection. Layer 2: Backend Idempotency The backend should treat repeated requests with the same idempotency key as the same operation. This protects against: Network retries Browser retries Client bugs Multiple requests Reverse-proxy retries Layer 3: Database Integrity The database should enforce uniqueness where appropriate. This provides a final data-integrity boundary. --- πŸ’» Phase 5 β€” Implementation Plan Task 1 β€” Inspect Checkout Submission Objective: Find the exact source of duplicate requests. Files: Actual checkout component, once provided. Acceptance: Request lifecycle is identified. Current loading state is documented. Tests: Existing checkout tests reviewed. --- Task 2 β€” Add Submission Guard Objective: Prevent repeated frontend submissions. Responsibility: Track request state. Disable submission while pending. Restore state after completion/failure. Tests: Click once β†’ one request. Click rapidly β†’ one request. --- Task 3 β€” Add Idempotency Protection Objective: Protect the backend from duplicate operations. Responsibility: Accept an idempotency key. Associate the key with the resulting order. Return the existing result for repeated requests. Tests: Same key β†’ same operation. Different keys β†’ independent operations. --- Task 4 β€” Database Validation Objective: Verify whether database constraints can prevent invalid duplication. Tests: Duplicate key behavior. Transaction rollback behavior. --- Task 5 β€” Regression Tests Objective: Ensure the defect cannot silently return. --- βš™οΈ Phase 6 β€” Code Implementation Because no actual repository files were supplied, production code should not be fabricated as if it were a repository patch. An illustrative frontend pattern would be: const [isSubmitting, setIsSubmitting] = useState(false); const handlePlaceOrder = async () => { if (isSubmitting) return; setIsSubmitting(true); try { await createOrder(); } finally { setIsSubmitting(false); } }; And: <button type="button" disabled={isSubmitting} onClick={handlePlaceOrder} > {isSubmitting ? "Placing order..." : "Place Order"} </button> ⚠️ Senior Engineering Note This alone is not sufficient for reliable order creation. The server must remain safe if two requests reach it despite the frontend guard. --- πŸ› Phase 7 β€” Debugging & Root-Cause Analysis Investigation Chain SYMPTOM ↓ Two orders created ↓ REPRODUCTION ↓ Rapidly click Place Order ↓ OBSERVATION ↓ Multiple POST requests? ↓ HYPOTHESIS ↓ Frontend permits concurrent submissions ↓ VALIDATION ↓ Inspect network requests and server logs ↓ ROOT CAUSE ↓ Only confirmed after evidence ↓ FIX ↓ Frontend guard + server idempotency ↓ REGRESSION TEST ↓ Repeat rapid-submission scenario Possible Causes Hypothesis Evidence Needed Multiple frontend requests Browser network log Backend retry Server logs Payment retry Payment-provider logs Missing DB uniqueness Database schema Race condition Concurrent request tracing No single cause should be declared until the evidence confirms it. --- πŸ” Phase 8 β€” Security Analysis Confirmed Vulnerability None confirmed from the supplied information. Potential Risks πŸ”΄ Duplicate Financial Operations If order creation is associated with payment processing, duplicate requests could potentially cause duplicate financial operations. This requires investigation. 🟠 Idempotency-Key Abuse The backend should ensure an idempotency key cannot be used to access another user's order result. 🟠 Authorization The server must derive user identity from authenticated context rather than trusting a client-supplied user ID. 🟑 Sensitive Logging Do not log: Payment credentials Authentication tokens Full card information Sensitive personal information --- ⚑ Phase 9 β€” Performance & Resource Analysis The issue is primarily a correctness/data-integrity problem, not necessarily a performance problem. Potential performance considerations: Duplicate database writes Duplicate payment requests Extra network requests Unnecessary transaction processing Measurement Before optimization, measure: Number of requests per checkout attempt. Database writes per order. Duplicate order frequency. API latency. Error/retry rates. Avoid adding caching or complex locking without evidence that they are required. --- πŸ§ͺ Phase 10 β€” Testing Strategy Unit Tests Test submission-state logic: Initial state β†’ not submitting Submit β†’ submitting Second submit β†’ ignored Request completes β†’ not submitting Request fails β†’ not submitting API Tests Test: POST /orders same idempotency key same idempotency key again Expected: One order Same operation result No duplicate order Integration Test Frontend ↓ API ↓ Order Service ↓ PostgreSQL Verify only one order is persisted. Regression Test Simulate: Click Place Order Click Place Order immediately Click Place Order immediately Expected: 1 order Failure Test First request β†’ server failure Retry β†’ successful order Expected: Retry remains possible --- πŸ‘€ Phase 11 β€” Code Review If reviewing the eventual implementation, findings should be reported like this: Finding 1 Severity: High Location: Order creation endpoint Problem: No server-side protection against repeated order requests. Why it matters: Client-side protection alone cannot guarantee data integrity. Recommended Fix: Add an idempotency mechanism appropriate to the existing architecture. Validation: Concurrent/repeated API requests using the same operation key should result in one order. Finding 2 Severity: Medium Location: Checkout component Problem: Submission remains enabled while the request is pending. Why it matters: Users can unintentionally generate multiple requests. Recommended Fix: Disable submission during the active request. Validation: Rapid clicks produce only one API request. --- ♻️ Phase 12 β€” Refactoring & Technical Debt KEEP Existing checkout architecture, if it is otherwise sound. Existing API contract where possible. Existing database layer. CHANGE Duplicate submission handling. Missing regression coverage. REMOVE Nothing should be removed without repository evidence. INVESTIGATE Existing transaction boundaries. Existing payment retry behavior. Existing unique constraints. Existing request IDs/idempotency mechanisms. Refactoring Principle Do not turn a focused bug fix into a full checkout rewrite. --- πŸ”„ Phase 13 β€” Integration & Change Impact Analysis Potential affected areas: Checkout UI Order API Order service PostgreSQL Payment service Confirmation emails Inventory reservation Analytics/events Background jobs Compatibility If idempotency is introduced through a new optional request header, existing clients can potentially remain compatible. However, this must be verified against the actual API architecture. Rollback A rollback should consider: Backend deployment Database changes Existing idempotency records Payment/order consistency Database migrations should be backward-compatible where practical. --- πŸš€ Phase 14 β€” Production Readiness Before release, verify: Correctness [ ] Duplicate submissions handled. [ ] Failed orders remain retryable. [ ] Legitimate separate orders still work. Security [ ] Authorization verified. [ ] Idempotency keys scoped correctly. [ ] Sensitive information not logged. Observability Track: Order creation failures. Duplicate-request attempts. Idempotency hits. Order API latency. Payment failures. Deployment [ ] Migration reviewed. [ ] Rollback strategy documented. [ ] Existing clients remain compatible. [ ] Production logs/metrics available. --- 🧠 Phase 15 β€” Engineering Decision & Quality Review KEEP Existing checkout architecture unless repository evidence indicates a deeper design problem. Focused change scope. Existing API compatibility. CHANGE Client-side duplicate submission behavior. Server-side duplicate-operation handling. Missing regression tests. REMOVE Nothing yet. INVESTIGATE Payment processing semantics. Database constraints. Existing retry mechanisms. Transaction boundaries. Concurrent order creation behavior. Final Quality Challenge The important question is not: > "How do we disable the button?" The stronger engineering question is: > "How do we guarantee that one logical order operation cannot accidentally become multiple persisted operations?" That distinction is critical for production systems. --- πŸ† Phase 16 β€” Final Senior Developer Engineering Report Executive Summary The supplied scenario indicates a duplicate-order problem triggered by rapid repeated submission. The safest design is layered: Frontend submission guard + Backend idempotency + Database integrity + Regression tests The frontend improves user experience, while backend/database controls protect actual system correctness. Traceability Requirement ↓ Prevent duplicate orders ↓ Design ↓ Frontend guard + backend idempotency ↓ Code Change ↓ Checkout + order API ↓ Test ↓ Rapid submission + duplicate API requests ↓ Validation ↓ One logical operation = one persisted order ↓ Production Readiness ↓ Monitoring + rollback + security verification ⚠️ Important Open Question The actual repository was not provided, so the exact root cause, file names, existing architecture, database schema, and production behavior remain unverified. Therefore, this sample demonstrates how the Senior Developer Assistant should reason, rather than pretending that the proposed implementation has already been applied or tested. βœ… Validation Checklist [ ] Actual checkout code inspected [ ] Actual order API inspected [ ] Database schema inspected [ ] Duplicate request reproduced [ ] Root cause confirmed with evidence [ ] Frontend protection implemented [ ] Backend idempotency implemented if required [ ] Database integrity verified [ ] Unit tests added [ ] Integration tests added [ ] Regression test added [ ] Security review completed [ ] Performance impact measured where relevant [ ] Deployment/rollback plan reviewed [ ] Production monitoring verified [ ] No unresolved critical defects concealed Final Engineering Recommendation: Treat duplicate order creation as a data-integrity problem, not merely a button-click UI problem. Inspect the real codebase first, confirm the root cause, then implement the smallest architecture-consistent fix with regression coverage.
GPT

Senior Developer Engineering Copilot

Add to Cart
Instant accessInstant access
Usage rightsCommercial use
Money-back guaranteeMoney‑back
By purchasing this prompt, you agree to our terms of service
GPT-5.6
Tested icon
Guide icon
4 examples icon
Free credits icon
Junior-level coding assistants often focus on generating code. A senior developer must do much more: understand the existing codebase, question requirements, evaluate architecture, identify hidden edge cases, preserve conventions, review changes, debug systematically, and consider security, performance, testing, and maintainability. 🧠 Analyze requirements like a senior engineer πŸ—οΈ Make architecture-aware implementation decisions πŸ” Understand existing code before modifying it πŸ’» Plan and imple
...more
Added over 1 month ago
Report
Browse Marketplace