Track upcoming contests, manage reminders, and stay competition-ready across multiple coding platforms β all from one app.
Competitive programmers often participate in contests hosted across multiple platforms such as Codeforces, LeetCode, CodeChef, AtCoder, and more.
Keeping track of contest schedules manually can be frustrating and often leads to missed opportunities.
CodeBell solves this problem by providing a centralized platform where users can:
- π‘ View upcoming contests from multiple platforms
- β³ Track live countdowns to contest start times
- π Schedule personalized reminders
- β Add custom contests and events
- πΆ Access previously fetched contests offline
Whether you're preparing for placements, improving your competitive programming skills, or participating in coding events regularly, CodeBell helps you stay organized and never miss an important contest.
| Splash Screen | Home Screen | View All Screen | Manual Contest Screen | Profile Screen |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
View upcoming contests from multiple competitive programming platforms in a single place.
Real-time countdowns help you know exactly when the next contest begins.
Schedule reminders according to your preference:
- 30 Minutes Before
- 1 Hour Before
- 1 Day Before
Create and manage your own contests, hackathons, college coding events, or practice sessions.
Quickly find contests based on:
- Platform
- Contest Name
- Date
Modify or cancel reminders anytime from within the app.
Previously fetched contests remain accessible even without an internet connection using Room Database.
CodeBell follows the MVVM (ModelβViewβViewModel) architecture pattern to maintain clean separation of concerns and improve scalability.
UI (Jetpack Compose)
β
ViewModel
β
Repository
β β
Room Retrofit
(Local) (Remote)
| Category | Technology |
|---|---|
| Language | Kotlin |
| UI Toolkit | Jetpack Compose |
| Design System | Material 3 |
| Architecture | MVVM |
| Database | Room |
| Networking | Retrofit + OkHttp |
| Dependency Injection | Hilt (Planned) |
| Navigation | Navigation Compose |
| State Management | StateFlow |
| Asynchronous Programming | Kotlin Coroutines |
| Notifications | AlarmManager + BroadcastReceiver |
| Local Persistence | Room Database |
- Retrieves upcoming contests from supported platforms
- Keeps contest information updated
- Stores fetched contests locally for offline access
Uses Android's AlarmManager:
AlarmManager.setExactAndAllowWhileIdle()Benefits:
- Accurate reminder delivery
- Works during Doze Mode
- Supports multiple reminders
- Reliable notification scheduling
Users can create their own events by specifying:
- Contest Name
- Platform
- Date & Time
- Reminder Preference
Custom contests are stored locally and behave exactly like fetched contests.
| Screen | Description |
|---|---|
| Welcome Screen | User onboarding |
| Home Screen | Countdown and upcoming contests |
| Contest List | All contests with search and filtering |
| Add Contest | Create custom contests |
| Reminder Management | Manage notifications |
git clone https://github.com/komallsingh/CodeBell.gitFile β Open β Select CodeBell./gradlew assembleDebug- Contest Listing
- Search & Filtering
- Reminder Scheduling
- Offline Storage with Room
- Custom Contest Creation
Contributions, suggestions, and feedback are welcome.
If you would like to contribute:
- Fork the repository
- Create a feature branch
- Commit your changes
- Open a Pull Request
Komal Singh
Android Developer β’ Open Source Contributor β’ Aspiring Generative AI Engineer
This project is licensed under the MIT License.
See the LICENSE file for more information.
β If you find CodeBell useful, consider starring the repository.




