Skip to content

ukimsanov/anchor-ai-app

Repository files navigation


Anchor

Keep your day from drifting.

An AI-powered daily focus and productivity coach built with Flutter

Key FeaturesScreenshotsArchitectureTech StackGetting StartedProject Structure

Flutter Dart License Platform


Overview

Anchor helps you stay productive through a simple daily cycle inspired by the metaphor: just as a ship's anchor prevents drifting in rough waters, your 3-5 key "anchor" tasks each day prevent your productivity from drifting into chaos.

Morning During the Day Evening
Plan your anchors Focus on one task Reflect with AI coaching

Key Features

Feature Description
Task Management Create tasks with estimated duration, mark 3-5 as daily "anchors", drag-and-drop reordering
Focus Timer Pomodoro-style timer linked to tasks, tracks actual vs estimated time, interruption logging
Daily Reflection Rate your mood (1-5), select blockers, write or record voice reflections
AI Coach Personalized feedback powered by GPT-5, three adaptive modes (Normal, Deep, Celebration)
Voice Recording Record audio reflections with Whisper transcription
History & Analytics Weekly progress charts, mood trends, past reflections
Theming Material Design 3 with light/dark mode support

Screenshots

Today Screen Plan Screen Focus Timer

Reflection Onboarding Settings


Architecture

This project follows Clean Architecture principles with clear separation of concerns:

┌─────────────────────────────────────────────────────────┐
│                    Presentation Layer                    │
│         (Screens, Widgets, Riverpod Providers)          │
├─────────────────────────────────────────────────────────┤
│                      Domain Layer                        │
│            (Entities, Repository Interfaces)             │
├─────────────────────────────────────────────────────────┤
│                       Data Layer                         │
│        (Drift Database, Repository Implementations)      │
└─────────────────────────────────────────────────────────┘

Key Patterns:

  • State Management: Riverpod with AsyncNotifier pattern
  • Navigation: GoRouter with declarative routing
  • Database: Drift (SQLite) with type-safe queries
  • Dependency Injection: Riverpod providers

Tech Stack

Category Technology
Framework Flutter 3.9+
Language Dart 3.0+
State Management Riverpod 2.6 (AsyncNotifier)
Database Drift 2.28 (SQLite)
Navigation GoRouter 14.8
AI Integration OpenAI API (GPT-5, Whisper)
Theming FlexColorScheme + Material 3
Code Generation Freezed, JSON Serializable, Build Runner
Audio flutter_sound, record
Notifications flutter_local_notifications

Getting Started

Prerequisites

  • Flutter SDK 3.9 or higher
  • Dart SDK 3.0 or higher
  • Android Studio / VS Code
  • OpenAI API key (for AI features)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/anchor.git
    cd anchor
  2. Install dependencies

    flutter pub get
  3. Generate code (database, freezed classes)

    dart run build_runner build --delete-conflicting-outputs
  4. Run the app

    flutter run

Configure OpenAI API Key

  1. Launch the app and complete onboarding
  2. Go to SettingsAI Configuration
  3. Enter your OpenAI API key
  4. The AI coach and voice transcription features will now work

Note: The app works without an API key, but AI coaching and voice transcription will be disabled.


Project Structure

lib/
├── core/                    # Core utilities
│   ├── helpers/             # Date formatting, pattern analysis
│   ├── router/              # GoRouter configuration
│   ├── services/            # AI, Audio, Notification services
│   └── theme/               # Material 3 theming, colors, spacing
│
├── data/                    # Data layer
│   ├── database/            # Drift database setup
│   │   ├── daos/            # Data Access Objects
│   │   └── tables/          # Table definitions
│   └── repositories/        # Repository implementations
│
├── domain/                  # Domain layer (pure Dart)
│   ├── entities/            # Task, FocusSession, DailySummary
│   └── repositories/        # Abstract repository interfaces
│
├── presentation/            # UI layer
│   ├── providers/           # Riverpod state providers
│   ├── screens/             # App screens
│   │   ├── today/           # Main dashboard
│   │   ├── plan/            # Task planning
│   │   ├── focus/           # Focus timer
│   │   ├── reflection/      # Daily reflection
│   │   ├── history/         # Weekly history
│   │   ├── settings/        # App settings
│   │   └── onboarding/      # First-launch flow
│   └── widgets/             # Reusable widgets
│
└── main.dart                # App entry point

Database Schema

Table Purpose
tasks All tasks with anchor flag, completion status, ordering
focus_sessions Timed work sessions linked to tasks
daily_summaries End-of-day reflections, mood, AI coach messages
settings Key-value store for app preferences

See docs/DATABASE.md for detailed schema documentation.


Documentation

Document Description
PROJECT_REPORT.md Comprehensive project overview and technical decisions
PROJECT_PLAN.md Development phases and implementation progress
DEVELOPER_GUIDE.md Quick start guide for developers
DATABASE.md Database schema and relationships

Contributing

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

  1. Fork the repository
  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.


Acknowledgments

  • Claude AI (Anthropic) - Development assistance, architecture decisions
  • OpenAI - GPT-5 for coaching, Whisper for transcription
  • Flutter Team - Amazing cross-platform framework
  • Riverpod - Excellent state management solution

Author

Ular Kimsanov

Mobile Application Development - December 2025


Made with Flutter

About

AI-powered daily focus and routine coach built with Flutter. Helps you stay productive through a simple daily cycle

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages