CodeAlert is a full-stack mobile application built to centralize competitive programming activities across multiple coding platforms.
Track ratings, solved questions, upcoming contests, and reminders — all from one dashboard.
✅ User Authentication (Signup/Login)
✅ JWT Session Management
✅ Platform Handle Integration
✅ Contest Tracking
✅ Contest Countdown Timer
✅ Coding Profile Monitoring
✅ Theme Support (Dark / Light)
┌────────────────────┐
│ Flutter App │
│--------------------│
│ Login / Signup │
│ Dashboard │
│ Profile │
│ Contest Feed │
│ Reminders │
└─────────┬──────────┘
│
REST APIs
│
▼
┌────────────────────┐
│ FastAPI Backend │
│---------------------│
│ Authentication │
│ Dashboard Sync │
│ Contest Aggregator │
│ Reminder Service │
└─────────┬───────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ MongoDB │ │ LeetCode API │ │ Codeforces │
│ User Data │ │ GraphQL │ │ Public API │
│ Profiles │ │ │ │ │
│ Contests │ └──────────────┘ └──────────────┘
│ Reminders │
└──────────────┘
lib/
│
├── pages/
│ ├── login_page.dart
│ ├── signup_page.dart
│ ├── home_page.dart
│ ├── profile_page.dart
│ ├── platform_detail.dart
│ ├── reminder_page.dart
│ └── settings.dart
│
├── services/
│ └── api_service.dart
│
├── provider/
│ └── theme_provider.dart
│
└── main.dart
backend/
│
├── app/
│
├── routers/
│ ├── users.py
│ ├── dashboard.py
│ ├── contests.py
│ ├── leetcode.py
│ ├── codeforces.py
│ ├── reminders.py
│
├── auth/
│ └── auth_handler.py
│
├── database/
│ └── database.py
│
└── main.py
User
↓
Flutter Login
↓
POST /login
↓
JWT Generated
↓
Store SharedPreferences
↓
Navigate Home
Profile Open
↓
syncDashboard()
↓
Verify Token
↓
Fetch Platform Data
↓
Update MongoDB
↓
Return Dashboard
↓
Refresh UI
Open Home
↓
GET /contests
↓
Contest Service
↓
Contest Cards
↓
Live Countdown
{
"_id":"ObjectId",
"name":"Revant",
"email":"user@gmail.com",
"password":"****",
"handles":{
"cf_handle":"abc",
"lc_handle":"xyz"
}
}{
"user_id":"123",
"rating":1824,
"global_ranking":40000,
"problems_solved":745
}{
"user_id":"123",
"rating":1487
}{
"name":"Weekly Contest",
"platform":"LeetCode",
"start_time":"timestamp"
}{
"user_id":"123",
"contest_name":"Codeforces Round",
"time":"timestamp"
}POST /signup
POST /loginPUT /users/handles
POST /dashboard/syncGET /contestsPOST /reminder
GET /reminders/{id}- LeetCode GraphQL
- Codeforces API
- CodeChef Data Source
- Authentication
- JWT Login
- Contest Fetch
- Contest Countdown
- Profile Page
- Platform Handle Setup
- Dashboard Sync
- Rating Tracking
- Questions Solved Tracking
- Theme Support
- Auto Refresh
- Notification Integration
- Profile Analytics
- Contest Filtering
- Better Error Handling
- Background Sync
- Push Notifications
- Leaderboards
- AI Contest Recommendation
- Statistics Dashboard
- Activity Graph
- Multi-device Sync
git clone <repo>
cd codealert
flutter pub get
flutter runBackend:
cd backend
uvicorn app.main:app --host 0.0.0.0 --reloadBuilt with ❤️ using Flutter + FastAPI + MongoDB