Less searching. More finding. Discover a store that gets you.
Built for curious minds

Personalized Product
Recommendation System

Curate is an interactive college AI/ML demonstration. Shopping behavior is turned into real recommendation scores and transparent evaluation results. The hosted version uses the capabilities available on this app’s plan.

Storage & hosting

This app keeps its data in the built-in key-value store. A real relational database is a Pro feature; the editor’s Add-ons panel shows how to upgrade. SQLite, SQLAlchemy, FastAPI and a long-running Python server are not available in this hosted runtime. No database or Python API is claimed to be active.

The working recommendation engine is implemented in TypeScript with actual TF-IDF, cosine similarity and user-item matrix math. It loads saved seed records and combines them with the current browser’s saved interactions. Python/Pandas/scikit-learn would require a separate deployment and integration, not a cosmetic dependency list.

Connected · seed data and browser shopping records are saved

What’s implemented

  • Responsive React + Vite + Tailwind storefront
  • 100 unique products, 100 synthetic user profiles, 2,400 interactions
  • Product search, category and price filters, sorting and details
  • Cart, wishlist, activity tracking and browser-profile order history
  • Real user-item matrix collaborative filtering and cosine similarity
  • Real TF-IDF content model and weighted popularity
  • 50/30/20 hybrid Top-10 ranking, cold-start handling and purchase exclusion
  • Chronological Precision@K, Recall@K and NDCG@K evaluation
  • Recharts metrics, model comparison and interaction history
  • Free Demo Payment checkout with saved orders and purchase tracking

Honest boundaries

  • Authentication is not enabled. No registration, JWT login or protected admin mutation API is provided. The dashboard is a browsing profile, not an authenticated account.
  • The project console is public and read-only. It exposes only synthetic seed records—not real customer names, emails or other browsers’ shopping data.
  • Shared key-value storage is not a security boundary. The random browser ID is a convenience identifier, not a password. Never use this version for sensitive customer records or production entitlements.
  • Checkout is a completely free demonstration. No gateway is called and no money is collected. Enter sample name, email and address; these details are validated only in the browser, not stored in shared storage. Order items, totals and purchase events are saved for this browser.
  • Seed products and sample orders are demonstration data. Computed ML metrics are real calculations on synthetic activity, not live business results.

Run the frontend locally

Download every project file with its full contents: HTML, CSS, React TypeScript/JavaScript logic, components, pages, seed data, recommendation models, build configuration and setup documentation. Extract the TAR archive with your archive utility or tar -xf curate-complete-source.tar. This is the current hosted project, not an unimplemented Python backend. Dependencies are installed with npm; generated build output and node_modules are not source files and are not included.

  1. Use Node.js 20.19+ or 22+ and download the project source.
  2. Run npm install, then npm run dev.
  3. Open the Vite URL shown in your terminal. The local build can browse and evaluate the seed data; the platform-injected storage SDK is available in the hosted preview/deployment, not standalone localhost.
  4. Run npm run build to compile a production frontend. Consult README.md for the full architecture, seed design and manual test walkthrough.

No API keys or fabricated endpoints are needed. For authenticated production data, enable the appropriate capabilities in the editor. An external backend/provider is a separate paid-plan integration option.

Good finds. Delivered.

Free standard shipping on every order

Room to change your mind

A thoughtful 30-day return policy

Safe from start to finish

Free demo checkout — no real charges

⚡Remix on GenMB