{"id":18819721,"url":"https://github.com/mfurmanczyk/toodoo","last_synced_at":"2026-04-29T09:32:14.636Z","repository":{"id":193237585,"uuid":"688376284","full_name":"MFurmanczyk/TooDoo","owner":"MFurmanczyk","description":"A mobile application that allows users to manage their daily tasks. The app provides task categories and a responsive user interface made with Kotlin and Jetpack Compose.","archived":false,"fork":false,"pushed_at":"2023-10-01T09:19:49.000Z","size":2635,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-06T20:07:29.072Z","etag":null,"topics":["android","android-application","android-architecture","android-development","compose-navigation","compose-ui","todo-app","todoapp"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MFurmanczyk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-07T08:13:04.000Z","updated_at":"2024-05-05T18:02:28.000Z","dependencies_parsed_at":"2024-11-08T00:26:41.928Z","dependency_job_id":"19717fbc-d85d-4afe-b67b-d766b9e6cf82","html_url":"https://github.com/MFurmanczyk/TooDoo","commit_stats":null,"previous_names":["mfurmanczyk/toodoo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MFurmanczyk/TooDoo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MFurmanczyk%2FTooDoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MFurmanczyk%2FTooDoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MFurmanczyk%2FTooDoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MFurmanczyk%2FTooDoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MFurmanczyk","download_url":"https://codeload.github.com/MFurmanczyk/TooDoo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MFurmanczyk%2FTooDoo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32419883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","android-application","android-architecture","android-development","compose-navigation","compose-ui","todo-app","todoapp"],"created_at":"2024-11-08T00:24:38.890Z","updated_at":"2026-04-29T09:32:14.591Z","avatar_url":"https://github.com/MFurmanczyk.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TooDoo\nSimple to-do app with task categories and responsive UI made with Kotlin and Jetpack Compose. Currently, work in progress.\n\n## About the app\nTooDoo is a personal tasks management app for Android. It aims to help users organize their tasks in a transparent manner by categorizing tasks into custom categories. (WIP) The app reminds users about tasks for the current day. \n(WIP) Created tasks (eg. shopping lists) can be sent to others via SMS. \n\n\n## Features\n### Done\n\n* 📱 Adaptive screen content - layout depends on screen size\n* 📤 Custom categories - users can define their own categories\n* ✅ Tasks - users can create tasks with multiple steps, categories, and due date\n* 📋 Dashboard - display categories with their overall progress and undone tasks that are due for the current day\n* 📤 Categories - screen that displays all categories with information about current progress within a category\n\n### Planned\n\n* 📆 Calendar - screen that displays all tasks (done and not done) for a selected day\n* ✉️ SMS - sending task via SMS\n* ❗Notifications - the app notifies the user about tasks that are planned to be done on that day\n\n## Modules\nThe app is built with multiple modules:\n* data - responsible for [model](https://github.com/MFurmanczyk/TooDoo/tree/master/data/src/main/java/com/mfurmanczyk/toodoo/data/model) classes \n(with [relationships](https://github.com/MFurmanczyk/TooDoo/tree/master/data/src/main/java/com/mfurmanczyk/toodoo/data/model/relationship) defined) and all communication with the \n[database](https://github.com/MFurmanczyk/TooDoo/tree/master/data/src/main/java/com/mfurmanczyk/toodoo/data/database). Provides \n[task](https://github.com/MFurmanczyk/TooDoo/blob/master/data/src/main/java/com/mfurmanczyk/toodoo/data/repository/TaskRepository.kt), \n[category](https://github.com/MFurmanczyk/TooDoo/blob/master/data/src/main/java/com/mfurmanczyk/toodoo/data/repository/CategoryRepository.kt) and \n[step](https://github.com/MFurmanczyk/TooDoo/blob/master/data/src/main/java/com/mfurmanczyk/toodoo/data/repository/StepRepository.kt) repositories and all related dependencies that need to be injected.\n* preferences - responsible for providing [preferences](https://github.com/MFurmanczyk/TooDoo/blob/master/preferences/src/main/java/com/mfurmanczyk/toodoo/preferences/repository/DataStorePreferencesRepository.kt) \nrepository that allows users to customize the app (currently only username preference is available - defined on first-time launch)\n* mobile - this module contains all [Composable UI](https://github.com/MFurmanczyk/TooDoo/tree/master/mobile/src/main/java/com/mfurmanczyk/toodoo/mobile/view/screen) \nwith [view models](https://github.com/MFurmanczyk/TooDoo/tree/master/mobile/src/main/java/com/mfurmanczyk/toodoo/mobile/viewmodel), [navigation graph](https://github.com/MFurmanczyk/TooDoo/tree/master/mobile/src/main/java/com/mfurmanczyk/toodoo/mobile/view/navigation), \n[components](https://github.com/MFurmanczyk/TooDoo/tree/master/mobile/src/main/java/com/mfurmanczyk/toodoo/mobile/view/component) \nused in multiple screens and [top-level](https://github.com/MFurmanczyk/TooDoo/blob/master/mobile/src/main/java/com/mfurmanczyk/toodoo/mobile/TooDooApp.kt) composable that is responsible for displaying adaptive screen content.\n\n\n## Technology \u0026 Techniques\nUsed technology and programming techniques: \n* Android SDK\n* Kotlin\n* Jetpack Compose\n* Multi-modules\n* Coroutines\n* Navigation\n* MVVM pattern\n* Dependency Injection with Hilt\n* Kotlin flows\n* Datastore\n* Room database\n* [Color picker](https://vanpra.github.io/compose-material-dialogs/ColorPicker/) - credits to [vanpra](https://github.com/vanpra)\n\n## Screenshots\n### Phone\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/welcome_screen_phone.png\" width=\"200\" title=\"welcome\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/task_details_phone.png\" width=\"200\" title=\"task details\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/new_task_phone.png\" width=\"200\" title=\"new task\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/new_category_phone.png\" width=\"200\" title=\"new category\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/dialog_phone.png\" width=\"200\" title=\"dialog\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/dashboard_phone.png\" width=\"200\" title=\"dashboard\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/category_details_phone.png\" width=\"200\" title=\"category details\"\u003e\n\u003c/p\u003e\n\n### Foldable\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/welcome_screen_foldable.png\" width=\"200\" title=\"welcome\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/task_details_foldable.png\" width=\"200\" title=\"task details\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/new_task_foldable.png\" width=\"200\" title=\"new task\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/new_category_foldable.png\" width=\"200\" title=\"new category\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/dialog_foldable.png\" width=\"200\" title=\"dialog\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/dashboard_foldable.png\" width=\"200\" title=\"dashboard\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/category_details_foldable.png\" width=\"200\" title=\"category details\"\u003e\n\u003c/p\u003e\n\n### Tablet\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/welcome_screen_tablet.png\" width=\"450\" title=\"welcome\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/dashboard_task_preview_tablet.png\" width=\"450\" title=\"task details\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/new_task_tablet.png\" width=\"450\" title=\"new task\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/new_category_tablet.png\" width=\"450\" title=\"new category\"\u003e\n  \u003cimg src=\"./TooDooScrenshots/dialog_tablet.png\" width=\"450\" title=\"dialog\"\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfurmanczyk%2Ftoodoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmfurmanczyk%2Ftoodoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfurmanczyk%2Ftoodoo/lists"}