Project Info
This project did not submit a demo video on Devpost.
Inspiration
It all started when our friends asked us a simple question: "How does ChatGPT work?" While we tried to explain it, we realized how difficult it can be to convey something complex to someone with limited experience in a field. And as college students, we've all conducted research before, and see many of our peers going into research. But from our own experience, we've seen how papers use complex jargon and technical concepts that make it difficult to understand, especially when most students lack the required experience. Therefore, we propose scholora.ai—a tool that can explain these complex topics as if we were talking to an elementary schooler. Using visual diagrams generated by the Manim Library and a Voice Agent for real-time conversations, students can understand research papers in a fun, engaging way.
What it does
First up, we have the Prerequisite Learner. Ever opened a research paper and realized you need to understand five other concepts first? Our Prerequisite Learner has got your back. It provides curated YouTube links that cover the basics you need before diving into the methods of the paper. Think of it as your guided roadmap to make sure you're ready before the real journey begins. Next, there's the Knowledge Graph. Research papers don’t exist in isolation—they build upon each other in a web of ideas. Our Knowledge Graph shows you which papers influenced the current one, giving you more context and a deeper understanding of how the field evolved. It also suggests papers that reference the one you're reading, opening doors for further exploration. Understanding complex ideas is much easier when you can visualize them. That’s why we’ve included Manim animations that break down the key concepts. Instead of struggling through dense equations, watch as the theory comes alive in engaging, step-by-step visualizations. To keep you on track and ensure you're really grasping the content, we've added a Quiz feature. After each section of the paper, you'll be prompted with questions to test your understanding before moving on. It’s like having a friendly checkpoint that makes sure the journey isn’t just about moving forward, but also truly comprehending. And finally, our Voicebot is here to make learning conversational. Got a question about the paper? Just ask the Voicebot, and it'll give you an easy-to-understand summary. No more struggling with jargon or feeling stuck—the Voicebot turns those confusing sections into a quick, friendly explanation.
How we built it
For the frontend, we utilized Next.js and React to craft a responsive, dynamic user interface. We leaned on Tailwind for streamlined, modern styling, and used a blend of CSS, HTML, and JavaScript to piece together the UI layout in a way that is not only functional but visually engaging. The goal was to ensure users had a seamless, enjoyable experience navigating the platform. On the backend, things got even more exciting. We integrated Google Gemini's API to handle paper summarization and provide curated YouTube links for prerequisite learning. This helped make sure users could understand the key concepts before diving in too deep. We leveraged Chroma's API for a powerful semantic search. By analyzing papers in similar categories on arXiv, it identifies both the foundational papers that influenced the current one, as well as subsequent work that was influenced by it. This provided the backbone for our Knowledge Graph feature, allowing users to explore the interconnected world of academic research. To bring visualizations to life, we used the Hyperbolic API paired with Llama 3.1 to generate Manim code that breaks down key concepts in the paper. This approach allows us to transform theoretical ideas into animations that are easier to grasp and far more engaging. For the interactive voicebot, we used Vapi.ai’s API alongside Groq's Llama 3.1 405b-reasoning as the backend model, with Cartesia for voice synthesis. This allowed users to get summaries about a section, ask questions, and receive easy-to-understand answers—all through a conversational interface. To enhance user control, we also implemented Flask to connect a simple "start" and "stop" button for activating and deactivating the Vapi.ai voicebot.
Challenges we ran into
We ran into challenges with generating the Manim code, as we had to make the Manim code generate diagrams for a large variety of concepts. We eventually solved this through using the Hyperbolic API to generate Manim Code based on a scene description.
Accomplishments we're proud of
We're proud of integrating the Vapi API, as users can communicate directly with the voice agent. We're also happy that we could create a visual knowledge graph that allows users to see the history and related works of the paper.
What we learned
We learned a lot about integrating LLMs into full-stack web applications, and styling our web app using Tailwind.js.
What's next
for scholora.ai We hope to add a slider that varies responses based on the user's skill level.
This repository has no readme, or GitHub could not be reached.
Analysis
View
Metric
- 6
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FlaskIn code
- JavaScriptIn code
- Next.jsIn code
- OpenAIIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- Google GeminiClaimed
- HTMLClaimed
8 of 10 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
35 KB
Source files
13
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
aryamankukal/CalHacks
32 files · 3.6 MB · @ 490bad3
Structure
Interface
7 files · 22%Screens, components and styles rendered to the user.
Application logic
5 files · 16%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript58%
- Python33%
- CSS5%
- Markdown4%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm · 17- @radix-ui/react-icons
- @radix-ui/react-select
- @radix-ui/react-slider
- axios
- class-variance-authority
- clsx
- framer-motion
- lucide-react
- next
- react
- react-dom
- tailwind-merge
- tailwindcss-animate
- +4 more
requirements.txt
pypi · 14- black
- elevenlabs
- flake8
- Flask
- Flask-CORS
- numpy
- openai
- pyaudio
- pydub
- pytest
- python-dotenv
- scipy
- sounddevice
- SpeechRecognition
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
PDF upload and paper search UIVerified
Users upload a research paper PDF or search/select one from a database, with a file preview
Claimed on Devposthigh confidencefrontend/src/app/components/comb.js:210— FileUploadPage implements a working file input (handleFileChange), a hardcoded paper search/filter list (paperDatabase, handleSearch), paper selection, and an embed-based PDF preview
Knowledge Graph of related/influential papers (arXiv, before/after)Code-supported
Shows papers that influenced the current paper and papers that cite it, using Chroma semantic search over arXiv
Claimed on Devpostmedium confidenceAI Backend/chroma.py:19— Creates 'before_papers'/'after_papers' Chroma collections, fetches arXiv entries by category/date, embeds them, and queries top-3 similar papers before/after the target paper's publish dateAI Backend/chroma.py:80— Runs only as a standalone CLI script (main() reads input() from terminal); no Flask/API route or frontend UI component renders this data as a graph
Prerequisite Learner (curated YouTube links for background concepts)Code-supported
Provides curated YouTube links covering basics needed before the paper, extracted from the PDF's key sections
Claimed on Devpostmedium confidencebackend/prereq_search.py:22— extract_keywords_from_pdf pulls Methods/Introduction/Conclusion text via PyPDF2 and spacy/TF-IDF, then searchVideoForKeyword scrapes YouTube search results for each keyword and returns embed linksbackend/prereq_search.py:85— Script is a Colab notebook export run against a hardcoded local pdf_path, not wired to the Next.js frontend or any API route
Progress/animation page after upload with video walkthroughCode-supported
After processing, users see a step-by-step visual explanation with a progress bar
Claimed on Devpostmedium confidencefrontend/src/app/components/comb.js:145— ProgressPage renders a hardcoded static video file (NeuralNetworkScene...mov) and a 5-chunk progress bar with hardcoded title 'Attention is All You Need'; not dynamically generated per paper
Quiz feature after each sectionCode-supported
Users are quizzed with questions after each section to check comprehension before moving on
Claimed on Devpostmedium confidencefrontend/src/app/components/comb.js:179— A single hardcoded question ('Attention is All You Need' self-attention) with a hardcoded correct-answer check (handleKeyPress, line 59-68); not generated per-section or per-paper, so only a static demo, not a real quiz system
Voicebot (Vapi.ai voice agent for conversational Q&A)Code-supported
A voice agent (Vapi.ai + Groq Llama 3.1 405b + Cartesia) lets users ask questions and get spoken summaries, with Flask start/stop control
Claimed on Devpostmedium confidenceAI Backend/vapi.py:7— Defines a Vapi assistant with groq/llama-3.1-405b-reasoning model and cartesia voice, and exposes Flask routes /api/start-voicebot and /api/stop-voicebotAI Backend/vapi.py:27— No frontend code calls these endpoints (no fetch/axios reference to port 5001 or these routes found anywhere in frontend/src), so the voicebot backend exists but is not wired into the UI
Gemini-powered paper summarization and prerequisite curationClaimed only
Google Gemini API handles paper summarization and provides curated YouTube links for prerequisite learning
Claimed on Devposthigh confidenceManim-generated animations explaining paper conceptsClaimed only
Uses Hyperbolic API with Llama 3.1 to generate Manim code that visualizes key concepts from the paper
Claimed on Devposthigh confidenceSkill-level slider for adjusting explanation complexityClaimed only
Roadmap item: a slider to vary response depth based on user skill level
Claimed on Devposthigh confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.