Skip to content

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