{"id":16980000,"url":"https://github.com/vaibhav2002/taskify","last_synced_at":"2025-09-10T06:32:29.094Z","repository":{"id":56761763,"uuid":"375697442","full_name":"Vaibhav2002/Taskify","owner":"Vaibhav2002","description":"Taskify - An app to manage your daily tasks and boost your productivity. Taskify is built using kotlin and follows all modern android Development practices and hence is a good learning resource for beginners","archived":false,"fork":false,"pushed_at":"2022-10-04T05:54:59.000Z","size":58280,"stargazers_count":131,"open_issues_count":1,"forks_count":35,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T05:46:18.293Z","etag":null,"topics":["android","coroutines-flow","firebase","flows","hacktoberfest","harperdb","harperdbhackathon","hashnode","jetpack-android","kotlin","mvvm","retrofit","room-persistence-library"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vaibhav2002.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-06-10T12:55:48.000Z","updated_at":"2025-03-31T05:13:51.000Z","dependencies_parsed_at":"2023-01-19T05:00:55.733Z","dependency_job_id":null,"html_url":"https://github.com/Vaibhav2002/Taskify","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Vaibhav2002/Taskify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vaibhav2002%2FTaskify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vaibhav2002%2FTaskify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vaibhav2002%2FTaskify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vaibhav2002%2FTaskify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vaibhav2002","download_url":"https://codeload.github.com/Vaibhav2002/Taskify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vaibhav2002%2FTaskify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274422205,"owners_count":25282123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","coroutines-flow","firebase","flows","hacktoberfest","harperdb","harperdbhackathon","hashnode","jetpack-android","kotlin","mvvm","retrofit","room-persistence-library"],"created_at":"2024-10-14T01:48:23.956Z","updated_at":"2025-09-10T06:32:29.062Z","avatar_url":"https://github.com/Vaibhav2002.png","language":"Kotlin","readme":"![](media/header_dark.png)\n\n# **Taskify** \n\n**Taskify** is an app to manage your daily tasks and boost your productivity\n\n# Video Introduction 📹\n\nThis is a small introduction video about Taskify  https://youtu.be/MEuoxix5SGY.\n\n# Article ✍\n\nTo know more about how I build this project, read my [Article](https://vaibhav2002.hashnode.dev/taskify-an-app-to-manage-your-daily-tasks-and-boost-your-productivity-harperdb-hackathon)\n\n# Application Install\n\n***You can Install and test latest Taskify app from below 👇***\n\n[![Taskify](https://img.shields.io/badge/Taskify✅-APK-red.svg?style=for-the-badge\u0026logo=android)](https://github.com/Vaibhav2002/Taskify/releases/tag/1.0.0)\n\n## Setup\nClone the repository on your machine. Open the project on your IDE and connect it to firebase and harperDB and everything will be setup\n\n## About\n\n It uses firebase and HarperDB as it's backend. It uses Firebase Authentication for email based auth and Google auth, Firebase Crashlytics for crash reporting and HarperDB as its database.\n\n- Fully functionable. \n- Clean and Simple Material UI.\n- It supports dark theme too 🌗.\n\n### Insights into the app 🔎\n\n![light_dark.png](media/light_dark.png)\n\n**Taskify** offers light as well as dark theme 🌓. So now you can use Taskify in whatever theme you like the most. 🔥\n\n\n![slide-1.png](media/slide-1.png)\n\n\n**Taskify** supports both email based and Social media authentication like Google authentication. Planning to add Facebook authentication too. 😁\n\n\n\n![slide-2.png](media/slide-2.png)\n\n\nHave a look at your running task, upcoming and completed tasks all in one place. Create a task by pressing the FAB below.\n\n![slide-3.png](media/slide-3.png)\n\nTaskify lets you start a timer ⌚ to track the time you take completing a task. Timer runs in background, so you dont need to keep the app open all the time. 👍 See stats 💪 of all tasks you created within the last week, including total tasks created in a day and breakdown of tasks based on category.\n\n## 📸 Screenshots\n\n||||\n|:----------------------------------------:|:-----------------------------------------:|:-----------------------------------------: |\n| ![](media/getting_started_dark.jpg) | ![](media/login_dark.jpg) | ![](media/register_dark.jpg) |\n| ![](media/ongoing_dark.jpg)  | ![](media/upcoming_dark.jpg) | ![](media/completed_dark.jpg)    |\n| ![](media/add_task_dark.jpg) | ![](media/stats_dark.jpg)    | ![](media/profile_dark.jpg)      |\n|![](media/menu_dark.jpg)  |![](media/timer_dark.jpg)  |![](media/about_dark.jpg)      |\n\n## Built With 🛠\n- [Kotlin](https://kotlinlang.org/) - First class and official programming language for Android development.\n- [Coroutines](https://kotlinlang.org/docs/reference/coroutines-overview.html) - For asynchronous and more..\n- [Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/) - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.\n - [StateFlow](https://developer.android.com/kotlin/flow/stateflow-and-sharedflow) - StateFlow is a state-holder observable flow that emits the current and new state updates to its collectors.\n- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - Collection of libraries that help you design robust, testable, and maintainable apps.\n  - [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) - Stores UI-related data that isn't destroyed on UI changes. \n  - [ViewBinding](https://developer.android.com/topic/libraries/view-binding) - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.\n  - [DataBinding](https://developer.android.com/topic/libraries/data-binding) - Binds data directly into XML layouts\n  - [Room](https://developer.android.com/training/data-storage/room) - Room is an android library which is an ORM which wraps android's native SQLite database\n  - [DataStore](https://developer.android.com/topic/libraries/architecture/datastore) - Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers.\n- [Dependency Injection](https://developer.android.com/training/dependency-injection) - \n  - [Hilt-Dagger](https://dagger.dev/hilt/) - Standard library to incorporate Dagger dependency injection into an Android application.\n  - [Hilt-ViewModel](https://developer.android.com/training/dependency-injection/hilt-jetpack) - DI for injecting `ViewModel`.\n- Backend\n  - [Firebase](https://firebase.google.com)\n    - Firebase Auth - To support email based authentication and google authentication\n    - Firebase Crashlytics - To report app crashes\n  - [HarperDB](https://harperdb.io) -  HarperDB is a geo-distributed database with hybrid SQL \u0026 NoSQL functionality in one powerful tool, accessed via a REST API.\n- [Retrofit](https://square.github.io/retrofit/) - A type-safe HTTP client for Android and Java.\n- [GSON](https://github.com/google/gson) - A modern JSON library for Kotlin and Java.\n- [Timber](https://github.com/JakeWharton/timber) - A simple logging library for android.\n- [GSON Converter](https://github.com/square/retrofit/tree/master/retrofit-converters/gson) - A Converter which uses Moshi for serialization to and from JSON.\n- [Glide](https://github.com/bumptech/glide) - An image loading and caching library for Android focused on smooth scrolling\n- [Coil](https://github.com/coil-kt/coil) - An image loading library for Android backed by Kotlin Coroutines.\n- [Material Components for Android](https://github.com/material-components/material-components-android) - Modular and customizable Material Design UI components for Android.\n\n# Package Structure\n    \n    com.vaibhav.taskify    # Root Package\n    .\n    ├── data                # For data handling.\n    |   ├── local           # Room DB and its related classes\n    |   ├── remote          # Firebase, HarperDB and their relative classes\n    │   ├── model           # Model data classes, both remote and local entities\n    │   └── repo            # Single source of data.\n    |\n    ├── di                  # Dependency Injection             \n    │   └── module          # DI Modules\n    |\n    ├── ui                  # UI/View layer\n    |   ├── adapters        # All Adapters, viewholder and diffUtils for recyclerViews      \n    │   ├── auth            # Authorization Activity and its fragments\n    │   ├── mainScreen      # Home Activity and its fragments\n    |   ├── addTaskScreen   # Add Task Activity and its fragments\n    |   ├── onBoarding      # OnboardingScreen\n    │   └── splashScreen    # SplashScreen\n    |\n    ├── service             # Timer Service and its related classes\n    |\n    └── utils               # Utility Classes / Kotlin extensions\n\n\n## Architecture\nThis app uses [***MVVM (Model View View-Model)***](https://developer.android.com/jetpack/docs/guide#recommended-app-arch) architecture.\n\n![](https://developer.android.com/topic/libraries/architecture/images/final-architecture.png)\n  \n\n\n---\n\n## If you like my projects and want to support me to build more cool open source projects\n  \n\u003ca href=\"https://www.buymeacoffee.com/VaibhavJaiswal\"\u003e\u003cimg src=\"https://img.buymeacoffee.com/button-api/?text=Buy me a coffee\u0026emoji=\u0026slug=VaibhavJaiswal\u0026button_colour=FFDD00\u0026font_colour=000000\u0026font_family=Cookie\u0026outline_colour=000000\u0026coffee_colour=ffffff\"\u003e\u003c/a\u003e\n\n---\n\n ## Contact\nIf you need any help, you can connect with me.\n\nVisit:- [VaibhavJaiswal.io](https://vaibhav2002.github.io)\n  \n\n\n\n","funding_links":["https://www.buymeacoffee.com/VaibhavJaiswal","https://img.buymeacoffee.com/button-api/?text=Buy"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaibhav2002%2Ftaskify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaibhav2002%2Ftaskify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaibhav2002%2Ftaskify/lists"}