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

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

Source: Dev.to

What I Built with Google Gemini ## What I Learned ## Google Gemini Feedback This is a submission for the Built with Google Gemini: Writing Challenge 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 their mandatory academic thresholds. Google Gemini played a massive, two-fold role in this project: The Architecture (Agentic AI): This project scaled 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. The 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. You can experience the live web app directly in your browser: Live Web App: Attendance Tracker Web Source Code: GitHub Repository (Only the Demo source code is available with the latest apk releases) Building a 15,000+ line production app taught me several critical lessons: Background Asynchronous Processing: Because parsing detail-heavy timetable PDFs via the Gemini API can take time, I had to learn how to run these complex tasks in the background. This ensures the UI doesn't freeze, allowing users to navigate the app while waiting for an in-app "Timetable Ready" notification. Defensive Engineering: AI isn't perfect. I learned to build a robust "Draft Review" step so users can verify and edit the AI's extracted timetable before committing it to the Firebase database. System Design: Implementing an offline-first architecture with Hive local caching and syncing it seamlessly with Firebase Firestore taught me how to handle complex data states across varying network conditions. 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 me weeks of boilerplate coding and UI tweaking. The Bad and The Ugly: When you let an AI agent loose on a 15,000-line codebase, you push context windows to their absolute limits. Occasionally, the IDE agent would lose the thread of the architecture, hallucinating variable names or forgetting how distant files interconnected. On the API side, relying heavily on Gemini 2.5 Flash for file parsing introduced the reality of rate limits. To prevent the app from breaking for users during high-traffic periods, I had to engineer a Multi-API Key Support system, allowing the app to rotate through different user-provided Gemini keys to ensure uninterrupted parsing. Additionally, highly non-standard timetable layouts occasionally confused the model, making the manual draft review step an absolute necessity. Overall, it's a powerhouse, but it requires strict guardrails in a production environment. Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse - The Architecture (Agentic AI): This project scaled 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. - The 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. - Background Asynchronous Processing: Because parsing detail-heavy timetable PDFs via the Gemini API can take time, I had to learn how to run these complex tasks in the background. This ensures the UI doesn't freeze, allowing users to navigate the app while waiting for an in-app "Timetable Ready" notification. - Defensive Engineering: AI isn't perfect. I learned to build a robust "Draft Review" step so users can verify and edit the AI's extracted timetable before committing it to the Firebase database. - System Design: Implementing an offline-first architecture with Hive local caching and syncing it seamlessly with Firebase Firestore taught me how to handle complex data states across varying network conditions.