Inspiration We're university students. We know exactly what happens when you open your phone to check one notification before studying — forty-five minutes later you're watching a video about the migration patterns of arctic terns and your exam is in three days.
The problem isn't willpower. Social media platforms spend hundreds of millions of dollars per year engineering compulsive behavior. Students fighting that with a sticky note that says "study more" are bringing a Post-it to a gunfight.
But here's the thing: most of us already spend hours a day in games. We grind. We min-max. We check leaderboards obsessively. We stay up late because we're this close to the next rank. We wanted to build something that redirected that exact energy toward academics — not by tricking students, but by making the studying itself feel like the game.
The name? You're not just studying. You're getting cracked.
What it does GetCracked is a mobile academic engagement platform with three interlocking systems:
🗺️ The Progress Map Every course becomes a visual MMORPG map. Topics are zone nodes you unlock by studying them. Exams are boss encounters — rendered as enemies on a 3D Babylon.js map. When you defeat the boss (pass the exam), the node cracks open and a trophy spawns on the ruins.
A Readiness Score tracks how prepared you are for each upcoming exam. It's a weighted function across topics covered, time studied, and days remaining:
$$R = \sum_{i=1}^{n} w_i \cdot m_i \cdot e^{-\lambda \cdot d}$$
Where $w_i$ is the weight of topic $i$ for the exam, $m_i \in [0, 1]$ is the mastery score for that topic, $d$ is days until the exam, and $\lambda$ is a decay constant that ramps urgency as the exam approaches. When $R$ drops into the danger zone, escalating notifications fire.
⚔️ Study Mode (Focus + Deep) Focus Mode: timer-based session. If you leave the app, you hit a quiz checkpoint — one AI-generated multiple choice question drawn from your course material. Answer correctly → 5-minute break unlocked. Answer wrong → redirected back with your exam countdown front and center. Deep Mode: OS-level distraction blocking via iOS Screen Time API and Android's UsageStatsManager + Accessibility Service. No social media. No escape without answering a question first. 🏆 The Rank A social reputation score built from verified effort, not grades. XP is awarded server-side for attending class, completing study sessions, uploading resources that classmates download, contributing in study groups, and more. Rank tiers progress from Student → Grinder → Scholar → Veteran → Elite → Legend, with a streak multiplier that doubles XP after 7 consecutive study days:
$$XP_{\text{effective}} = XP_{\text{base}} \times \begin{cases} 2 & \text{if streak} \geq 7 \ 1 & \text{otherwise} \end{cases}$$
Leaderboards are scoped to your course, your campus, and your friend groups — so you're always competing against peers at a similar level, not a raw global list.
📚 The Commons A course-specific knowledge layer. Upload lecture notes, slides, and past exam topics. The AI generates a preview summary for any uploaded document. Uploaders earn XP per download. Study groups form here — join one, attend it, and everyone earns XP.
🤖 AI Assignment Breakdown Enter an assignment title, description, and due date. Claude decomposes it into a day-by-day sub-task plan with estimated durations, suggested start dates, and daily micro-goals synced to Google Tasks / Apple Reminders. Completing each micro-task awards XP.
How we built it Layer Technology Mobile App React Native + Expo (SDK 51+) Navigation Expo Router (file-based) 3D Map Babylon.js (@babylonjs/react-native) Styling NativeWind (Tailwind for React Native) Backend / DB Supabase (PostgreSQL + Auth + Storage) Edge Functions Supabase Edge Functions (Deno runtime) AI Anthropic Claude API Notifications Expo Notifications + Supabase triggers State Management Zustand The architecture is deliberately serverless. All AI calls — quiz generation, flashcard creation, assignment breakdown — are routed through Supabase Edge Functions running on Deno. The ANTHROPIC_API_KEY never touches the client. RLS (Row Level Security) is enforced on every database table so users can only ever read and write their own data.
The XP and rank engine runs server-side only — no client can submit its own XP, preventing cheating. Every xp_event is logged with a source and reference ID for audit purposes.
The 3D map was the most technically interesting piece: each course generates a Babylon.js scene with instanced mesh platforms for zones and GLB models for boss encounters. We targeted 30fps on iPhone 12 / Pixel 5 with a polygon budget under 8,000 triangles — no real-time shadows, frozen inactive meshes, and InstancedMesh for repeated geometry.
Challenges we ran into Deep Mode on iOS is genuinely hard. True programmatic app blocking requires Screen Time API entitlements that Apple only grants to MDM and parental control apps — not consumer apps. We had to pivot to a guided Screen Time setup: we walk the user through enabling the restrictions themselves, then use AppState listeners and background notifications to enforce quiz gates when they try to return to a blocked app. It works. It's just not the seamless lockdown we originally envisioned.
The 3D map on React Native. @babylonjs/react-native requires native module compilation — it cannot run in Expo Go. Every iteration required a full expo prebuild + native build cycle. Debugging a 3D scene with no hot reload on a phone is... humbling.
XP anti-gaming. If XP is social currency, people will find ways to farm it. Location spoofing for attendance, friends checking each other into study groups that never happened, uploading garbage resources. We built server-side validation layers for each XP source, but a truly robust anti-gaming system is a cat-and-mouse problem that Phase 2 will have to address more seriously.
McGill has no public API. Phase 1 is fully manual course input. We wanted to auto-populate courses, exam dates, and syllabi from the myCourses portal — but there's no MCP and no public OAuth flow. Phase 2 requires negotiating with McGill IT directly.
Accomplishments that we're proud of A working 3D MMORPG progression map that genuinely visualizes your academic semester as a game world — complete with boss encounters for exams that crack open when defeated. An AI assignment breakdown that takes a description and a deadline and produces a realistic, day-by-day task plan in seconds. A server-side XP engine with full audit logging, streak calculation, and rank tier computation — all fraud-resistant because no client can self-report XP. Building the full auth → onboarding → course setup → study session flow end-to-end in a single hackathon sprint. A Readiness Score formula that actually feels right — students who start early and cover more topics see it climb, while students who wait get genuine urgency pressure from the exponential decay term. What we learned Gamification works best when the rewards are intrinsic. Badges and leaderboards are motivating, but the most powerful moment in our testing was when a user watched their 3D map boss get "defeated" after marking an exam done. That visual feedback landed differently than any number going up. Serverless Edge Functions are underrated for hackathons. Spinning up Supabase Edge Functions with Deno gave us secure, low-latency AI calls with zero backend infrastructure to manage. The ANTHROPIC_API_KEY never left the server. Total setup time: under an hour. The quiz gate is more effective than a hard block. When we tested a pure "you can't leave" approach, users just rage-quit entirely. When we gave them a way out — answer one question — they actually engaged with the material. The friction became the learning. Babylon.js on mobile React Native is powerful but demanding. The tooling is maturing fast, but native build cycles are a significant productivity tax. Plan for it. What's next for GetCracked McGill Integration (Phase 2): OAuth with the myCourses portal to auto-populate courses, exam dates, and syllabi. Zero manual setup. Attendance Verification: Stacked verification — GPS radius check + optional professor QR code scan — to award attendance XP with high confidence. AI Tutor: A full Claude-powered tutor pre-loaded with your course material and exam timeline. It asks follow-up questions as often as it answers them — it's a Socratic tutor, not a search engine. Study Groups with XP Verification: Create or join a study group, attend, and everyone gets XP. Anti-gaming layer: verification requires all members to be in the same location at the same time. Teacher Dashboard: A read-only, aggregated view for professors — attendance rates, average Readiness Scores ahead of exams, top Commons contributors. Individual student data stays private. Multi-University Expansion (Phase 3): GetCracked is designed to be institution-agnostic. After McGill, we're targeting Concordia and the University of Toronto as the next campuses. The long-term vision: a platform where being genuinely, verifiably dedicated to your education is the highest-status thing a student can be. Not because a professor told you to — because your rank says so.
Built With
- and
- built-with:-typescript
- expo-notifications
- expo-router
- expo.io
- nativewind/tailwind-css
- react
- react-native
- react-native-gesture-handler
- react-native-reanimated
- supabase-(auth/database/storage)
- zustand
Log in or sign up for Devpost to join the conversation.