# NextPick

Smart book recommendations based on your last read.

https://nextpick.cv/


---

## Features

- Search-as-you-type suggestions
- Personalized recommendations from one input
- Optional filters:
  - Exclude specific books (title or ISBN)
  - Exclude likely same-series books
- Recommendation cards with:
  - Title and author
  - Genres
  - Rating and page count (when available)
  - Short AI-generated description for each book.
- Basic API protections:
  - CORS allowlist
  - Rate limiting
  - Input validation and request checks

---

## Tech Stack

### Frontend
- HTML
- CSS
- Vanilla JavaScript

### Backend
- Node.js
- Express

### Recommendation/Data Layer
- OpenAI embeddings (`text-embedding-3-small`)
- Pinecone vector database
- No dataset cleaning scripts included due to API keys

### Deployment
- Vercel (`vercel.json` route config)

---

## Project Structure

.
├── public/
│   ├── index.html
│   ├── about.html
│   ├── how-it-was-made.html
│   ├── 404.html
│   ├── styles.css
│   └── hero.js
├── src/
│   └── pineconeClient.js
├── server.js
├── .env.example
├── package.json
├── package-lock.json
└── vercel.json

---

## If want to replicate
- Prerequisites
    -Node.js 18+ (recommended)
    -npm
    -A Pinecone index with your book vectors
    -OpenAI API key
    -Pinecone API key

- Install dependencies
    -npm install

-Configure .env from .env.example
    -Run locally using "npm run dev"