Skip to content

SarahSohaib/ELARA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ELARA 🎯

ELARA – Explainable Language-Driven AI-Based Recommendation Assistant

Built using React + FastAPI + RAG (Retrieval-Augmented Generation) UI/UX by Priyanshi Β· Backend & Architecture by Sarah Β· Data by Adyasha


πŸš€ Quick Start (Frontend)

# Navigate to frontend
cd ui

# Install dependencies
npm install

# Start development server
npm run dev
# β†’ Opens at http://localhost:3000

# Build for production
npm run build

---S

πŸ“ Project Structure

ELARA/
β”œβ”€β”€ backend/              # FastAPI backend (RAG + APIs)
β”œβ”€β”€ ui/                  # React frontend
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ vite.config.js   # Proxy config (/api β†’ backend)
β”‚   β”œβ”€β”€ package.json
β”‚   └── src/
β”‚       β”œβ”€β”€ main.jsx
β”‚       β”œβ”€β”€ App.jsx
β”‚       └── api.js
β”œβ”€β”€ data/
β”‚   └── data.csv         # Dataset used for recommendations

πŸ”Œ System Architecture

User Input β†’ React UI β†’ API Call β†’ FastAPI Backend β†’ Data / RAG β†’ Response β†’ UI Render

πŸ” Frontend–Backend Integration

Development Mode

Vite proxy automatically routes:

/api β†’ http://localhost:8000

Production Mode

Update API calls in App.jsx:

fetch("https://your-backend.onrender.com/api/recommend")

πŸ“‘ API Contract

POST /api/recommend

Request:

{
  "query": "string"
}

Response:

{
  "recommendations": [
    {
      "id": 1,
      "title": "string",
      "type": "Movie",
      "year": 2020,
      "tags": ["string"],
      "score": 90,
      "explanation": "string"
    }
  ]
}

GET /api/health

{ "status": "ok" }

🎨 UI Features

Feature Status
Natural language query input βœ…
Mood / Genre / Era filters βœ…
RAG pipeline visualization βœ…
Recommendation cards with score βœ…
Expandable explanation panel βœ…
Responsive layout βœ…
Reset / new search flow βœ…

🧠 Core Capabilities

  • Context-aware recommendations using natural language queries
  • Explainable outputs powered by LLM logic
  • Data-driven filtering via dataset (data.csv)
  • Modular full-stack architecture
  • Designed for extensibility into full RAG pipeline

πŸ“Š Data Layer

  • Dataset stored in: data/data.csv

  • Used for:

    • Filtering and matching user queries
    • Generating recommendations
  • Prepared and cleaned before backend ingestion


πŸ“‹ Git Commit Strategy

feat(ui): add recommendation card with score ring
fix(ui): handle empty state when no results returned
style(ui): polish filters and layout
chore: add API integration layer
docs: update README

πŸ‘€ Team Roles

πŸ”Ή Sarah β€” Project Lead, Backend Engineer & Repository Owner

  • Defines overall system architecture
  • Implements RAG pipeline and LLM integration
  • Designs and develops backend APIs (FastAPI)
  • Handles recommendation and explanation logic
  • Implements embeddings, vector database, and retrieval logic
  • Performs retrieval tuning and evaluation
  • Manages GitHub repository (branching, structure, commits)
  • Leads system integration and ensures frontend-backend connectivity
  • Prepares architecture explanation and viva

πŸ‘‰ Owns: Backend + RAG + Retrieval + Logic + Integration


πŸ”Ή Adyasha β€” Data Engineer

  • Dataset sourcing and validation
  • Data cleaning and preprocessing
  • Data formatting and structuring for ingestion
  • Preparing datasets for embedding and backend usage
  • Maintaining dataset consistency and documentation

πŸ‘‰ Owns: Data Preparation Layer


πŸ”Ή Priyanshi β€” UI, UX & System Integration Engineer

  • Designs and implements user interface
  • Builds query input and recommendation display
  • Develops explanation UI
  • Handles frontend–backend API integration
  • Manages UX flow and usability
  • Implements error handling and empty states
  • Prepares demo-ready interface

πŸ‘‰ Owns: User Experience + Frontend + Integration Layer


🧠 Course Outcome Alignment

  • CO4: Implementation of advanced LLM + RAG system + VectorDB
  • CO1: Application of DevOps practices (Git, modular architecture)

πŸš€ Deployment Overview

Component Platform
Frontend GitHub Pages / Vercel
Backend Render / Railway
Data CSV / Vector DB

⚠️ Important Notes

  • GitHub Pages hosts only the frontend (static files)
  • Backend must be deployed separately
  • Replace all localhost API calls before deployment

🎯 Project Goal

ELARA is designed to move beyond traditional recommendation systems by providing:

  • Explainable recommendations (not black-box output)
  • Context-aware reasoning based on user input
  • Integration of retrieval + generation (RAG concept)
  • A clean, intuitive user interface

πŸ‘₯ Contribution Summary

Member Contribution
Sarah Backend, RAG pipeline, API, architecture
Adyasha Data preparation, dataset pipeline
Priyanshi UI, UX, frontend integration

πŸ”₯ Final Note

ELARA demonstrates a complete AI-powered full-stack system, combining:

  • React frontend
  • FastAPI backend
  • Data pipeline
  • Explainable recommendation logic

About

ELARA is an explainable, context-aware recommendation engine powered by Large Language Models and Retrieval-Augmented Generation (RAG). The system provides transparent recommendations using semantic retrieval and natural language reasoning.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors