Skip to content

Khesir/KeepTrack

Repository files navigation

Keep Track

⚠️ Disclaimer: The app icon/image (/assets/icon/app_icon.png) is currently a placeholder and will be replaced later. It is not owned by me.

Keep Track App Icon

Organize your life with powerful task management, comprehensive finance tracking, and productivity tools - all in one beautiful app.

License Build Status Flutter Supabase

Download Latest ReleaseDocumentationReport BugRequest Feature


✨ Features

Current Features

  • Task Management (Base Feature)

    • Create, organize, and track tasks with priorities
    • Set deadlines and due dates
    • Group tasks into projects
    • Archive completed tasks
    • Filter by priority (Urgent, High, Medium, Low)
  • Finance Tracking (Base Feature)

    • Manage multiple accounts (Bank, Cash, E-Wallet, etc.)
    • Create and monitor budgets by category
    • Track debts with payment schedules
    • Set savings goals with progress tracking
    • Schedule recurring payments
    • Comprehensive transaction history
    • Multi-currency support
  • Productivity Tools (Base Feature)

    • Built-in Pomodoro timer with customizable durations
    • Focus sessions with automatic break reminders
    • Session statistics and insights
  • Modern UI/UX

    • Clean, intuitive interface inspired by modern design principles
    • Full dark mode support
    • Responsive layout for desktop and mobile
    • Smooth animations and transitions
  • Cloud Sync

    • Supabase authentication (Email/Password, Google)
    • Real-time data synchronization
    • Access your data from any device
  • Cross-Platform

    • Windows (x64)
    • macOS (Intel & Apple Silicon)
    • Linux (AppImage, DEB)
    • Android (APK) - Coming soon
    • iOS - Coming soon

🚀 Getting Started

System Requirements

Windows

  • OS: Windows 10 or later (64-bit)
  • RAM: 4 GB minimum, 8 GB recommended
  • Storage: 500 MB available space
  • Graphics: DirectX 11 compatible graphics card

Android

  • OS: Android 8.0 (Oreo) or later
  • RAM: 2 GB minimum, 4 GB recommended
  • Storage: 200 MB available space
  • Architecture: ARM64 or ARMv7

Installation Instructions

Windows

  1. Download the .exe installer from the latest release above
  2. Run the installer and follow the setup wizard
  3. Launch Personal Codex from the Start Menu or Desktop shortcut

Android

  1. Download the .apk file from the latest release above
  2. If prompted, allow installation from unknown sources in your device settings
  3. Tap the downloaded APK file to install
  4. Open Personal Codex from your app drawer

🛠️ Development Setup

Prerequisites

  • Flutter SDK (3.19+)
  • Dart SDK (3.3+)
  • A Supabase account (free tier available)
  • Git

1. Clone the repository

git clone https://github.com/Khesir/KeepTrack.git
cd KeepTrack

2. Install dependencies

flutter pub get

3. Set up Supabase

Create a Supabase project

  1. Go to https://supabase.com
  2. Create a new project
  3. Wait for the project to be ready

Run the bootstrap script

This is a ONE-TIME setup that enables automatic migrations:

  1. Open your Supabase project dashboard
  2. Navigate to SQL Editor in the sidebar
  3. Click New Query
  4. Copy and paste the contents of supabase/bootstrap.sql
  5. Click Run (or press Cmd/Ctrl + Enter)

The bootstrap script creates:

  • The exec_sql function (allows automatic migrations)
  • The schema_migrations table (tracks applied migrations)

4. Configure your app

Update lib/main.dart with your Supabase credentials:

await Supabase.initialize(
  url: 'YOUR_SUPABASE_PROJECT_URL',
  anonKey: 'YOUR_SUPABASE_ANON_KEY',
);

Find these values in your Supabase project settings under API.

5. Run the app

# Desktop
flutter run -d windows  # or macos, linux

# Mobile
flutter run -d android  # or ios

The app will automatically:

  1. Connect to Supabase
  2. Run all pending migrations
  3. Set up the database schema
  4. Start the app

📁 Project Structure

lib/
├── core/                    # Core functionality
│   ├── di/                  # Dependency injection
│   ├── error/               # Error handling
│   ├── logging/             # Logging system
│   ├── migrations/          # Database migrations
│   ├── routing/             # Navigation
│   ├── settings/            # App settings
│   ├── state/               # State management
│   ├── theme/               # Theming
│   └── ui/                  # Reusable UI components
├── features/                # Feature modules
│   ├── auth/                # Authentication
│   ├── finance/             # Finance tracking
│   │   ├── modules/
│   │   │   ├── account/     # Account management
│   │   │   ├── budget/      # Budget tracking
│   │   │   ├── debt/        # Debt management
│   │   │   ├── goal/        # Savings goals
│   │   │   └── transaction/ # Transaction history
│   │   └── presentation/    # UI screens
│   ├── home/                # Home dashboard
│   ├── module_selection/    # Module picker
│   ├── profile/             # User profile
│   └── tasks/               # Task management
│       ├── domain/          # Business logic
│       ├── presentation/    # UI screens
│       └── state/           # State management
├── shared/                  # Shared code
│   └── infrastructure/      # Infrastructure code
└── main.dart                # App entry point

🗄️ Database Migrations

Keep Track uses automatic database migrations. When you start the app:

  1. Migration manager checks which migrations have been applied
  2. Pending migrations are executed automatically via the exec_sql RPC function
  3. Successful migrations are recorded in the schema_migrations table

No manual SQL execution needed after the initial bootstrap!

See Migration System Guide for more details.


🏗️ Architecture

  • Clean Architecture with separation of concerns
  • Custom Dependency Injection system
  • Custom State Management using StreamState
  • Feature-based organization for scalability
  • Repository pattern for data access
  • Automatic migrations for database schema updates

🤝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for details on how to:

  • Report bugs
  • Suggest features
  • Submit pull requests
  • Set up your development environment

Please read our Code of Conduct before contributing.


📄 License

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


🙏 Acknowledgments

  • Built with Flutter - Google's UI toolkit
  • Powered by Supabase - Open source Firebase alternative
  • Inspired by modern productivity apps and design systems
  • Icons from Material Design

📞 Support


🌟 Star History

If you find Keep Track useful, please consider giving it a star ⭐

Star History Chart


Made with ❤️ using Flutter & Supabase

WebsiteTwitterDiscord