Inspiration
Students usually know what they need to study, but deciding when to study everything is much harder. Assignments, exams, multiple courses, limited free time, and missed study sessions can quickly make a manually created plan outdated.
StudyFlow was inspired by the idea of building something beyond a normal to-do list. Instead of only showing deadlines, the goal was to create a system that can understand a student's workload, availability, and preferences and turn them into realistic study sessions.
We also wanted the schedule to adapt when things do not go according to plan. Missing one session should not make the entire study plan useless.
What it does
StudyFlow is a mobile study-planning application that helps students organize their academic workload and automatically create practical study schedules.
Students can:
- Manage courses and academic tasks
- Set deadlines, priorities, task types, and estimated study time
- Define their weekly study availability
- Configure preferred study hours, session duration, breaks, and weekend studying
- Automatically generate conflict-aware study sessions
- Track progress using a persistent study-session timer
- Monitor completed and remaining study minutes
- Recover missed study work by finding future available time
- Upload course materials such as PDF, DOCX, PPTX, and TXT files
- Use Google Gemini to analyze course material and turn important topics into actionable study tasks
- Access premium functionality through RevenueCat
One of the main ideas behind StudyFlow is separating AI understanding from schedule generation.
Gemini helps determine what may need to be studied, while StudyFlow's deterministic scheduling engine determines when that work can realistically fit.
How we built it
The mobile application was built using Flutter and Dart, while the backend was developed with Java and Spring Boot.
PostgreSQL is used to store users, courses, tasks, study sessions, availability, preferences, course materials, subscriptions, and other application data.
The backend uses technologies including:
- Spring Security
- JWT authentication
- JPA / Hibernate
- REST APIs
- PostgreSQL
- PDFBox
- Apache POI
The scheduling engine was divided into separate components responsible for task prioritization, time allocation, session generation, and conflict detection.
When a student generates a schedule, StudyFlow considers factors such as:
- Task priority
- Deadline urgency
- Remaining workload
- Weekly availability
- Preferred study hours
- Maximum session duration
- Break duration
- Weekend preferences
- Existing study sessions
For AI-assisted planning, StudyFlow extracts text from uploaded course materials and sends the relevant content to Google Gemini. Gemini identifies useful study topics, and those results are converted into real StudyFlow tasks that can then participate in the normal scheduling process.
We also integrated RevenueCat to manage StudyFlow Pro and premium feature access, along with Google AdMob for advertising support for eligible free users.
Challenges we ran into
One of the biggest challenges was building a scheduler that does more than place tasks into random empty time slots.
The scheduler needs to respect multiple constraints at the same time. A session must fit within the student's availability, avoid conflicts with existing sessions, respect breaks and preferred hours, and still allocate useful study time before a task's deadline.
Another major challenge was handling missed study sessions. A useful study planner should be able to recover when the student falls behind. StudyFlow therefore attempts to redistribute missed work into future valid time instead of simply marking the session as failed.
Timer persistence was another challenge. A study timer should not reset just because the user leaves the screen, so session timing and progress needed to be stored through the backend instead of relying only on a local Flutter countdown.
AI integration also presented an interesting problem. We did not want Gemini to simply return text that disappears after the request. Its output needed to become meaningful application data, so StudyFlow converts AI-generated recommendations into actual course tasks.
Finally, integrating Flutter, Spring Boot, PostgreSQL, authentication, AI, document processing, notifications, advertising, and RevenueCat into one connected workflow required careful handling of state and data consistency.
Accomplishments that we're proud of
We are especially proud that StudyFlow became more than a basic task-management application.
The core workflow connects:
Course → Task → Availability → Scheduling Engine → Study Session → Progress
StudyFlow also supports an AI-assisted workflow:
Course Material → Text Extraction → Gemini Analysis → Study Tasks → Scheduling Engine
The scheduling engine can create and persist study sessions while considering real constraints such as deadlines, workload, availability, breaks, and conflicts.
We are also proud of the persistent study timer and missed-session recovery system, because they make StudyFlow react to what actually happens during a student's day rather than assuming every original plan will be followed perfectly.
Another accomplishment was keeping AI and deterministic scheduling as separate systems. AI is used where understanding unstructured academic material is useful, while deterministic algorithms handle time constraints and scheduling rules.
What we learned
Building StudyFlow showed us that creating a useful scheduling application is much more complicated than displaying tasks on a calendar.
We learned how important it is to separate responsibilities across the system. AI is useful for understanding unstructured information, while deterministic algorithms are better for enforcing strict rules such as deadlines, availability, conflicts, and breaks.
We also gained practical experience with:
- Flutter and responsive mobile development
- Java and Spring Boot
- PostgreSQL and relational data modeling
- REST API design
- Authentication and authorization
- Scheduling algorithms
- Persistent timers and state
- Document processing
- Google Gemini integration
- RevenueCat subscriptions
- Google AdMob
- Notifications
- Frontend and backend testing
One of the most important lessons was that a feature is not complete simply because the code compiles. It needs to work as part of the complete user journey.
What's next for Study Flow
The next step is to continue improving StudyFlow into a more complete student companion.
Future improvements include:
- Longer and more flexible scheduling horizons
- More advanced study analytics
- Richer AI-assisted study features
- Improved reminders and notifications
- More flexible semester and course management
- Better Arabic and RTL support
- More complete dark-mode support
- Accessibility improvements
- Production deployment
- Testing with more students and collecting real feedback
Ultimately, the goal of StudyFlow is to help students continuously answer three important questions:
What should I study?
When should I study it?
What happens when my plan changes?
Log in or sign up for Devpost to join the conversation.