Experience the full platform live at: π https://retro-vintage-two.vercel.app
- About Retro
- β¨ Key Features
- π§ Retrieval-Augmented Generation (RAG) Search
- π οΈ Tech Stack
- π Quick Start & Installation
- βοΈ Vercel Deployment & CI/CD
- π Project Structure
- π Featured In
- π€ Contributing
- π Code of Conduct
- π License
Retro is an e-commerce and curated catalog platform designed for lovers of antique aesthetics, vintage electronics, analog audio, historical typewriters, and timeless collectibles.
Blending nostalgic charm from bygone eras with modern engineering, Retro brings you:
- An atmospheric, responsive vintage storefront with dark mode, animations, and interactive shopping cart.
- A Retrieval-Augmented Generation (RAG)-based AI product search system that understands natural language queries, historical eras, acoustic qualities, and aesthetic moods.
- Automated serverless deployment and continuous delivery on Vercel with GitHub Actions.
- π§ Natural Language AI Search (RAG): Search products using human-like queries (e.g., "warm sound system for jazz records", "gift for an old-school writer").
- π» Rich Vintage Catalog: High-fidelity records, phonographs, 1950s rangefinder cameras, mechanical typewriters, rotary phones, and collectibles.
- π Dynamic Cart System: Local storage persistence, live item counters, quantity management, and toast notifications.
- π Dark Mode & Nostalgic Themes: Seamless toggle between warm vintage parchment and elegant dark mode.
- β‘ Vercel Serverless Architecture: Fast global CDN distribution, edge API routing, and continuous deployment.
- π± Progressive Web App (PWA) Ready: Includes service workers and manifest configuration for offline-first resilience.
- ποΈ AI Database Query Agent (Text-to-MQL): Ask questions in plain English to query the MongoDB product catalog, user registrations, customer feedback, and statistical aggregations with read-only security.
Retro features an integrated RAG-powered product recommendation & search system. Rather than relying only on rigid keyword lookups, it interprets intent, historical period, and aesthetic tone to retrieve and explain matching artifacts.
βββββββββββββββββββββββββββββββββββ
β User Natural Language Query β e.g. "gift for an author who loves mechanical typewriters"
ββββββββββββββββββ¬βββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Intent Extraction & Query Parsing β
β - Detected Era: 1940s-1960s β
β - Detected Category: Writing & Office β
β - Mood/Tone: Tactile Mechanical, Author Gift β
ββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. Hybrid Semantic Retrieval (Dense + Lexical) β
β - TF-IDF Vector Cosine Similarity (scikit-learn) β
β - BM25-style Lexical N-Gram Matching β
β - Intent & Quality Score Reranking β
ββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. Context Augmentation β
β - Assembles top-k candidates with metadata & tags β
β - Computes calibrated relevance match % (55%-99%) β
ββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. Generative AI Curation Synthesis β
β - Synthesizes personalized Curator Note β
β - Generates "Why this matches" rationales β
β - Provides Vintage Styling & Pairing Advice β
β - Generates related exploration query prompts β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
GET /api/search/rag?q=warm+vinyl+soundPOST /api/search/ragwith JSON{ "query": "1950s street photography camera", "limit": 4 }- Also aliased to
/api/rag-searchfor Vercel serverless functions.
{
"success": true,
"query": "vintage mechanical typewriter for author",
"intent": { "detected_era": "1940s", "detected_category": "Writing & Office" },
"curator_response": {
"summary": "To inspire your literary journey, our curation pairs historical distraction-free writing instruments...",
"styling_tip": "Complement your typewriter with heavy cotton stationery, a brass lamp, and a leather notebook."
},
"recommendations": [
{
"id": "prod-3",
"title": "Retro Mechanical Typewriter",
"era": "1940s",
"price": "$220.00",
"relevance_percentage": 80,
"match_reason": "Authentic 1940s design (Featured). Ideal for creative writing with Film Noir Detective charm."
}
]
}| Domain | Technologies |
|---|---|
| Frontend | HTML5, Vanilla CSS3 (Custom Design System), JavaScript (ES6+), Bootstrap 5, FontAwesome 6, AOS Animations |
| AI & RAG Engine | Python 3.10+, scikit-learn (TF-IDF Vectorizer & Cosine Similarity), NumPy, Pandas |
| Node.js Engines | Express.js, Node.js Hybrid Vector & Lexical Matcher (server/ragSearchEngine.js, api/ragSearchEngine.cjs) |
| Backend & APIs | Express.js, Node.js, Vercel Serverless Functions (api/), MongoDB Atlas (User Auth) |
| Hosting & CI/CD | Vercel Global Edge Network, GitHub Actions (.github/workflows/vercel-deploy.yml) |
git clone https://github.com/Anjaliavv51/Retro.git
cd RetroThe project includes a built-in Express server that serves both the static frontend and the live RAG search API:
# Install dependencies
npm install
# Start the server
npm startOpen http://localhost:3000 in your browser. Click "AI Search" in the navigation bar to test the RAG search system.
You can test the RAG pipeline directly from the command line:
# Optional: set up python virtual environment
python -m venv venv
venv\Scripts\activate # On Windows
# source venv/bin/activate # On macOS/Linux
# Install python requirements
pip install -r requirements.txt
# Run natural language query search
python python/rag_search.py "warm vinyl sound for jazz evenings"
# Output as JSON
python python/rag_search.py "gift for an old-school author" --jsonIf you wish to test user authentication and session management:
cd backend
npm installCreate a backend/.env file:
PORT=5000
MONGODB_URL=your_mongodb_atlas_connection_string
SECRET=your_jwt_secret_key
CLIENT_URL=http://localhost:3000Start the auth service:
npm startRetro is deployed to Vercel at https://retro-vintage-two.vercel.app.
-
GitHub <-> Vercel Integration (Recommended):
- Navigate to Vercel Project Settings > Git.
- Link the repository
Anjaliavv51/Retroto the project. - Every push to
mainwill automatically build and deploy the latest version.
-
GitHub Actions Workflow:
- The repository includes
.github/workflows/vercel-deploy.yml. - To trigger deployments from GitHub Actions, add your
VERCEL_TOKENin your GitHub repository secrets (Settings > Secrets and variables > Actions).
- The repository includes
-
Deploy Manually from Terminal:
npx vercel --prod
Retro/
βββ api/ # Vercel Serverless API Functions
β βββ index.js # Dynamic serverless API router
β βββ rag-search.js # Dedicated RAG search endpoint
β βββ ragSearchEngine.cjs # High-performance CommonJS hybrid RAG engine
β βββ products.js # Product catalog endpoint
β βββ contact.js # Contact inquiries handler
β βββ newsletter.js # Newsletter subscriptions
β βββ reviews.js # Dynamic customer reviews
βββ css/ # Stylesheets
β βββ rag-search.css # AI RAG modal & card aesthetics
β βββ dark-mode.css # Dark mode styling tokens
β βββ navbarstyles.css # Responsive navigation bar
β βββ popup.css # Promotional popup styles
β βββ style.css # Global typography & layout
βββ js/ # Frontend JavaScript
β βββ rag-search.js # RAG modal manager, natural language handler & cart sync
β βββ cart.js # Shopping cart manager & persistence
β βββ dark-mode.js # Theme toggler
β βββ menu.js # Product interactions & wishlist
β βββ popup.js # Newsletter modal trigger
βββ html/ # Web Pages
β βββ menu.html # Vintage Collections & Catalog
β βββ cart.html # Shopping Cart & Checkout
β βββ about.html # About Retro & Heritage
β βββ contact.html # Inquiry Form
β βββ services.html # Services & Delivery Info
β βββ blog.html # Retro Stories & Articles
β βββ wishlist.html # Saved Wishlist Items
βββ python/ # Python AI & Recommendation Services
β βββ rag_search.py # Retrieval-Augmented Generation core engine
β βββ vintage_products.json # Annotated semantic product knowledge base
β βββ recommendation.py # Collaborative filtering + RAG integration
β βββ content_based_filtering.py # TF-IDF item recommendations
β βββ requirements.txt # Python ML dependencies
βββ server/ # Local Node.js Express Server
β βββ server.js # Dev server with RAG endpoints
β βββ ragSearchEngine.js # ES Module RAG engine
βββ .github/
β βββ workflows/
β βββ vercel-deploy.yml # Continuous deployment workflow
βββ index.html # Homepage & Hero Showcase
βββ vercel.json # Vercel routing & edge configuration
βββ package.json # Node.js project configuration
| Event Logo | Event Name | Event Description |
|---|---|---|
![]() |
Social Winter of Code Season-5 (SWOC) | A 2-month open-source program introducing developers to production-grade collaborative projects. |
![]() |
GirlScript Summer of Code 2024 | A 3-month open-source program fostering beginner and intermediate developer contributions. |
![]() |
Hacktoberfest 2024 | Worldwide month-long celebration of open-source software presented by DigitalOcean and partners. |
We welcome community contributions! Please read our Contributing Guidelines before submitting pull requests.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please follow our Code of Conduct to ensure an inclusive, harassment-free environment for everyone.
Distributed under the MIT License. See LICENSE.txt for more information.


