How I Built a 15,000+ Line Flutter App with Gemini to 'Hack' My University Attendance

Published: (February 25, 2026 at 01:55 PM EST)
3 min read
Source: Dev.to

Source: Dev.to

What I Built with Google Gemini

As an IT undergraduate balancing startup ambitions and a heavy coursework load, missing too many classes can lead to disastrous exam bans. To solve this, I built Attendance Tracker (code‑named “The 80%”). It’s a cross‑platform Flutter application designed to mathematically optimize university attendance using offline‑first storage and AI.

The app features a Danger Zone Planner that calculates the exact margin for absences across specific sessions (Lectures, Labs, Tutorials). This allows students to simulate granular scenarios and understand their attendance buffer, ensuring they never accidentally drop below mandatory academic thresholds.

Role of Google Gemini

  • Architecture (Agentic AI) – The project grew to over 15,000 lines of code. I used the Gemini 3 Pro (High) model inside the Antigravity IDE as an autonomous coding agent to help architect the offline‑first database (Hive), manage state (Provider), and handle complex UI animations.
  • Core Feature (API Integration) – The biggest friction point in attendance apps is manual data entry. I integrated the Gemini 2.5 Flash API to handle multimodal timetable extraction. Users simply upload their official university schedule as a PDF or image, and Gemini intelligently parses the unstructured data into a clean matrix of subjects, times, and session types.

Demo

You can experience the live web app directly in your browser:

Screenshots

LightMode Statistics Tab

DarkMode Settings

Module Details

What I Learned

Building a 15,000+ line production app taught me several critical lessons:

  • Background Asynchronous Processing – Parsing detail‑heavy timetable PDFs via the Gemini API can take time, so I learned to run these tasks in the background. This keeps the UI responsive and allows users to navigate the app while waiting for an in‑app “Timetable Ready” notification.
  • Defensive Engineering – AI isn’t perfect. I built a robust “Draft Review” step so users can verify and edit the AI‑extracted timetable before committing it to the Firebase database.
  • System Design – Implementing an offline‑first architecture with Hive local caching and seamless syncing with Firebase Firestore taught me how to handle complex data states across varying network conditions.

Google Gemini Feedback

The Good

  • The multimodal capabilities of gemini‑2.5‑flash are incredible. It flawlessly handled messy, poorly formatted university PDFs and images, turning unstructured visual data into a clean, usable dataset.
  • Using Gemini 3 Pro (High) as an agentic coding partner felt like having a senior engineer on call, saving weeks of boilerplate coding and UI tweaking.

The Bad and The Ugly

  • With a 15,000‑line codebase, the context window limits are constantly tested. Occasionally, the IDE agent lost the thread of the architecture, hallucinating variable names or forgetting how distant files interconnect.
  • Relying heavily on Gemini 2.5 Flash for file parsing introduced rate‑limit concerns. To keep the app functional during high‑traffic periods, I engineered a Multi‑API Key Support system that rotates through different user‑provided Gemini keys.
  • Highly non‑standard timetable layouts sometimes confused the model, making the manual draft review step essential. Overall, Gemini is a powerhouse, but it requires strict guardrails in a production environment.
0 views
Back to Blog

Related posts

Read more »

[Boost]

Profile !Vincent A. Cicirellohttps://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaw...