💡 Inspiration
The idea for AverageTopper struck me right after I appeared for my CUET exams. I realized a massive gap in the ed-tech space: while study materials are everywhere, students lack an affordable, high-quality testing interface that actually analyzes their performance. Most students just do "blind practice." I wanted to build a platform that provides a real exam-like interface and data-driven insights—even for a nominal fee like ₹5span_5span_5—so that every student can identify their weak spots and improve systematically.
⚙️ What it does
AverageTopper is a fully functional, dynamic ed-tech ecosystem built for competitive exams like CUETspan_6span_6. It replaces static study apps with a deeply personalized testing environment.
- 100% Dynamic UI & Banners: There are no hardcoded screens. Everything, from the "SAKSHAM BATCH" promotional banners to the test cards, is fetched dynamically from the backendspan_7span_7. Users can purchase premium access via a seamlessly integrated "Buy Now" buttonspan_8span_8.
- Real Exam Simulation: The testing interface precisely mimics real competitive exams. It features a live countdown timer (e.g., 45 Mins), a +5/-1 marking schemespan_9span_9, and a fully functional Question Palette allowing users to navigate, review, and "Save & Next" their answersspan_10span_10.
- Deep Analytics Engine: Submitting a test generates an instant, detailed Scorecardspan_11span_11. The app calculates Accuracy and Score Trendsspan_12span_12. More importantly, it categorizes performance into "Strongest Topics", "Weakest Topics", and "Unattempted Topics" (e.g., pinpointing weaknesses in "Electric Potential due to a Dipole")span_13span_13.
- Error Book (Saved Questions): Students can bookmark difficult questions (like "Temperature Dependence of Resistivity") directly into their "Saved Questions" vault for targeted last-minute revision along with detailed explanationsspan_14span_14.
- Customizable User Profiles: A fully integrated profile section where users can update their Full Name, Target Exam, and Emailspan_15span_15. It even includes native gallery integration, allowing users to select and upload profile pictures directly from their device's collectionsspan_16span_16.
🛠️ How I built it
I architected and coded this entire full-stack application exclusively on a smartphone using AI assistance.
- Frontend: Built natively with Kotlin and Jetpack Compose for a highly reactive and smooth Android UI.
- Backend & Database Engineering: Powered by Supabase. I didn't just use basic tables; I used AI to write complex SQL commands to dynamically generate relational tables for questions, topics, and user states.
- Storage Optimization: To handle thousands of questions and user analytics without bloating the database, I designed a highly optimized schema. Instead of saving redundant data, the app intelligently stores question references and user states in minimal space, fetching heavy assets (like images) via URLs.
- Security: Implemented Supabase Auth (OTP login) and strict Row Level Security (RLS) to ensure user data remains completely isolated and safe.
🚧 Challenges I ran into
Building a production-ready system on a phone meant fighting through dozens of hours of debugging:
- CI/CD Pipeline Nightmares: Setting up GitHub Actions to automatically build the APK on the cloud failed multiple times due to
gradlewexecution permissions and environment variable issues. I had to completely restructure the YAML workflow to make it fully automated. - Session Persistence: A critical bug caused users to get logged out when clearing the app from RAM. I spent hours diving into Supabase Auth states to implement robust local storage caching, ensuring a persistent and seamless login experience.
- Complex State Management: Rendering the "Detailed Topic Masteryspan_17"span_17 required fetching and calculating arrays of user responses against correct answers in real-time without crashing the Jetpack Compose UI.
🏆 Accomplishments that I'm proud of
I am incredibly proud of successfully executing an end-to-end software lifecycle solo. Creating an app that handles real-time exam logic, dynamic backend fetching, automated CI/CD cloud builds, and native gallery accessspan_18span_18—all from a mobile phone—proves that hardware limitations cannot stop innovation.
📚 What I learned
I gained deep, practical knowledge in designing optimized SQL databases, handling asynchronous API calls, managing complex UI states in Jetpack Compose, and deploying automated CI/CD pipelines via GitHub Actions.
🚀 What's next for AverageTopper
The next step is to introduce an AI-driven "Smart Mentor" feature that automatically suggests specific textbook chapters to read based on the "Weakest Topics" data in the scorecardspan_19span_19, and to scale the web ecosystem.
🧪 Testing Instructions for Judges (Important) To evaluate the app, please do not use your real mobile number as the production SMS gateway is currently restricted to save API costs. Please use the following Test Credentials to bypass the login screen instantly.
Test Mobile Number: +91 0000000000 Test OTP: 123456
Entering these credentials will successfully authenticate you and route you directly to the Main Dashboard.
Built With
- android
- github-actions
- jetpack
- kotlin
- postgresql
- supabase