Skip to content

Markel15/FlowState

Repository files navigation

FlowState

A modern, intuitive task management app built with Jetpack Compose and Clean Architecture

Kotlin Compose Room Hilt

⚠️ Early Development Stage
This project is actively being developed and may have bugs. We welcome contributions from the community!

Screenshots


Features

Implemented

  • Task Management: Create, edit and delete tasks
  • Priority System: Set task priorities (High, Medium, Low, None)
  • Sub-tasks: Break down tasks into manageable sub-tasks
  • Swipe Actions: Swipe to delete tasks with smooth animations
  • Drag & Drop: Reorder tasks via intuitive drag handles
  • Auto-save: Changes are saved automatically when editing a task
  • Material 3: Modern design with dynamic colors
  • Task Scheduling: Add due dates
  • Calendar view
  • Habit Tracking: Build daily routines and track streaks

In Development

  • Reminders
  • Mood Tracking: Log daily emotions and view trends
  • Widgets: Home screen widgets for quick access
  • Themes: More customization options
  • Any new suggestion

Motivation

I wanted to build a fully-featured Android app completely free, ad-free, and privacy-focused — no servers, no tracking, no data collection, works 100% offline. This project was mainly a way for me to learn modern Kotlin (coming from a Java-only background) while creating something truly customizable that I (and others) can easily modify, extend and adapt to different needs.

Getting Started

Prerequisites

  • Android Studio
  • Android SDK 31 (Android 12)

Installation

  1. Clone the repository

    git clone https://github.com/Markel15/flowstate.git
    cd flowstate
    
  2. Open in Android Studio

    -Open Android Studio

    -Select "Open an Existing Project"

    -Navigate to the cloned directory

  3. Build and Run

    -Connect an Android device or start an emulator (API 31+)

    -Click the Run button

🤝 How to Contribute

We welcome contributions! Here's how you can help:

Reporting Bugs

  1. Check the Issues to avoid duplicates
  2. Create a new issue with:
    • Clear description
    • Steps to reproduce
    • Expected vs actual behavior
    • Screenshots/videos if possible
    • Device/OS information

Suggesting Features

  1. Check existing feature requests
  2. Create an issue with:
    • Use case description
    • Mockups/wireframes if applicable
    • Priority justification

Submitting Code

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  • Write tests when possible
  • Update documentation when possible
  1. Commit your changes
    git commit -m 'Add some amazing feature'
  2. Push to the branch
    git push origin feature/amazing-feature
  3. Open a Pull Request

Architecture

FlowState follows Clean Architecture with a clear separation of concerns:

UI Layer (Presentation)
├── ViewModels
├── Composable Screens
└── UI State Management

Domain Layer (Business Logic)
├── Use Cases (Interactors)
├── Repository Interfaces
└── Domain Models (Task, SubTask, Priority)

Data Layer (Infrastructure)
├── Repository Implementations
├── Local Data Source (Room)
└── Data Models (Entities)

Tech Stack

Component Technology
UI Framework Jetpack Compose
Architecture Clean Architecture + MVVM
Database Room
DI Hilt
Async Kotlin Coroutines
Navigation Navigation Compose
Animations Compose Animation APIs

About

Android application developed in Kotlin designed to organize and manage your life | WIP

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages