Skip to content

Full-stack web app that enhances the Google Gemini LLM experience. Gone are the days of querying for important information and forgetting the answers hours later. With Gem Learn, flashcards can be automatically created based on the most recent query and stored in sets to be learned and most importantly - reviewed and remembered later.

Notifications You must be signed in to change notification settings

EddieTGH/gem-learner

Repository files navigation

What is Gem Learn?

Gem Learn is a tool that enhances the Google Gemini experience. Gone are the days of querying for important information and forgetting the answers hours later. With Gem Learn, flashcards can be automatically created based on the most recent query and stored in sets to be learned and most importantly - reviewed and remembered later. We also built a Pitt-specific career help chatbot trained and fine-tuned on Pitt CSC’s public resources on improving your resume, preparing for interviews, and landing your first job!

What it does

Gem Learn can be used just like Gemini (with chat history and contextual memory), but with the added functionality of being able to save query and response pairs in a simple flash card format! We noticed that the responses from Gemini are usually pretty long, so we have a custom prompt engineering pipeline that tailors the response length to be perfect for flashcards. The user can also edit the flashcard before saving it to the database, allowing for flexibility in card creation. Once the flashcards are in the database, they can be managed by placing them in user-created sets, modifying, or deleting them. We also included an analytics panel to look at categorical trends in queries to see what you tend to search for most, and a Pitt-specific career help chatbot built with retrieval augmented generation (RAG) and semantic retrieval for this busy recruiting season!

How we built it

We built Gem Learn using React for our frontend, Supabase for the database, a Flask server for RAG, and the Google Gemini API. The chat tab is used to converse with Gemini just like in the actual app, the flashcards tab can be used to study your personalized flashcards, and the analytics tab can be accessed to view your chat trends. The career chatbot was built in the Python flask server backend utilizing retrieval augmentation generation (RAG), extracting data from various Pitt websites, creating vector embeddings, performing semantic retrieval, and wrapping responses with Gemini to return an overall more contextually relevant response to Pitt students' career prep queries.

Awards

SteelHacks XI 2025 Hackathon Winner: Best Pitt Inspired Demo powered by Gemini API

Team

Edmond Niu - [email protected] Krishna Katakota - [email protected] Rahul Anantuni - [email protected] Eric Wang - [email protected]

Video Demo

Gem.Learn.-.SteelsHacks.2024.mp4

Pictures

Gemini Chat Page

Gemini Chat Page

Add Flashcard

Add Flashcard

Edit Flashcard

Edit Flashcard

Studying a Set

Studying a Flashcard Set

Career Prep ChatBot

Retrieval Augmented Generation (RAG) Career Chatbot

Study Sets

Flashcard Sets

Analyze Trends

Analyze Trends

How to use it

Unfortunately, because of Supabase authorization restrictions, in order to use Gem Learn, Supabase has to be set up in the same format as ours. The database schema is shown below.

Database Schema

Once a supabase is set up as follows, a .env file has to be setup with a REACT_APP_GEMINI_API_KEY variable with a Gemini API key and a REACT_APP_SUPABASE_API_KEY variable with a supabase api key. A service_account_key.json must be setup in the flask-backend folder Link. After this, the flask-baskend should be run by using

pip install -U google-ai-generativelanguage google-auth-oauthlib google-labs-html-chunker
python app.py

Some other pip installs might be necessary. Once the flask-backend is running, open another terminal and run

npm install
npm start

to run Gem Learn! There's functionality to query Gemini, create flashcards, look at analytics, and use the Pitt career help chatbot!

Git Source Control Graph

Gem Learn Git Graph

Devpost

Devpost

Demo

Youtube

About

Full-stack web app that enhances the Google Gemini LLM experience. Gone are the days of querying for important information and forgetting the answers hours later. With Gem Learn, flashcards can be automatically created based on the most recent query and stored in sets to be learned and most importantly - reviewed and remembered later.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •