Inspiration
As a rising college freshman, I have often struggled to organize my study schedule and keep track of materials from different parts of a class. Lecture slides, homework assignments, discussion worksheets, transcripts, and exam information can quickly become scattered across multiple files.
When studying a specific topic, I would spend too much time searching for the right materials instead of actually learning. I created FlowState AI to solve a problem I personally expect to face in college: turning course materials into one organized, connected, and manageable study system.
What it does
FlowState AI transforms uploaded course materials into a personalized study plan.
Students upload searchable PDFs, text files, or lecture transcripts and enter their exam date and weekly availability. FlowState AI extracts and analyzes the content, identifies important topics, and creates prioritized daily study blocks.
Every block explains:
- What topic to study
- How long to study it
- Which lecture, discussion, or homework files support it
- Why the material is relevant
- What the student should complete next
FlowState AI also includes a drag-and-drop calendar, automatic missed-session rescheduling, source-linked search, coverage-gap detection, local flashcards, a focus timer, session notes, and an exam-readiness checklist.
Unlike a general chatbot, FlowState AI creates a persistent study workspace grounded in the student's actual course materials.
How I built it
I built FlowState AI as a Flask web application using Python, HTML, CSS, and JavaScript.
The backend uses pypdf to extract text from PDFs and SQLite to store courses, materials, study blocks, notes, flashcards, and schedule changes. A local text-analysis system identifies topics and keywords without requiring paid API credits. Gemini can optionally provide improved summaries, but the application remains functional without it.
The scheduling system uses a priority queue to rank study topics based on factors such as exam proximity, topic importance, available study time, and coverage gaps. Sets help compare material types and identify missing connections, while graph-like relationships connect topics to their supporting lectures, homework, discussions, and transcripts.
The frontend uses responsive CSS and JavaScript to provide an interactive calendar, expandable study blocks, persistent notes, flashcards, search, and focus tools.
Challenges I ran into
One major challenge was creating useful topic summaries without depending on paid AI services. I addressed this by developing a local analysis fallback so the core experience remains free and reliable.
Another challenge was connecting each recommendation to evidence from the uploaded files. It was important that the app did more than produce a generic schedule, so I designed every study block to preserve its relationship with the original course materials.
I also had to handle schedule changes. Students do not always complete every planned session, so I implemented missed-session rescheduling and drag-and-drop calendar updates while keeping the plan within the user's availability.
Finally, balancing a large number of features with a clean interface required several design iterations. Collapsible panels and expandable study blocks helped keep the application easy to navigate.
Accomplishments that we're proud of
I am proud that FlowState AI works without requiring paid API credits and still produces personalized, source-linked recommendations.
I are especially proud of:
- Building a priority-queue-based scheduling algorithm
- Connecting study blocks to their original course files
- Creating automatic missed-session rescheduling
- Detecting coverage gaps with set-based comparisons
- Building local flashcards with spaced review intervals
- Adding persistent study notes, checklists, and calendar changes
- Designing a polished interface around a real student problem
Most importantly, FlowState AI is something I would genuinely use as a college student.
What I learned
Building FlowState AI taught us how a full-stack application connects user input, backend processing, persistent data, algorithms, and interface design.
I gained experience with Python, Flask, SQLite, PDF extraction, API integration, responsive web design, and JavaScript interactions. I also learned how data structures such as priority queues, sets, and graph relationships can solve practical problems rather than existing only as classroom concepts.
The project also taught us the importance of graceful fallbacks, protecting API keys, validating uploaded files, and designing around the user's real workflow.
What's next for FlowState AI
Next, I want to add OCR support for scanned PDFs, user accounts, cloud synchronization, and integrations with learning-management systems such as Canvas.
I also want to support lecture audio and video transcription so students can connect what a professor said in class with their slides, assignments, and study schedule. Other future improvements include smarter mastery tracking, calendar integrations, collaborative study groups, notifications, and schedule adjustments based on quiz performance.
My long-term goal is to make FlowState AI a personal academic operating system that helps every student spend less time organizing and more time learning.
Log in or sign up for Devpost to join the conversation.