This repository contains three parts built as part of an internship task: a RAG system, a Recommendation Engine, and a set of n8n automations. Together they demonstrate document-based question answering, content-based recommendations, and workflow automation.
The Recommendation Engine also powers the AI Assistant feature of CampusCart, a student marketplace project — students can describe what they need in natural language (e.g. "I need headphones for studying") and get relevant book or product recommendations back.
internship-project/
├── recommender/ # Content-based recommendation engine + Flask API
├── n8n/ # Exported n8n workflow JSON files
├── screenshots/ # Screenshots demonstrating completed tasks
└── frontend/ # CampusCart frontend (uses the recommender via n8n)
└── README.md # Project documentation
Loads PDF documents, splits them into chunks, embeds them, stores them in ChromaDB, and answers questions by retrieving the most relevant chunks before generating an answer.
See rag/README.md for setup and usage. Test questions and answers are saved in rag/test_results.txt.
A content-based recommendation engine using Sentence Transformers and cosine similarity, with two intents: book and product. Detects which intent a user's message falls under, then recommends the closest-matching items from books.csv / products.csv.
Wrapped in a Flask API (api.py) so it can be called over HTTP — this is what the n8n workflow and CampusCart's frontend talk to.
See recommender/README.md for details. Test results are saved in recommender/test_results.txt.
Three automations are exported as workflow JSON files in this folder.Supporting screenshots are available in the n8n/screenshots/ folder:
- Recommendation API workflow — Webhook → HTTP Request → Respond to Webhook. Connects CampusCart's AI Assistant chat to the Flask recommender API.
- Welcome email automation — Webhook → Send Email. Sends a personalized welcome email when a form is submitted.
- Daily book recommendation — Schedule Trigger → picks a random book → posts it automatically.
CampusCart (frontend)
↓
n8n Webhook (Automation 1: Recommendation API)
↓
Flask API (recommender/api.py)
↓
Recommendation Engine (recommender/recommender.py)
↓
Response back through n8n → displayed in CampusCart's AI Assistant chat
- Set up a virtual environment and install dependencies for
rag/andrecommender/(see their individual READMEs). - Start the Flask API:
python recommender/api.py - Start n8n:
npx n8n(orn8n start), then activate the imported workflows. - Open
frontend/index.html(e.g. via a local server like VS Code's Live Server) to use CampusCart's AI Assistant.
- API keys are kept in
.envfiles (not committed) — see.gitignore. - The
rag/andrecommender/systems are independent of each other; the recommender is the one wired into CampusCart.