Skip to content

GitDoIt: Flutter mobile app to manage GitHub Issues as TODO list. Create, edit, close issues on your phone. Just Do It with GitHub!

Notifications You must be signed in to change notification settings

berlogabob/flutter-github-issues-todo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

39 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GitDoIt

Minimalist GitHub Issues & Projects TODO Manager

Flutter License

A cross-platform mobile application (Android + iOS) that transforms GitHub Issues and GitHub Projects (v2) into a convenient, fast, minimalist TODO manager with a strong offline-first approach.

✨ Features

  • πŸ” Dual Authentication - OAuth Device Flow or Personal Access Token
  • πŸ“± Offline-First - Work without internet, sync when connected
  • πŸ—‚οΈ Hierarchical View - Repo β†’ Issues β†’ Sub-issues with expandable items
  • πŸ“‹ Project Board - Kanban-style board with drag-and-drop
  • 🎨 Dark Theme - Beautiful dark mode with orange accents
  • ⚑ Fast - Optimized for quick scanning and triage
  • πŸ” Global Search - Search across titles, labels, and body

πŸ“± Screenshots

The app includes 7 MVP screens:

  1. Onboarding - Authentication choice (OAuth/PAT/Offline)
  2. Dashboard - Main task hierarchy view
  3. Issue Detail - Detailed issue view with markdown
  4. Project Board - Kanban board with drag-and-drop
  5. Repo/Project Library - Manage repositories and projects
  6. Search - Global search functionality
  7. Settings - App settings and account management

πŸ—οΈ Architecture

Tech Stack (as per brief)

  • Framework: Flutter 3.24+
  • State Management: Riverpod 2.x
  • Local Storage: Hive
  • Network: http + graphql_flutter
  • Secure Storage: flutter_secure_storage
  • Markdown: flutter_markdown
  • Drag & Drop: reorderables
  • URL Launcher: url_launcher

Project Structure

lib/
β”œβ”€β”€ agents/                    # Multi-agent development system
β”‚   β”œβ”€β”€ agent_coordinator.dart # Coordinates all agents
β”‚   β”œβ”€β”€ base_agent.dart        # Base agent class
β”‚   β”œβ”€β”€ project_manager_agent.dart
β”‚   β”œβ”€β”€ flutter_developer_agent.dart
β”‚   β”œβ”€β”€ ui_designer_agent.dart
β”‚   β”œβ”€β”€ testing_quality_agent.dart
β”‚   └── documentation_deployment_agent.dart
β”œβ”€β”€ constants/                 # App constants
β”‚   └── app_colors.dart       # Color scheme
β”œβ”€β”€ models/                    # Data models
β”‚   β”œβ”€β”€ item.dart             # Abstract base class
β”‚   β”œβ”€β”€ repo_item.dart        # Repository model
β”‚   β”œβ”€β”€ issue_item.dart       # Issue model
β”‚   └── project_item.dart     # Project model
β”œβ”€β”€ screens/                   # UI screens (7 MVP screens)
β”‚   β”œβ”€β”€ onboarding_screen.dart
β”‚   β”œβ”€β”€ main_dashboard_screen.dart
β”‚   β”œβ”€β”€ issue_detail_screen.dart
β”‚   β”œβ”€β”€ project_board_screen.dart
β”‚   β”œβ”€β”€ repo_project_library_screen.dart
β”‚   β”œβ”€β”€ search_screen.dart
β”‚   └── settings_screen.dart
β”œβ”€β”€ providers/                 # Riverpod providers
β”œβ”€β”€ services/                  # Business logic services
└── widgets/                   # Reusable widgets

πŸš€ Getting Started

Prerequisites

  • Flutter SDK 3.24 or higher
  • Dart SDK 3.11 or higher
  • Android Studio / Xcode
  • GitHub account (for authentication)

Installation

  1. Clone the repository
git clone https://github.com/your-org/gitdoit.git
cd gitdoit
  1. Install dependencies
flutter pub get
  1. Generate code
flutter pub run build_runner build --delete-conflicting-outputs
  1. Run the app
flutter run

Building for Production

Android APK

flutter build apk --release

Android App Bundle (Play Store)

flutter build appbundle --release

iOS IPA (App Store)

flutter build ipa --release

πŸ” Authentication

GitDoIt supports three authentication methods:

1. OAuth Device Flow (Recommended)

  • Click "Login with GitHub"
  • Enter the provided code on GitHub's device verification page
  • Grant permissions
  • Secure and doesn't require storing tokens manually

2. Personal Access Token (PAT)

Generate a token with these scopes:

  • repo - Full control of private repositories
  • read:org - Read org membership
  • write:org - Read and write org membership
  • project - Read and write projects

3. Offline Mode

  • Click "Continue Offline"
  • Creates local repository "My Local Tasks"
  • All features work without network
  • Changes sync when you log in later

🎨 Design System

Colors

  • Background: #121212 β†’ #1E1E1E (gradient)
  • Card Background: #1E1E1E
  • Orange (Primary): #FF6200 - Main actions
  • Red (Secondary): #FF3B30 - Connectors, danger actions
  • Blue (Accent): #0A84FF - Assignee links

Typography

  • System fonts (SF Pro on iOS, Roboto on Android)
  • Titles: Medium/Bold weight
  • Secondary text: Regular/Light with 0.7-0.85 opacity

πŸ§ͺ Testing

Run All Tests

flutter test

Test Coverage

The Testing & Quality Agent (TQA) validates:

  • βœ… Model tests (24 tests)
  • βœ… Widget tests (42 tests)
  • βœ… ExpandableItem tests (14 tests)
  • βœ… Auth service tests (12 tests)
  • βœ… Sync service tests (18 tests)
  • βœ… User journey tests (5 tests)
  • βœ… Performance tests (6 tests)
  • βœ… Brief compliance (15 checks)

πŸ€– Agent System

GitDoIt uses a unique multi-agent system for parallel development:

Agents

  1. Project Manager (PMA) - Coordinates team, assigns tasks
  2. Flutter Developer (FDA) - Writes code, implements features
  3. UI/UX Designer (UDA) - Designs interface, ensures style compliance
  4. Testing & Quality (TQA) - Validates code, runs tests
  5. Documentation & Deployment (DDA) - Maintains docs, prepares releases

Parallel Execution

All agents work concurrently and communicate through a message bus:

final coordinator = AgentCoordinator();
coordinator.registerAgent(ProjectManagerAgent());
coordinator.registerAgent(FlutterDeveloperAgent());
// ... register other agents
await coordinator.startAll();

See AGENTS_README.md for detailed documentation.

πŸ“‹ MVP Scope

Included (Brief v1.0)

  • βœ… 7 MVP screens
  • βœ… Dark theme only
  • βœ… OAuth + PAT authentication
  • βœ… Offline-first with Hive
  • βœ… Issues sync (REST)
  • βœ… Projects v2 board (GraphQL)
  • βœ… Drag-and-drop between columns
  • βœ… Hierarchical expandable items
  • βœ… Global search
  • βœ… Markdown rendering

Explicitly Excluded (per brief section 10)

  • ❌ Light theme
  • ❌ Push notifications
  • ❌ Home screen widgets
  • ❌ Share sheet
  • ❌ Other service integrations
  • ❌ Custom icons/illustrations
  • ❌ Lottie animations
  • ❌ Inline editing in lists
  • ❌ Additional features beyond brief

πŸ› οΈ Development

Code Generation

# Watch mode (auto-generate on changes)
flutter pub run build_runner watch

# One-time generation
flutter pub run build_runner build --delete-conflicting-outputs

Linting

flutter analyze

Formatting

dart format .

πŸ“¦ Dependencies

Production

  • flutter_riverpod - State management
  • hive + hive_flutter - Local database
  • http - REST API client
  • graphql_flutter - GraphQL client
  • flutter_secure_storage - Secure token storage
  • flutter_markdown - Markdown rendering
  • reorderables - Drag-and-drop lists
  • url_launcher - Open URLs

Development

  • build_runner - Code generation
  • riverpod_generator - Riverpod codegen
  • hive_generator - Hive adapter generation
  • flutter_lints - Linting rules

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ™ Acknowledgments

  • GitHub API for providing the backend
  • Flutter community for amazing packages
  • All contributors to this project

πŸ“ž Support

For issues and feature requests, please create an issue in the repository.


Built with ❀️ using Flutter and the GitDoIt Agent System

About

GitDoIt: Flutter mobile app to manage GitHub Issues as TODO list. Create, edit, close issues on your phone. Just Do It with GitHub!

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors