Skip to content

Repository files navigation

Tasky.Preview.for.Android.store.mp4

Tasky

Shared Task manager similar to a lite version of Google Calendar Over 150 Stars on Github!

Video walkthrough:

image

  • 100% compose UI (0% XML)
  • Manages schedule across time zones automatically
  • Works offline & automatically syncs across multiple devices
  • Invite other people to your events, and automatically sync changes.
  • Alarms & Custom Notifications for Agenda Items coming due
  • Manage multiple user accounts
  • Internationalized for English, Spanish and German
  • Automatically sync event changes to all people in an Event
  • Add photos to Events
  • Dark & Light mode
  • Deep Link handling
  • Custom Notification with images and functionality
  • Visual Planner navigator
  • Code Style focuses on maximum "new developer" comprehensibility

Hits-of-Code

Google Play Store Presence

Mini Marketing Site

Screen Shots

Backend Server Code

  • Updated to version 2 to use refresh tokens & config-based security
  • Written 100% in Kotlin using Ktor
  • Accesses MongoDB Atlas & S3-compatible storage
  • Runs locally without Docker
  • Deployable to VPS or AWS
  • Tasky Ktor Backend v2 Repository

Delete Account Request

🛠 Built With

- Gradle: jbr-17 JetBrains Runtime 17.0.11 - aarch64 /Users/chrisathanas/Library/Java/JavaVirtualMachines/jbr-17.0.11/Contents/Home
- Android Studio Narwhal | 2025.1.1 Canary 10
Build #AI-251.23774.435.2511.13464725, built on May 8, 2025
Runtime version: 21.0.6+-13391695-b895.109 aarch64 (JCEF 122.1.9)
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Toolkit: sun.lwawt.macosx.LWCToolkit
macOS 15.4.1
Kotlin plugin: K2 mode
GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation
Memory: 4096M
Cores: 10
Metal Rendering is ON
Registry:
ide.tooltip.initialDelay=812
ide.browser.jcef.gpu.disable=true
debugger.new.tool.window.layout=true
analyze.exceptions.on.the.fly=true
ide.experimental.ui=true
com.android.studio.ml.activeModel=com.android.studio.ml.AidaModel
Non-Bundled Plugins:
com.intellij.marketplace (251.23774.466)
dev.j-a.swift (1.3.3.393-251)
wu.seal.tool.jsontokotlin (3.7.6)
org.jetbrains.plugins.hocon (2025.1.0)
idea.plugin.protoeditor (251.23774.318)
com.wakatime.intellij.plugin (15.0.3)
com.github.airsaid.androidlocalize (3.0.0)
DBN (3.5.3.0)
net.seesharpsoft.intellij.plugins.csv (4.0.2)
org.jetbrains.compose.desktop.ide (1.7.3)
com.jetbrains.kmm (0.8.5(251)-1)
com.developerphil.adbidea (1.6.19)
com.github.copilot (1.5.44-243)
mobi.hsz.idea.gitignore (4.5.6)
com.abeade.plugin.figma.import (1.4.1)
╰►java --version  1 ↵  1144  14:08:36 
openjdk 21.0.6 2025-01-21
OpenJDK Runtime Environment (build 21.0.6+-13391695-b895.109)
OpenJDK 64-Bit Server VM (build 21.0.6+-13391695-b895.109, mixed mode)
  • Kotlin - First class and official programming language for Android development.
  • Compose - Jetpack Compose is Android’s modern toolkit for building native UI.
  • Coroutines - A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
  • Flow - A flow is an asynchronous version of a Sequence, a type of collection whose values are lazily produced.
  • Proto DataStore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. DataStore uses Kotlin coroutines and Flow to store data asynchronously, consistently, and transactionally.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • Stateflow - StateFlow is a state-holder observable flow that emits the current and new state updates to its collectors.
    • Flow - A flow is an asynchronous version of a Sequence, a type of collection whose values are lazily produced.
    • ViewModel - Stores UI-related data that isn"t destroyed on UI changes.
    • Compose Destinations Navigation - Simplified and type-safe navigation for Compose.
    • DataStore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. DataStore uses Kotlin coroutines and Flow to store data asynchronously, consistently, and transactionally.
    • WorkManager - Schedule automatically repeating or guarantee one-time background processing.
    • Room Database - SQL-based database.
  • Material Components for Android
    • Modular and customizable Material Design UI components for Android.
  • Accompanist
    • A collection of extension libraries for Jetpack Compose.
  • Coil
    • Image loading library for Compose.

Screen Flow

image

Architecture Overview

Architecture Data Flow

Entity Relationship

Authentication Flow State Diagram

To simulate, click on the diagram.

Offline Cache Strategy State Diagram

To simulate, click on the diagram.

Network Endpoints

Full Diagram

imageimageimage

Version History

DateVersionNotes
12/30/221.0Initial Version - Meets Spec
02/22/231.1Add Gantt View
9/5/231.11Fix failing tests
5/15/251.2Add RefreshToken, Bump to SDK 36, use local Tasky BE v2

About

Task manager similar to a lite version of Google Calendar

Resources

Stars

156 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages