Master Data Structures & Algorithms with Practice, Contests, and Community Support
π Features β’ π± Screenshots β’ βοΈ Installation β’ π οΈ Tech Stack
| Feature | Description |
|---|---|
| π Daily DSA Practice | Access problems from GFG & LeetCode |
| π Contest Reminders | Never miss contests on CodeChef, Codeforces, LeetCode |
| π¬ Interactive Chat | Connect with learners, ask doubts |
| πΊοΈ Personal Roadmap | Structured DSA learning path |
| π Progress Dashboard | Track solved problems, streaks, analytics |
| π₯ Streak Tracking | Stay motivated with daily practice |
| π Smart Notifications | Timely alerts for contests & practice |
| π± Cross-Platform | Available on Android & iOS |
graph TB
subgraph "Client"
App[Flutter App]
end
subgraph "State Management"
BLoC[BLoC Pattern]
end
subgraph "Backend"
Firebase[Firebase Services]
API[External APIs]
end
App -->|Events| BLoC
BLoC -->|States| App
BLoC -->|Auth/Data| Firebase
BLoC -->|Problems/Contests| API
style App fill:#02569B,color:#fff
style BLoC fill:#2196F3,color:#fff
style Firebase fill:#FFC107
sequenceDiagram
participant User
participant App
participant BLoC
participant Firebase
User->>App: Open Practice
App->>BLoC: Load Problems
BLoC->>Firebase: Fetch Data
Firebase-->>BLoC: Return Problems
BLoC-->>App: Update UI
App-->>User: Show Problems
User->>App: Mark Solved
App->>BLoC: Update Progress
BLoC->>Firebase: Save Progress
Firebase-->>BLoC: Confirm
BLoC-->>App: Update Streak
Frontend: Flutter, Dart
State Management: BLoC Pattern
Backend: Firebase (Auth, Firestore, FCM, Storage)
APIs: GeeksforGeeks, LeetCode, CodeChef, Codeforces
Local Storage: Shared Preferences, SQLite
- Flutter SDK 3.0+
- Dart 3.0+
- Firebase Account
- Android Studio / VS Code
# Clone repository
git clone https://github.com/Prahlad-07/CodeSiksha.git
cd CodeSiksha
# Install dependencies
flutter pub get
# Run app
flutter run- Create project at Firebase Console
- Download
google-services.jsonβandroid/app/ - Download
GoogleService-Info.plistβios/Runner/ - Enable: Authentication, Firestore, FCM, Storage
Create lib/config/api_config.dart:
class ApiConfig {
static const String gfgApiKey = 'YOUR_KEY';
static const String leetcodeEndpoint = 'YOUR_ENDPOINT';
}graph LR
A[GFG/LeetCode] --> B[Daily Problems]
B --> C[Easy/Medium/Hard]
C --> D[Solve & Track]
D --> E[Update Progress]
style B fill:#4CAF50,color:#fff
style D fill:#2196F3,color:#fff
- Access curated problems from GeeksforGeeks and LeetCode
- Filter by difficulty: Easy, Medium, Hard
- Track completion status and maintain history
- Automatic progress sync across devices
graph TB
A[Contest APIs] --> B[Scheduler]
B --> C[Filter Upcoming]
C --> D[Send Notifications]
D --> E[User Device]
style B fill:#FF9800,color:#fff
style D fill:#4CAF50,color:#fff
Supported Platforms:
- CodeChef
- Codeforces
- LeetCode
- Coding Ninja
- HackerRank
Notification Types:
- 24 hours before contest
- 1 hour before contest
- Contest start alert
graph LR
A[Solved Problems] --> B[Analytics]
B --> C[Streak]
B --> D[Statistics]
B --> E[Roadmap]
style B fill:#2196F3,color:#fff
style C fill:#FF5722,color:#fff
Track Your Progress:
- Daily/Weekly/Monthly solved count
- Topic-wise completion percentage
- Difficulty distribution charts
- Streak maintenance and badges
- Roadmap completion status
graph TB
B1[Beginner<br/>Arrays, Strings] --> I1[Intermediate<br/>LinkedList, Trees]
I1 --> A1[Advanced<br/>DP, Graphs]
A1 --> E1[Expert<br/>Advanced DS]
style B1 fill:#4CAF50,color:#fff
style I1 fill:#2196F3,color:#fff
style A1 fill:#FF9800,color:#fff
style E1 fill:#9C27B0,color:#fff
Structured Path:
- Beginner: Basic syntax, Arrays, Strings, Pattern problems
- Intermediate: Linked Lists, Stacks, Queues, Trees, Hashing
- Advanced: Graphs, Dynamic Programming, Greedy algorithms
- Expert: Advanced trees, Segment trees, Game theory
- Real-time messaging powered by Firebase
- Ask doubts and get instant help
- Share solutions and approaches
- Connect with fellow DSA learners
- Code snippet sharing support
Key Metrics:
- Total problems solved
- Current streak π₯
- Weekly goals
- Topic completion
- Difficulty breakdown
- Performance analytics
- Activity heatmap
Stay Updated With:
- Daily problem reminders
- Upcoming contest alerts
- Streak maintenance reminders
- Achievement unlocked notifications
- Chat message alerts
- Roadmap milestone celebrations
# 1. Clone the repo
git clone https://github.com/Prahlad-07/CodeSiksha.git
# 2. Navigate to directory
cd CodeSiksha
# 3. Get dependencies
flutter pub get
# 4. Run on device
flutter runlib/
βββ main.dart
βββ config/
β βββ api_config.dart
β βββ firebase_config.dart
βββ features/
β βββ auth/
β βββ practice/
β βββ contest/
β βββ chat/
β βββ progress/
βββ core/
β βββ theme/
β βββ constants/
β βββ utils/
βββ shared/
βββ widgets/
βββ services/
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Prahlad
- GitHub: @Prahlad-07
- Project Link: https://github.com/Prahlad-07/CodeSiksha
- GeeksforGeeks for problem APIs
- LeetCode for practice problems
- Firebase for backend services
- Flutter community for amazing packages
Made with β€οΈ by Prahlad
β Star this repo if you find it helpful!




