ScholarSwipe - Project Overview
Inspiration
The inspiration for ScholarSwipe came from a common frustration: academic research can be overwhelming. Students and researchers often spend hours scrolling through databases, reading abstracts, and trying to determine which papers are actually relevant to their work. We wondered: what if finding research papers felt as intuitive and engaging as swiping through content on social media?
We wanted to make the research discovery process more interactive and less time-consuming. The gamification of paper selection—accepting or rejecting papers with a simple swipe—transforms what is typically a tedious task into something more engaging and enjoyable.
How We Built It
ScholarSwipe is built with a modern full-stack architecture:
Backend:
- FastAPI for the REST API server
- Perplexity Sonar API for intelligent paper search and summarization
- Python with async/await for efficient request handling
Frontend:
- HTML/CSS/JavaScript vanilla stack (no framework bloat)
- Dark-themed UI with gradient accents and smooth animations
- Responsive design that works on desktop and mobile
- Drag-and-drop swipe gestures with keyboard shortcuts (arrow keys)
Key Features:
- Search academic papers by query
- AI-generated summaries with key findings, methodology, and limitations
- Relevance and authenticity scoring for each paper
- Swipe to accept/reject papers
- Export results as CSV
- Generate Harvard-format bibliography
- Create overall literature review summaries
What We Learned
Technical Insights
API Integration Complexity: Integrating with the Perplexity API taught us the importance of robust error handling. API responses aren't always structured predictably, so we built fallback mechanisms for title extraction from URLs.
State Management in Vanilla JavaScript: We avoided frameworks but still needed clean state management. Using a simple state object proved sufficient and kept the codebase lightweight.
Drag Detection vs. Click Detection: Distinguishing between accidental clicks and intentional drags required careful threshold tuning. We found that a 150-pixel swipe threshold works well for most users.
Web Scraping Challenges: Getting accurate paper titles from URLs was harder than expected. Different academic sites structure their pages differently, so we implemented multiple extraction strategies (meta tags, title tags, URL parsing) with graceful fallbacks.
Design Decisions
- Vanilla JavaScript: Chose not to use a framework to keep the project lightweight and reduce dependencies
- Dark Theme: Reduces eye strain during long research sessions
- Harvard Format Bibliography: Selected because it's widely accepted in academic institutions
- Fixed Button Positioning: Initially challenging to get right, but essential for usability while keeping the card content responsive
Challenges We Faced
1. Title Extraction
The biggest challenge was extracting meaningful paper titles. Many sources returned generic titles or just URLs. Solution: We implemented a multi-layered approach using BeautifulSoup to check meta tags, then the HTML title tag, then the first h1, and finally falling back to intelligent URL parsing.
2. Card Scrolling vs. Content Overflow
Initially, cards were fixed height with scrollable overflow, but this created a clunky UX. Users expected to see all content. Solution: Made cards dynamically height-sized and centered the action buttons in the remaining viewport space.
3. Swipe Detection Sensitivity
Too sensitive and clicking would accidentally swipe. Too insensitive and actual swipes wouldn't register. Solution: Implemented a 150-pixel threshold with visual feedback during dragging to help users understand they're performing a swipe gesture.
4. API Rate Limiting
Perplexity API has rate limits, and generating summaries for multiple papers quickly could hit them. Solution: Added loading states and clear user feedback about what's happening in the background.
5. Cross-Origin Issues
Frontend-backend communication required proper CORS configuration. Solution: Enabled all origins for the hackathon (would be more restrictive in production).
Future Improvements
- Add user authentication and save papers to a database
- Implement different bibliography formats (APA, MLA, Chicago, IEEE)
- Add paper filtering by date, citation count, or source
- Collaborative research features (share paper collections)
- Integration with reference managers like Zotero or Mendeley
- Advanced search filters (year, author, publication type)
- Machine learning to personalize paper recommendations
Conclusion
ScholarSwipe demonstrates that thoughtful UI/UX can make academic research more accessible. By combining modern APIs with intuitive interaction patterns, we created a tool that respects users' time while making discovery engaging.
Built With
- css
- fastapi
- html
- javascript
- perplexityai
- python
Log in or sign up for Devpost to join the conversation.