Skip to content

CodeShiksha is a comprehensive mobile app built with Flutter to help programmers and students master Data Structures & Algorithms (DSA) efficiently. It brings together practice, contests, learning, and community support in a single platform.

Notifications You must be signed in to change notification settings

Prahlad-07/CodeSiksha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š CodeShiksha - Your Ultimate DSA Companion

CodeShiksha Logo

Master Data Structures & Algorithms with Practice, Contests, and Community Support

Flutter Dart Firebase

Build Status License Downloads

πŸš€ Features β€’ πŸ“± Screenshots β€’ βš™οΈ Installation β€’ πŸ› οΈ Tech Stack


✨ Features

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

πŸ—οΈ Architecture

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
Loading

Key Application Flows

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
Loading

πŸ“± Screenshots

Home & Dashboard Practice Roadmap
Profile Contests

πŸ› οΈ Tech Stack

Flutter Dart Firebase BLoC

Frontend: Flutter, Dart
State Management: BLoC Pattern
Backend: Firebase (Auth, Firestore, FCM, Storage)
APIs: GeeksforGeeks, LeetCode, CodeChef, Codeforces
Local Storage: Shared Preferences, SQLite


βš™οΈ Installation

Prerequisites

  • Flutter SDK 3.0+
  • Dart 3.0+
  • Firebase Account
  • Android Studio / VS Code

Quick Setup

# Clone repository
git clone https://github.com/Prahlad-07/CodeSiksha.git
cd CodeSiksha

# Install dependencies
flutter pub get

# Run app
flutter run

Firebase Configuration

  1. Create project at Firebase Console
  2. Download google-services.json β†’ android/app/
  3. Download GoogleService-Info.plist β†’ ios/Runner/
  4. Enable: Authentication, Firestore, FCM, Storage

API Configuration

Create lib/config/api_config.dart:

class ApiConfig {
  static const String gfgApiKey = 'YOUR_KEY';
  static const String leetcodeEndpoint = 'YOUR_ENDPOINT';
}

πŸ“Š Features Deep Dive

Daily Practice System

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
Loading
  • Access curated problems from GeeksforGeeks and LeetCode
  • Filter by difficulty: Easy, Medium, Hard
  • Track completion status and maintain history
  • Automatic progress sync across devices

Contest Notification System

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
Loading

Supported Platforms:

  • CodeChef
  • Codeforces
  • LeetCode
  • Coding Ninja
  • HackerRank

Notification Types:

  • 24 hours before contest
  • 1 hour before contest
  • Contest start alert

Progress Analytics

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
Loading

Track Your Progress:

  • Daily/Weekly/Monthly solved count
  • Topic-wise completion percentage
  • Difficulty distribution charts
  • Streak maintenance and badges
  • Roadmap completion status

πŸ—ΊοΈ Learning Roadmap

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
Loading

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

πŸ’¬ Community Chat

  • 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

πŸ“ˆ Progress Dashboard

Key Metrics:

  • Total problems solved
  • Current streak πŸ”₯
  • Weekly goals
  • Topic completion
  • Difficulty breakdown
  • Performance analytics
  • Activity heatmap

πŸ”” Smart Notifications

Stay Updated With:

  • Daily problem reminders
  • Upcoming contest alerts
  • Streak maintenance reminders
  • Achievement unlocked notifications
  • Chat message alerts
  • Roadmap milestone celebrations

πŸš€ Getting Started

# 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 run

πŸ“‚ Project Structure

lib/
β”œβ”€β”€ main.dart
β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ api_config.dart
β”‚   └── firebase_config.dart
β”œβ”€β”€ features/
β”‚   β”œβ”€β”€ auth/
β”‚   β”œβ”€β”€ practice/
β”‚   β”œβ”€β”€ contest/
β”‚   β”œβ”€β”€ chat/
β”‚   └── progress/
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ theme/
β”‚   β”œβ”€β”€ constants/
β”‚   └── utils/
└── shared/
    β”œβ”€β”€ widgets/
    └── services/

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

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


πŸ‘¨β€πŸ’» Author

Prahlad


πŸ™ Acknowledgments

  • 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!

About

CodeShiksha is a comprehensive mobile app built with Flutter to help programmers and students master Data Structures & Algorithms (DSA) efficiently. It brings together practice, contests, learning, and community support in a single platform.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published