Inspiration

Students often receive long assignment briefs with deadlines, deliverables, technical requirements, optional tasks, and submission rules. Understanding the brief is one problem, but figuring out what to do first and whether everything can realistically fit into the available time is another.

I built CourseFlow to bridge that gap.

What it does

CourseFlow turns a coursework brief into a workload-aware execution plan.

A student uploads a PDF assignment brief, and CourseFlow uses Gemini to extract:

  • deadlines
  • deliverables
  • mandatory requirements
  • optional work
  • ambiguities
  • actionable tasks
  • optimistic, expected, and pessimistic workload estimates

Important extracted information is linked back to the original PDF pages so students can verify the AI output.

The student then enters the time they actually have available. CourseFlow compares that availability with the estimated workload, evaluates feasibility, and creates a schedule.

If there is not enough time, it marks the plan as at risk and highlights unfinished work. If the student's availability changes, the plan can be recalculated around the new constraints.

How I built it

CourseFlow uses Google Gemini for understanding unstructured coursework briefs.

The backend is built with TypeScript, Node.js, and Express. PDF files are processed into page-aware text before being analyzed by Gemini.

The AI output is validated before being passed to a deterministic planner. The planner handles workload calculations, task dependencies, required versus optional work, feasibility, and scheduling.

A replanning system updates the schedule when availability changes, and Cloud Firestore is used to persist plan creation and replanning events.

I deployed the application as a working web app on Render.

Challenges I ran into

One of the biggest challenges was making AI-generated results trustworthy enough to use for planning.

Gemini could understand the coursework well, but source references still needed to be validated against the pages that were actually uploaded. I therefore added evidence validation and fallback handling instead of blindly accepting generated references.

Another challenge was separating AI reasoning from scheduling logic. I decided that Gemini should understand the assignment, while deterministic code should control the actual schedule. This made feasibility and replanning behavior much more predictable and testable.

Accomplishments that I'm proud of

I built a complete flow from PDF upload to a usable execution plan.

CourseFlow can take a real multi-page assignment brief, extract grounded requirements, estimate its workload, compare that workload against a student's availability, detect when a schedule is unrealistic, and adapt when that availability changes.

I also successfully integrated Gemini and Cloud Firestore into the production workflow.

What I learned

The biggest lesson was that an AI agent becomes much more useful when flexible language understanding is combined with deterministic systems for decisions that need predictable behavior.

I also learned how important grounding and source validation are when AI output is being used to make real planning decisions.

What's next for CourseFlow

Future versions could support multiple simultaneous courses, recurring weekly availability, calendar integration, progress tracking, and automatic replanning as tasks are completed or deadlines change.

Share this project:

Updates

Submission history