Scholar Quest is an intelligent research companion designed to help researchers, students, and academics discover relevant papers, understand complex research, and explore citation networks. Powered by AI and integrated with OpenAlex's vast academic database.
π Live Application: https://scholar-quest-three.vercel.app
- Search academic papers using natural language queries
- AI-powered relevance scoring for each result
- Integration with OpenAlex's 250M+ paper database
- Real-time caching for faster repeat searches
- Comprehensive paper summaries with key insights
- Reading difficulty assessment (Beginner/Intermediate/Advanced)
- Estimated reading time calculation
- Impact score evaluation
- Key contributions and methodology breakdown
- Interactive graph showing paper relationships
- Explore cited and citing papers visually
- Discover related research through connections
- Click nodes to explore connected papers
- Firebase authentication (email/password & anonymous)
- Bookmarking system for favorite papers
- Search history tracking
- User profile with account management
- Responsive design for all devices
- Loading overlays with blur effects
- Clean, professional interface
- Circular score visualizations
βββββββββββββββββββββββ
β React Frontend β
β (Vercel) β
β - Homepage β
β - Paper Discovery β
β - Paper Details β
β - Citation Graph β
β - About Page β
ββββββββββββ¬βββββββββββ
β
β HTTPS/CORS
β
ββββββββββββΌβββββββββββ
β Flask Backend β
β (Render.com) β
β - Paper Search β
β - AI Analysis β
β - Graph Building β
β - User Auth β
ββββββββββββ¬βββββββββββ
β
ββββββββ΄βββββββ
β β
βββββΌββββ ββββββΌβββββ
βOpenAlexβ β OpenAI β
β API β β API β
ββββββββββ βββββββββββ
- Framework: React 18.2.0
- Routing: React Router 7.9.3
- State Management: React Context API + Hooks
- Styling: Custom CSS with animations
- Visualization: D3.js / Vis.js for citation graphs
- Authentication: Firebase Auth
- Hosting: Vercel (Auto-deploy from GitHub)
- Framework: Flask (Python)
- AI: OpenAI GPT-4 for paper analysis
- Database: OpenAlex API integration
- Caching: In-memory cache for search results
- Authentication: Firebase Admin SDK
- Hosting: Render.com (2GB RAM, $7/month)
- OpenAlex: Academic paper database (250M+ papers)
- OpenAI: Natural language processing and analysis
- Firebase: Authentication and user management
- Node.js 18+ and npm
- Python 3.9+
- OpenAI API key
- Firebase project credentials
git clone https://github.com/Harsha072/scholar-quest.git
cd scholar-questcd flask-api
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r app/requirements.txt
# Set environment variables
export OPENAI_API_KEY="your-openai-api-key"
export FIREBASE_ADMIN_SDK_JSON='{"type":"service_account",...}'
# Run Flask server
python app/main.pyBackend will start at http://localhost:5000
cd react-frontend
# Install dependencies
npm install
# Create .env file
echo "REACT_APP_API_URL=http://localhost:5000" > .env
echo "REACT_APP_FIREBASE_API_KEY=your-firebase-api-key" >> .env
echo "REACT_APP_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com" >> .env
echo "REACT_APP_FIREBASE_PROJECT_ID=your-project-id" >> .env
# Start development server
npm startFrontend will start at http://localhost:3000
- Enter a research question in natural language
- Click "Search" or press Enter
- View loading overlay while papers are being discovered
- Redirected to Paper Discovery page with results
- View Results: See relevant papers with metadata
- Relevance Scores: AI-calculated relevance percentage
- View Details: Generate comprehensive AI analysis
- Build Graph: Visualize citation relationships
- Bookmark: Save papers for later (requires sign-in)
- Circular Scores: Relevance and Impact displayed visually
- AI Analysis: Brief and detailed summaries
- Key Contributions: Bullet-point highlights
- Methodology: Research approach overview
- Reading Difficulty: Beginner/Intermediate/Advanced
- Estimated Time: How long to read the paper
- Interactive Nodes: Click to explore connections
- Color Coding: Different colors for paper types
- Zoom & Pan: Navigate large graphs easily
- Cached Data: Fast loading on page refresh
- Sign Up: Create account with email/password
- Anonymous Mode: Browse without account
- Profile: View account info and last sign-in
- Sign Out: Secure logout
Base URL: https://scholar-quest-backend-v2.onrender.com
GET /api/healthPOST /api/discover-papers
Content-Type: application/json
{
"query": "machine learning in healthcare",
"max_results": 10
}POST /api/paper-details
Content-Type: application/json
{
"title": "Paper Title",
"authors": ["Author 1", "Author 2"],
"abstract": "Paper abstract...",
"openalex_work_id": "W1234567890"
}GET /api/paper-relationships/{paper_id}?max_connections=10pdf-summariser-microservice/
βββ flask-api/ # Backend (Python/Flask)
β βββ app/
β β βββ main.py # Main API routes
β β βββ rag_pipeline.py # AI analysis logic
β β βββ simple_paper_relationships.py # Graph building
β β βββ config.py # Configuration
β β βββ logger_config.py # Logging setup
β β βββ requirements.txt # Python dependencies
β βββ tests/ # Backend tests
β βββ Dockerfile
β
βββ react-frontend/ # Frontend (React)
β βββ public/
β β βββ index.html
β βββ src/
β β βββ components/
β β β βββ Header/ # Navigation header
β β β βββ Auth/ # Authentication components
β β β βββ PaperCard/ # Paper display cards
β β β βββ PaperDiscovery/ # Search results page
β β β βββ SimplePaperRelationships/ # Citation graph
β β βββ pages/
β β β βββ HomePage.js # Landing page
β β β βββ PaperDetails.js # Detailed analysis
β β β βββ AboutPage.js # About Scholar Quest
β β β βββ SimplePaperRelationshipsPage.js
β β βββ context/
β β β βββ AuthContext.js # Firebase auth context
β β βββ services/
β β β βββ api.js # API client
β β βββ App.js # Main app component
β β βββ index.js # React entry point
β βββ package.json
β βββ README.md
β
βββ docker-compose.yml # Local development
βββ docker-compose.prod.yml # Production config
βββ README.md # This file
Backend: Render.com
- Service:
scholar-quest-backend-v2 - URL: https://scholar-quest-backend-v2.onrender.com
- Plan: Starter (2GB RAM, $7/month)
- Auto-deploy from GitHub
feature/harshabranch
Frontend: Vercel
- Project:
scholar-quest-three - URL: https://scholar-quest-three.vercel.app
- Plan: Hobby (Free)
- Auto-deploy from GitHub
feature/harshabranch
Backend (Render)
OPENAI_API_KEY=sk-proj-...
FLASK_ENV=production
FLASK_DEBUG=False
CORS_ORIGINS=https://scholar-quest-three.vercel.app
FIREBASE_ADMIN_SDK_JSON={"type":"service_account",...}Frontend (Vercel)
REACT_APP_API_URL=https://scholar-quest-backend-v2.onrender.com
REACT_APP_FIREBASE_API_KEY=...
REACT_APP_FIREBASE_AUTH_DOMAIN=...
REACT_APP_FIREBASE_PROJECT_ID=...
REACT_APP_FIREBASE_STORAGE_BUCKET=...
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=...
REACT_APP_FIREBASE_APP_ID=...- Clean, modern design with purple gradient accents
- Responsive layout for mobile, tablet, and desktop
- Smooth animations and transitions
- Loading overlays with blur effects
- Circular score visualizations
- Email/password registration and login
- Anonymous browsing mode
- Firebase integration for secure auth
- User profile with metadata
- Session persistence
- Search results cached in localStorage
- Graph data cached for quick reload
- Session-based cache management
- Automatic cache expiration
- AI-powered relevance scoring
- Dynamic loading messages
- Error handling with user-friendly messages
- Compact search bar in results page
- Back navigation with state preservation
# Backend tests
cd flask-api
pytest tests/
# Frontend tests
cd react-frontend
npm test# Frontend build
cd react-frontend
npm run build
# Backend (uses Dockerfile)
cd flask-api
docker build -t scholar-quest-backend .# Python linting
flake8 flask-api/app/
# React linting
cd react-frontend
npm run lintThis project is licensed under the MIT License.