Live Private Repository Full-Stack

Scholarle

A Google Scholar query builder. Compose structured boolean queries using a visual block interface — choose a field, enter a term, set an operator, toggle exact match — and Scholarle's Query Translation Module assembles the precise Google Scholar URL, including journal ISSN filtering, year range, and parenthetical operator grouping. One click opens the results directly in Google Scholar.

Next.js 15 TypeScript React 19 Tailwind CSS Radix UI
View Live Project GitHub ← Back to Projects
Scholarle query builder screenshot

Project Overview

Scholarle is a Google Scholar query builder. It doesn't have its own search index — it constructs the Google Scholar URL for you and opens the results in a new tab. The value is entirely in the query construction: Google Scholar supports a rich set of URL parameters and field operators that its own interface doesn't fully expose, and Scholarle gives researchers a structured way to use all of them.

The interface is block-based. Each query block represents one search condition — a field, a term, a boolean operator, and an optional exact-match toggle. Blocks chain together into groups that become parenthetical expressions in the final query. A sidebar handles the filters that sit outside the main query: year range, journal selection by ISSN, journal rating, and field of research.

The translation from UI state to Google Scholar URL is handled by a dedicated Query Translation Module (QTM) in lib/qtm.ts. It validates blocks, synthesises field operators, resolves operator chains into parenthetical groups, appends ISSN expressions, and builds the final URL — warning if it exceeds Google Scholar's 2048-character limit.

Active Search Fields

Each block targets one of the following fields, which map directly to Google Scholar URL operators:

  • all_fields — searches across all fields, no explicit GS operator added
  • article_title → generates intitle:
  • author → generates author:
  • abstract → generates intext:
  • site_search → generates site:
  • filetype_search → generates filetype:

Tech Stack

  • Next.js 15 (App Router) with Turbopack for dev and build
  • TypeScript throughout — query blocks, journal types, QTM input/output, all typed
  • React 19 + Tailwind CSS for UI
  • Radix UI for accessible UI primitives (dropdowns, toggles, collapsibles)
  • Vercel Analytics for usage tracking
  • CSV-backed journal dataset in public/data/journals.csv, loaded and parsed at runtime via lib/journalLoader.ts
← Momentum Logistics
Next Case Study → Imelda Yayala