Skip to content

Repository files navigation

Frame 35378

Never miss a competitive programming contest again.
A beautiful, fully-automated alarm app that wakes you up before every contest — even if you forget.

Platforms Flutter License

Download


Typing SVG

📸 Screenshots

WhatsApp Image 2026-07-12 at 16 08 42
Landing Page
WhatsApp Image 2026-07-12 at 16 08 42 (2)
Contest Calendar
WhatsApp Image 2026-07-12 at 16 08 42 (1)


Loading Screen

ss3
Full-Screen Alarm
WhatsApp Image 2026-07-12 at 16 08 42 (3)
Settings
WhatsApp Image 2026-07-12 at 16 08 41


Android Home Screen Widget


💡 The Problem

You're a competitive programmer. You know that feeling:

"Wait, there was a Codeforces round today?!"

You set calendar reminders. You forget to check them. You rely on willpower. You oversleep. You miss Div. 2 rounds, weekly LeetCode contests, and CodeChef starters — over and over again.

CodeBuzzer exists to make that impossible.


🚀 Features

🔔 Aggressive, Multi-Stage Alarm System

Not just one gentle notification. CodeBuzzer hits you with a cascade of escalating reminders:

Time Before Contest Alert Type
⏳ 30 minutes Push notification
⏳ 10 minutes Push notification
🔊 5 minutes Full-screen ringing alarm (loud, with vibration)
🟢 Contest start Push notification

The full-screen alarm rings even when your phone is locked or the app is closed. It's like a phone call you can't ignore.

📅 Smart Contest Calendar

  • Horizontal scrollable calendar with contest indicators on each day
  • Smart date-snapping — auto-jumps to the next contest day on launch
  • Filter by platform to see only contests you care about
  • Platform-specific timeline mode for focused browsing

🌐 Multi-Platform Support

CodeBuzzer now features a Dynamic Custom Platforms Engine. It reads contest data from a remote JSON gist, allowing unlimited platforms to be supported seamlessly!

Platform Source Status
Codeforces Live API (codeforces.com/api) ✅ Real-time
LeetCode Hardcoded schedule (Weekly + Biweekly) ✅ Always available
CodeChef Hardcoded schedule (Weekly) ✅ Always available
CodingNinjas Hardcoded schedule (Weekly) ✅ Always available
Custom Sites Remote JSON Sync (e.g. Repovive, AtCoder) ✅ Dynamic sync

LeetCode, CodeChef, and Coding Ninjas contests follow fixed schedules, so they're generated locally. Custom platforms are fetched dynamically and automatically integrate into your filter chips and Settings!

🔄 Background Sync (48h Auto-Refresh)

CodeBuzzer uses Android's WorkManager to silently sync contests every 48 hours in the background. Even if you don't open the app for a month, your alarms will keep updating themselves.

📱 Swipe-to-Action Alarm Screen

When the alarm rings, you get a beautiful full-screen experience:

  • Swipe left → Dismiss
  • Swipe right → Snooze (5 min)
  • Or just tap the labels directly

No accidental dismissals. Inspired by the phone call UX.

⏰ Custom Manual Reminders

Have a mock contest? A study session? An interview?

  • Tap "Add Alarm" on any date to create your own custom reminder
  • Set a title, description, and exact time
  • Full alarm support — just like contest reminders

🧩 Android Home Screen Widget

Keep track of your contests without even opening the app!

  • Today's Contests: See all contests scheduled for today right on your home screen.
  • Dynamic Platform Colors: Widget cards automatically match the theme of the contest's platform.
  • Smart Empty States: Easily see if there are contests coming up tomorrow when today is clear.
  • Clean Design: A beautiful dark-mode interface with a minimalist, un-obtrusive layout.

🎨 Premium Dark UI & UX

  • Glassmorphism design with frosted blur effects
  • Interactive Coach Marks (Tutorial Overlays) for seamless onboarding
  • Smooth micro-animations and transitions
  • Green accent color palette (#1CD065)
  • Google Sans typography throughout
  • Timezone-Aware: All contest times automatically convert to your local timezone seamlessly.

⚙️ Full Customization

  • Toggle platforms on/off independently
  • Custom alarm sounds — pick any audio file from your phone
  • Permission manager — one-tap setup for exact alarms, notifications & overlays
  • Battery optimization tips built-in

🛠️ Tech Stack

Layer Technology
Framework Flutter (Dart)
State Management Provider
Alarms alarm package
Notifications flutter_local_notifications
Background Sync workmanager
HTTP http
Storage shared_preferences
Permissions permission_handler

📦 Project Structure

lib/
├── main.dart                      # App entry + WorkManager setup
├── data/
│   └── dsa_quotes.dart            # Hardcoded DSA tips and quotes database
├── models/
│   └── contest.dart               # Contest data model
├── providers/
│   └── contest_provider.dart      # State management & alarm scheduling
├── services/
│   ├── alarm_service.dart         # Alarm & notification scheduling
│   ├── api_service.dart           # API calls + hardcoded contest generation
│   └── tutorial_service.dart      # Coach marks & interactive onboarding
└── ui/
    ├── screens/
    │   ├── alarm_ring_screen.dart  # Full-screen alarm with swipe actions
    │   ├── home_screen.dart        # Calendar + contest list
    │   ├── landing_screen.dart     # Animated onboarding
    │   ├── main_screen.dart        # Bottom nav shell
    │   ├── settings_screen.dart    # Platform toggles, sounds, permissions
    │   └── splash_screen.dart      # App initialization with DSA typewriter
    └── widgets/
        ├── add_alarm_popup.dart      # Manual alarm creation sheet
        ├── contest_card.dart         # Modular contest list item
        ├── contest_filter_chips.dart # Dynamic platform filter chips
        ├── glass_container.dart      # Reusable liquid glassmorphism UI component
        ├── horizontal_calendar.dart  # Scrollable date selector
        ├── mesh_background.dart      # Decorative background widget
        └── skeleton_loader.dart      # Pulsing loading animation for contests

🏁 Getting Started

Prerequisites

  • Flutter SDK >=3.10.4
  • Android Studio / VS Code
  • An Android device or emulator (API 21+)

Installation

# Clone the repo
git clone https://github.com/sambhandavale/CodeBuzzer.git
cd CodeBuzzer

# Install dependencies
flutter pub get

# Set up environment variables
# Copy .env.example to .env and configure your custom API endpoints
cp .env.example .env

# Run tests to ensure everything is stable
flutter test

# Run on your device
flutter run

# Build release APK
flutter build apk

The release APK will be at build/app/outputs/flutter-apk/app-release.apk.


🔐 Permissions

CodeBuzzer requests the following permissions for reliable alarm delivery:

Permission Why
INTERNET Fetch Codeforces contests from API
SCHEDULE_EXACT_ALARM Precise alarm scheduling
POST_NOTIFICATIONS Push notification reminders
SYSTEM_ALERT_WINDOW Full-screen alarm overlay
RECEIVE_BOOT_COMPLETED Restore alarms after phone restart
WAKE_LOCK Keep alarm ringing when screen is off
FOREGROUND_SERVICE Background alarm service
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Prevent OS from killing the app

Tip: For the most reliable experience, go to App Info → Battery → Unrestricted.


🤝 Contributing

Contributions are welcome! Here are some ways you can help:

  • 🐛 Report bugs — Open an issue
  • 💡 Suggest features — Start a discussion
  • 🔧 Submit PRs — Fork, branch, code, and open a pull request
  • Star the repo — It helps more than you think!

📋 Roadmap

  • Codeforces real-time API integration
  • LeetCode weekly + biweekly contests
  • CodeChef weekly contests
  • Coding Ninjas weekly contests
  • Multi-stage alarm cascade (30m, 10m, 5m, start)
  • Background sync with WorkManager
  • Custom alarm sounds
  • Swipe-to-dismiss alarm screen
  • Manual alarm creation
  • Dynamic custom platforms via remote JSON
  • Widgets for home screen
  • AtCoder support
  • Contest rating predictions
  • Contest problem difficulty analysis
  • iOS support

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.


Built with 💚 for competitive programmers who oversleep.

About

Never miss a competitive programming contest again. Auto-alarms for Codeforces, LeetCode & CodeChef with background sync — even when your phone is locked.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages