Inspiration

We have all experienced the stress of trying to process vast amounts of knowledge from lectures, textbooks, and articles as students and lifelong learners. Making study materials by hand, such as producing flashcards, creating practice tests, and summarizing important topics, is a very time-consuming and difficult task. We were motivated to create a solution that automates this procedure so that students can avoid the busywork and concentrate on what really counts—learning and mastering the subject. We had an idea for a clever study partner that could quickly transform unstructured notes into useful, interesting teaching tools.

What it does

NoteWise AI is an intelligent study platform designed to supercharge the learning process. Users can either paste their notes directly or upload a document (PDF, DOCX, TXT). With a single click, our application leverages the power of Generative AI to:

Generate Key Point Summaries: It distills dense text into a concise, bulleted list of the most critical information. Create Interactive Flashcards: It produces a set of digital flashcards, each with a question, an answer, and a relevant, AI-selected image to create strong visual associations for better memory retention. Build a Challenging Quiz: It constructs a multiple-choice quiz based on the notes, complete with instant scoring and a review mode to help users test their knowledge and pinpoint areas for improvement.

How we built it

NoteWise AI is built on a modern, robust, and scalable tech stack:

Frontend: We used Next.js with the App Router and React with TypeScript for a type-safe, performant, and server-centric user interface. Styling: The UI was crafted with Tailwind CSS and ShadCN UI, creating a clean, responsive, and aesthetically pleasing experience. Generative AI: The core intelligence is powered by Google's Gemini models. We used Genkit, an open-source AI framework, to orchestrate the entire generative workflow.

A key part of our architecture is a Next.js Server Action that acts as a central orchestrator. When a user submits their notes, this action triggers three parallel calls to our Genkit flows: one for summarization, one for flashcard generation, and one for the quiz. We designed specific Zod schemas for the flashcard and quiz outputs, which Genkit uses to instruct the Gemini model to return perfectly structured JSON every time. This approach proved to be highly efficient and reliable. For file uploads, we added a Genkit flow that uses Gemini's multimodal capabilities to extract text directly from documents before passing it to the other generative flows.

Challenges we ran into

One of the biggest challenges was ensuring the AI consistently returned structured, usable data, especially for the quizzes and flashcards. Early on, the model would occasionally produce malformed JSON. We solved this by leveraging Genkit's schema-driven output feature. By defining our desired data structure with Zod schemas, we could guide the Gemini model to generate reliable, parseable JSON, which was a game-changer for the stability of our app. Another challenge was managing the user experience during AI generation. Since creating a summary, flashcards, and a quiz takes time, we didn't want the user staring at a loading screen for too long. We addressed this by structuring our backend to run all three generation tasks in parallel using Promise.all within our server action. This significantly reduced the total wait time and made the app feel much more responsive.

Accomplishments that we're proud of

We are incredibly proud of creating a seamless, end-to-end experience that goes from raw user notes to a full suite of interactive study aids in a matter of seconds. Implementing the parallel AI generation in a single server action was a major win for performance. Furthermore, we are proud of the interactive flashcards, which not only present information but also enhance it with AI-generated image queries, making for a richer, more effective learning tool. Building this with the latest Next.js features and the powerful Genkit framework feels like a true accomplishment.

What we learned

This project was a deep dive into the world of applied Generative AI. We learned how to effectively prompt large language models to get structured, high-quality output. Working with Genkit taught us the value of an orchestration framework for building complex AI flows; its ability to integrate with Zod schemas for input and output validation was invaluable. We also gained significant experience in architecting modern web applications with Next.js, particularly the power of Server Actions for simplifying client-server communication.

What's next for NoteWise AI

The journey doesn't stop here! We have many ideas for the future:

Personalized Learning Paths: Track user quiz performance over time to identify weak spots and automatically generate focused study sessions. Deeper Document Analysis: Incorporate support for more complex documents, like multi-column PDFs and documents with charts or tables. Collaborative Studying: Allow users to share their generated study sets with friends or classmates. Spaced Repetition System (SRS): Integrate an SRS algorithm for flashcards to optimize long-term memory retention.

Built With

Share this project:

Updates