An Android app that tracks a 30-day progressive running plan with AI-powered workout verification, smart notifications, and social media shareable image generation. Built with a unique old notebook journal aesthetic β aged parchment, ruled lines, hand-drawn checkboxes, and ink-style typography.
| Plan View | Day Detail | AI Verification | Shareable Card |
|---|---|---|---|
| Scrollable 30-day plan with hand-drawn checkboxes, week headers, and progress bar | Warm-up, workout, cool-down sections with interactive checklists and journal entry | Gemini Vision reads workout screenshots, AI coach evaluates performance | Torn-page card with stats and AI-generated motivational quote |
Core
- π 30-day progressive running plan (4 weeks: Beginner β Fat Burning β Weight Loss β Maximum)
- β Sequential day completion with strict streak tracking
- πΈ Upload Apple Health/Watch screenshots for workout verification
- π€ Gemini 2.5 Flash Vision extracts workout data (duration, distance, pace, calories)
- ποΈ AI Coach evaluates workouts against daily targets
- π Personal journal entries with auto-save to Firestore
Sharing
- π¨ Daily shareable cards with torn-page deckle edges
- π Weekly summary shareables auto-triggered on week completion
- π¬ AI-generated motivational quotes (regeneratable)
- π± Share as actual PNG images to Instagram, WhatsApp, Twitter
Backend
- π Google Sign-In with Firebase Auth
- π₯ Firestore for real-time data persistence
- π Firebase Analytics with 12+ tracked events
- π Firebase Crashlytics for error reporting
- β° WorkManager hourly reminders (outside office hours)
- π Push notification support via Firebase Cloud Messaging
Design
- π Old notebook journal aesthetic β aged parchment (#F5E6C8), ruled lines, red margin
- βοΈ Custom Newsreader + Literata serif fonts
- π¨ Hand-drawn checkboxes, ink strikethroughs, coffee stain decorations
- π Thought bubble AI coach messages
- π Stamp-style action buttons
- ποΈ Sticky note components for informational callouts
- Language: Kotlin
- UI: Jetpack Compose + Material 3
- Architecture: MVI Clean Architecture
- Navigation: Navigation 3
- AI: Gemini 2.5 Flash (Vision + Text) via Google AI SDK
- Auth: Firebase Auth + Credential Manager (Google Sign-In)
- Database: Cloud Firestore (real-time listeners)
- Storage: Firebase Storage
- Analytics: Firebase Analytics + Crashlytics
- Notifications: WorkManager + Firebase Cloud Messaging
- Image Loading: Coil
- Build: AGP 9, Kotlin 2.3.20, Gradle Version Catalog
- Android Studio or Kiro IDE
- Android SDK 36
- JDK 17
- A Firebase project
git clone https://github.com/user/Run30.git
cd Run30- Create a Firebase project at console.firebase.google.com
- Add an Android app with package name
com.tatav.run30 - Download
google-services.jsonand place it inapp/ - Enable: Authentication (Google Sign-In), Firestore Database, Storage, Crashlytics, Analytics
- Add your debug SHA-1 fingerprint for Google Sign-In
Create/update local.properties in the project root:
GEMINI_API_KEY=your_gemini_api_key_here
WEB_CLIENT_ID=your_firebase_web_client_id_hereGet your Gemini API key from Google AI Studio. Get your Web Client ID from Firebase Console β Authentication β Sign-in method β Google.
./gradlew assembleDebugapp/src/main/java/com/tatav/run30/
βββ core/
β βββ components/ # Reusable notebook UI components
β βββ theme/ # Colors, typography, theme
β βββ notification/ # WorkManager reminders
β βββ util/ # Analytics helper
βββ data/
β βββ local/ # Hardcoded 30-day plan data
β βββ model/ # Firestore data models
β βββ remote/ # Gemini AI service
β βββ repository/ # Auth, Plan, Storage repositories
βββ domain/
β βββ model/ # Domain models (DayPlan, DayStatus, Attempt)
βββ feature/
β βββ plan/ # 30-day plan view (home)
β βββ daydetail/ # Day detail with workout sections
β βββ verify/ # AI workout verification
β βββ shareable/ # Daily + weekly shareable cards
β βββ reset/ # Streak reset screen
β βββ journal/ # Workout diary
β βββ stats/ # Running statistics
β βββ settings/ # App settings + sign out
β βββ login/ # Google Sign-In
βββ navigation/ # Nav3 keys + navigation graph
| Week | Focus | Pattern |
|---|---|---|
| 1 | Beginner Adaptation | Walk + slow run, building stamina |
| 2 | Fat Burning Start | 3 min run β 1 min walk cycles |
| 3 | Real Weight Loss | 1 min fast β 2 min slow intervals |
| 4 | Maximum Fat Loss | 40-45 min runs, high intensity |
This project is for personal use. Not yet released publicly.
Built with Kiro AI IDE in a single overnight session. From idea to working app in ~30 sessions.