A React frontend for searching, filtering, and visualising a research paper database. Built to demonstrate component-based UI development, state management, and data visualisation in React — directly relevant to AlphaSights' frontend engineering stack.
- Full-text search across paper titles and authors
- Multi-dimensional filtering by topic, publication status, and impact level
- Sortable results by date, citation count, and title
- Live summary statistics updating dynamically with filters
- Bar chart visualisations showing papers and citations by topic
- Detail panel — click any row to expand full paper metadata
- Responsive layout — works on mobile and desktop
- React 18 with hooks (useState, useEffect, useCallback)
- Vite for fast development and bundling
- No external UI libraries — all components built from scratch
- CSS Grid and Flexbox layout
npm install
npm run devsrc/
├── App.jsx ← Root component, state management, filtering logic
├── App.css ← All styles
├── index.jsx ← React entry point
└── components/
├── SearchBar.jsx ← Controlled search input with clear button
├── FilterPanel.jsx ← Topic, status, impact, sort dropdowns
├── ResearchTable.jsx ← Sortable data table with detail panel
├── ResearchChart.jsx ← Bar charts: papers and citations by topic
└── StatsPanel.jsx ← Live summary statistics
The dashboard is currently seeded with local data. To connect to the Kotlin REST API backend:
Replace the SAMPLE_DATA constant in App.jsx with a fetch call:
useEffect(() => {
fetch('http://localhost:8080/api/research')
.then(res => res.json())
.then(data => setData(data));
}, []);See the companion repo research-api-kotlin for the backend.
Atrija Haldar LinkedIn MSc Engineering, Technology and Business Management — University of Leeds