Add email-based wishlist feature with server-side persistence#6
Draft
Add email-based wishlist feature with server-side persistence#6
Conversation
Co-authored-by: thomasiverson <12767513+thomasiverson@users.noreply.github.com>
Co-authored-by: thomasiverson <12767513+thomasiverson@users.noreply.github.com>
Co-authored-by: thomasiverson <12767513+thomasiverson@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add email-based API wishlist feature
Add email-based wishlist feature with server-side persistence
Feb 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements server-side wishlist storage keyed by user email. Users can save products across sessions, with separate wishlists per email address.
Backend
/api/wishlist):GET /:email- retrieve user's wishlistPOST /- add item with duplicate prevention and product validationDELETE /:email/:productId- remove itemFrontend
Example Usage
Screenshots
Products page with wishlist hearts:

Wishlist page:

Original prompt
This section details on the original issue you should resolve
<issue_title>Add Email-Based API Wishlist Feature (Variation 2)</issue_title>
<issue_description>## Variation 2: Email-Based API Wishlist
Overview
Implement a backend-driven wishlist feature that stores wishlist data per email address. Requires user login and follows the existing API patterns used in the codebase.
Implementation Details
Backend (API):
api/src/models/wishlist.tsAdd wishlist seed data to
api/src/seedData.tswishlistItemsarrayCreate
api/src/routes/wishlist.tsfollowing the established patternGET /api/wishlist/:email- Get all wishlist items for userPOST /api/wishlist- Add product to wishlist (body: {email, productId})DELETE /api/wishlist/:email/:productId- Remove from wishlistresetWishlist()function for testingCreate
api/src/routes/wishlist.test.tsbranch.test.tsUpdate
api/src/index.ts/api/wishlistFrontend:
Update
frontend/src/context/AuthContext.tsxemailproperty to contextCreate
frontend/src/context/WishlistContext.tsxuseWishlist(),addToWishlist(),removeFromWishlist(),isInWishlist()isLoggedIn)Add to
frontend/src/api/config.tswishlist: '/api/wishlist'Add wishlist UI to
frontend/src/components/entity/product/Products.tsxCreate
frontend/src/components/Wishlist.tsxpageUpdate
frontend/src/App.tsx/wishlist→<Wishlist />Update
frontend/src/components/Navigation.tsxUpdate
frontend/src/components/Login.tsxTechnical Requirements:
branch.tsandproduct.ts)Data Flow:
/api/wishlist/:emailTesting
API Tests:
Manual Frontend Tests:
Files to Create/Modify:
API:
api/src/models/wishlist.tsapi/src/routes/wishlist.tsapi/src/routes/wishlist.test.tsapi/src/seedData.tsapi/src/index.tsFrontend:
frontend/src/context/WishlistContext.tsxfrontend/src/components/Wishlist.tsxfrontend/src/context/AuthContext.tsxfrontend/src/api/config.tsfrontend/src/components/entity/product/Products.tsxfrontend/src/App.tsxfrontend/src/components/Navigation.tsxfrontend/src/components/Login.tsxSuccess Criteria:
Comments on the Issue (you are @copilot in th...
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.