[6.4 Prototype] Wishlist and Product Report - FEUP-MEIC-DS-2025-26/madeinportugal.store GitHub Wiki
Overview
This prototype focuses on extending the Jumpseller store experience by implementing and testing two key customer-centric features: Wishlist and Product Report. The goal is to enhance the shopping experience and trustworthiness of the platform by allowing customers to track products they’re interested in and report items that violate marketplace standards.
Through these functionalities, users can easily monitor desired products’ status — such as availability or discounts — and help ensure that all listings remain appropriate, transparent, and secure.
Repositories:
Prototype Functionalities Overview
- Wishlist Management
- Allows users to create, view, and manage a personalized list of products they are interested in.
- Users can add and remove items, track product status (availability, discounts, out-of-stock), and access products directly from the wishlist page.
- Product Reporting
- Enables users to report products that are offensive, inappropriate, or potentially fraudulent.
- Users must specify a reason for the report. Reports are sent to moderators for review, and in cases of fraudulent sales, users may be eligible for a refund or replacement.
Technologies Used:
- Frontend:
- TypeScript, React (Next.js app router)
- HTML / JSX, CSS, Tailwind CSS
- Middleware:
- TypeScript (Next.js API Routes / server components)
- Node.js runtime (Next)
- Backend:
- PostgreSQL (SQL schema and queries)
- SQL
- TypeScript DB access layer (src/database/db.ts, setupDB.ts)
This prototype focuses on extending the Jumpseller store experience by implementing and testing two key customer-centric features: Wishlist and Product Report. The goal is to enhance the shopping experience and trustworthiness of the platform by allowing customers to track products they’re interested in and report items that violate marketplace standards.
Through these functionalities, users can easily monitor desired products’ status — such as availability or discounts — and help ensure that all listings remain appropriate, transparent, and secure.
Repositories:
Architecture diagrams
Component diagram (combined)
graph LR
Browser -->|HTTP| NextPR[Product Report Next.js]
Browser -->|HTTP| NextWL[Wishlist Next.js]
NextPR -->|fetch| JumpsellerAPI[Jumpseller REST API]
NextWL -->|SQL| Postgres[(PostgreSQL)]
NextWL -->|optional fetch| JumpsellerAPI
Sequence: Product Report — load products
sequenceDiagram
participant B as Browser
participant F as Product Frontend
participant S as Product API Route
participant J as Jumpseller
B->>F: Open product list
F->>S: GET /api/products
S->>J: fetch products (Basic Auth)
J-->>S: products JSON
S-->>F: products JSON
F-->>B: render products
Sequence: Wishlist — add item
sequenceDiagram
participant B as Browser
participant F as Wishlist Frontend
participant A as Wishlist API (add)
participant DB as PostgreSQL
B->>F: Click add to wishlist
F->>A: POST /api/wishlist/add { buyerId, productId }
A->>DB: INSERT INTO wishlist(buyer_id, product_id)
DB-->>A: inserted row
A-->>F: 201 Created
F-->>B: confirmation
Additional Information:
Group: 64
Members:
- Bernardo Costa (up202207579)
- Diana Nunes (up202208247)
- Sofia Gonçalves (up202205020)
- Teresa Mascarenhas (up202206828)
- Tiago Ferreira (up202207311)