From 0ae0ec551008b5967d924c4acd490d9fac08fce1 Mon Sep 17 00:00:00 2001 From: Shubham Ingale <77089227+SGI-CAPP-AT2@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:17:31 +0530 Subject: [PATCH 1/5] update taskwarrior goals for GSoC 2026 --- .../ideas_page_for_summer_of_code_2026.md | 2 +- content/public/gsoc/2026/taskwarrior.md | 241 +++--------------- 2 files changed, 40 insertions(+), 203 deletions(-) diff --git a/content/docs/ideas_page_for_summer_of_code_2026.md b/content/docs/ideas_page_for_summer_of_code_2026.md index d209410..3ad9774 100644 --- a/content/docs/ideas_page_for_summer_of_code_2026.md +++ b/content/docs/ideas_page_for_summer_of_code_2026.md @@ -125,7 +125,7 @@ a bit after a fantastic run on our core tool. | ----------- | ----------- | ----------- | ----------- | ----------- | ------ | | [ Ultimate Alarm Clock III ](/public/gsoc/2026/ultimate_alarm_clock_3) | The ultimate alarm clock, with features no other one has. And free! | Flutter | Good application design | Medium | 350 hours | | [ support more torrent clients ](/public/gsoc/flutter-more-clients) | We'd like to add support for other clients to our ruTorrent mobile interface (which of course will get a new name): [Flood](https://flood.js.org) and [Deluge](https://deluge-torrent.org). | Flutter | API, Teamwork | Medium | Discuss | -| [TaskWarrior](/public/gsoc/2026/taskwarrior) |We aim to enhance the existing app by seamlessly integrating CCSync/TaskServer for better synchronization and functionality.: | Flutter | Scalability | Medium | 175 hours | +| [TaskWarrior](/public/gsoc/2026/taskwarrior) | Backend Migration, Codebase Modularization, and Reporting Enhancements. | Flutter | Scalability | Medium | 175 hours | #### Systems diff --git a/content/public/gsoc/2026/taskwarrior.md b/content/public/gsoc/2026/taskwarrior.md index 66aebab..4d84f60 100644 --- a/content/public/gsoc/2026/taskwarrior.md +++ b/content/public/gsoc/2026/taskwarrior.md @@ -1,202 +1,39 @@ -# **TaskWarrior Mobile App - Enhancing the User Experience with CCSync** - -## **Mentor** - -**Mabud Alam** - -- Zulip Handle: [https://ccextractor.zulipchat.com/#user/856060](https://ccextractor.zulipchat.com/#user/856060) - -## **Time Estimation** - -**175 hours** - -## **Project Overview** - -[TaskWarrior](https://taskwarrior.org/) is a powerful command-line task management tool that helps users manage their tasks efficiently through a terminal interface. It offers task synchronization, advanced filtering, and script-based integration via CLI. - -## However, despite its power, **TaskWarrior lacks a modern cross-platform graphical user interface (GUI)** that can match its CLI capabilities. To bridge this gap, we built a **Flutter-based mobile app** for TaskWarrior that allows users to: - -## โœ… **What We Achieved Last Year (2025)** - -Last year, we made significant progress by: - -- ๐Ÿš€ **Migrating most of the codebase to GetX** for better state management. -- ๐Ÿ’พ Enabling sync with **TaskServer 2.0 (TS 2.0)**. -- ๐Ÿ“ฑ Improving the mobile app's usability and performance. -- Unit tests - -However, a few key challenges still remain: - -- Some parts of the app **still use the old provider-based state management**, so we want to complete the migration to **GetX**. -- We **haven't fully integrated CCSync/TaskServer 3.0** (which we built separately), and our app only supports TaskServer 2.0. -- We lack automated build releases (to **F-Droid**) and automated testing workflows. -- There's **no iOS home widget** for quick task access. -- Desktop optimization is still missing despite Flutter's growing desktop support. - ---- - -## โœ… **Your Task for This Year (2026)** - -This year, we aim to **finalize the TaskWarrior app** by: - -1. **Completing the migration to GetX**. -2. **Extending sync support for CCSync (TaskServer 3.0)** without breaking existing TaskServer 2.0 support. -3. **Automating nightly builds via F-Droid and GitHub Actions**. -4. **Building an iOS home screen widget** for quick task access. -5. **Optimizing the app for desktop usage (macOS)**. -6. **Ensuring complete test coverage** (unit, integration, end-to-end). -7. **Simplifying codebase architecture** and reducing unnecessary bloat. -8. **Maintaining the core TaskWarrior philosophy** โ€” minimal, fast, and powerful. - ---- - -## **Key Deliverables** - -### โœ… **1. Complete Migration to GetX (High Priority)** - -- A large portion of the app has already been migrated to **GetX**, but some modules still use **heavy setState** for state management. -- Your task will be to: - - ๐Ÿš€ Move the remaining sections to **GetX**. - - ๐Ÿ’ก Ensure state management is clean, reusable, and optimized. - - โœ… Remove redundant code and reduce app bloat. -- This will future-proof the app and improve scalability. - ---- - -### โœ… **2. Integrate CCSync (TaskServer 3.0) Without Breaking TaskServer 2.0** - -- **Current State:** The app supports sync only with **TaskServer 2.0**. -- **Goal:** Extend support for **CCSync/TaskServer 3.0** without breaking existing TaskWarrior 2.0 functionality. -- **Tasks:** - - ๐Ÿ”„ **Create separate data models** for TaskServer 2.0 and TaskServer 3.0. - - ๐Ÿ’ก Implement an UI to allow user which taskserver they want to use for different profiles. - - ๐Ÿ“ก Provide seamless sync functionality for both versions. - - ๐Ÿ’ฌ **Collaborate with CCSync developers** to ensure full compatibility. - -๐Ÿ’ก **Note:** Some groundwork has already been done to integrate CCSync, so your job will be to **improve, optimize, and finalize** the integration. - ---- - -### โœ… **3. Build Full Test Coverage (Must-Have)** - -- The app currently lacks complete test coverage. Your task will be to: - - ๐Ÿš€ Write **unit tests** for all major functionalities. - - ๐Ÿงช Implement **integration tests** to ensure seamless task sync. - - โœ… Enable **end-to-end testing** using Flutter integration tests. - - ๐Ÿ“Š Achieve **at least 90% test coverage** across the codebase. - -This will ensure production-level stability and prevent future bugs. - ---- - -### โœ… **4. Automate Nightly Builds (to F-Droid + GitHub Actions)** - -- One major issue is that our app doesn't have automated builds. -- Your task will be to: - - ๐Ÿค– Setup **F-Droid** for nightly builds. - - ๐Ÿ”„ Create **GitHub Actions CI/CD workflows** that automatically: - - Build APK and AAB packages. - - Push releases to **F-Droid**. - - Notify on failures via GitHub Actions. -- This will drastically simplify app distribution for users. - ---- - -### โœ… **5. Develop an iOS Home Widget for Quick Task Access** - -- Create an iOS home screen widget that allows users to: - - โœ… View pending tasks. - - โœ… Mark tasks as completed. - - โœ… Add new tasks quickly. -- This will significantly improve user retention for iOS users. -- Android widget is already done : https://github.com/CCExtractor/taskwarrior-flutter/pull/417 - ---- - -### โœ… **6. Optimize Desktop Support (macOS/Linux)** - -- Since **Flutter now supports desktop**, we want to optimize TaskWarrior to: - - โœ… Run smoothly on **macOS/Linux/Windows desktops**. - - โœ… Provide a desktop-friendly UI/UX. - - โœ… Sync tasks seamlessly across desktop and mobile. -- This will position **TaskWarrior** as a powerful multi-platform task manager. - ---- - -### โœ… **7. Ensure No Feature Regression** - -- One of our biggest concerns is **breaking existing functionality**. -- Your task is to ensure that: - - โœ… TaskServer 2.0 sync continues to work as-is. - - โœ… TaskServer 3.0 integration works without conflict. - - โœ… The app does not introduce unnecessary bloat or complexity. - ---- - -### โœ… **8. iOS App** - -- Release the first version of the Flutter app in AppStore -- Test all the features and make sure all works. - -### โœ… **9. Propose Minimalist Improvements (Optional but Appreciated)** - -- We **don't want to make TaskWarrior bloated** like other task managers. -- However, we encourage you to propose: - - Minimalist UI improvements. - - Feature enhancements that **align with TaskWarrior's philosophy**. - - Improvements that boost productivity without adding complexity. - ---- - -## โœ… **Why Is This Project Important?** - -By completing this project, you'll help: - -- ๐Ÿš€ Make **TaskWarrior a powerful cross-platform task manager**. -- ๐Ÿ”„ Provide seamless sync between mobile, desktop, and CLI. -- ๐Ÿ“ฒ Improve the overall user experience for TaskWarrior users. -- ๐Ÿ’พ Ensure TaskWarrior remains fast, minimal, and focused. - -We don't want bloat โ€” we want **efficiency, speed, and simplicity**. - ---- - -## โœ… **Tech Stack** - -Here's the preferred tech stack: - -**Frontend:** - -- โœ… **Flutter + Dart** (mandatory). -- โœ… **GetX** for state management. - -**CI/CD:** - -- โœ… **GitHub Actions**. -- โœ… **F-Droid** for nightly releases. - -**Testing:** - -- โœ… Flutter Test / Integration Test. - ---- - -## ๐Ÿ“œ **Ready to Contribute?** - -๐Ÿ‘‰ **[Start the Qualification Task](https://ccextractor.org/public/gsoc/takehome)** - -๐Ÿ’ฌ **Questions?** -Put your questions in Zulip. - ---- - -## ๐Ÿ“œ **Helpful Resources** - -- [inthe.am](https://github.com/coddingtonbear/inthe.am) - Open-source TaskWarrior sync server. -- [Freecinc fork](https://gitlab.com/wt0f/taskd) - Self-hosted TaskWarrior server. -- [Golang TaskServer](https://github.com/szaffarano/gotas) - Alternative TaskServer. -- [Wingtask](https://wingtask.com/) - Task management stack. - ---- - -โœ… **We're super excited to see how you contribute. Let's make TaskWarrior the most powerful open-source task manager โ€” without any bloat! ๐Ÿš€** +# **TaskWarrior Mobile App** +# GSoC 2026 Goals + +**Mentors:** +- [Shubham Ingale](https://ccextractor.zulipchat.com/#user/862906) +- [Mabud Alam](https://ccextractor.zulipchat.com/#user/856060) + +--- + +### 1. Remove CCSync API related code and make components usable to only Taskchampion Integration +As We are no longer using CCSync backend APIs we need to clean code to remove those API calls and other related code to it. + +### 2. Rust Library: Rust library that we are using to manipulate Replica of taskchampion. +It may include following sub goals: +- a. Modularize it +- b. Remove binaries from Repository (also from commit history) and make library compile automatically on every build +- c. Add support for missing variables in application + +### 3. Modularize Application to arrange files of Taskchampion and v2 +Structure may look like: +``` +. +โ””โ”€โ”€ app/ + โ”œโ”€โ”€ models + โ”œโ”€โ”€ modules + โ”œโ”€โ”€ routes + โ”œโ”€โ”€ services + โ”œโ”€โ”€ tour + โ”œโ”€โ”€ v3 (rename) + โ””โ”€โ”€ taskchampion +``` + +### 4. Static website for taskwarrior project of CCExtractor on branch fdroid-repo +- a. Static website about CCExtractor's Taskwarrior project +- b. Renaming branch `fdroid-repo` to `public-site` +- c. Have a log of Nightly and Commit that produced it + +### 5. Implementation of reports +- Refer: [CCExtractor/taskwarrior-flutter#418](https://github.com/CCExtractor/taskwarrior-flutter/issues/418) \ No newline at end of file From a004b272befce04822699318795b3e93e8a3c4b3 Mon Sep 17 00:00:00 2001 From: Shubham Ingale <77089227+SGI-CAPP-AT2@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:49:22 +0530 Subject: [PATCH 2/5] update 6th goal --- content/public/gsoc/2026/taskwarrior.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/content/public/gsoc/2026/taskwarrior.md b/content/public/gsoc/2026/taskwarrior.md index 4d84f60..8ee0762 100644 --- a/content/public/gsoc/2026/taskwarrior.md +++ b/content/public/gsoc/2026/taskwarrior.md @@ -36,4 +36,15 @@ Structure may look like: - c. Have a log of Nightly and Commit that produced it ### 5. Implementation of reports -- Refer: [CCExtractor/taskwarrior-flutter#418](https://github.com/CCExtractor/taskwarrior-flutter/issues/418) \ No newline at end of file +- Refer: [CCExtractor/taskwarrior-flutter#418](https://github.com/CCExtractor/taskwarrior-flutter/issues/418) + +### 6. UI and UX Improvements +Some of the following interfaces are to be implemented as in given mockups +Issue 1: https://github.com/CCExtractor/taskwarrior-flutter/issues/421 +Issue 2: https://github.com/CCExtractor/taskwarrior-flutter/issues/385 + +#### References +1. https://github.com/CCExtractor/taskwarrior-flutter/issues/382 +2. https://github.com/CCExtractor/taskwarrior-flutter/issues/378 +3. https://github.com/CCExtractor/taskwarrior-flutter/issues/385 +4. https://github.com/CCExtractor/taskwarrior-flutter/issues/421 \ No newline at end of file From 20fff0ded1cbca993ff7c5b816f6d4726699593c Mon Sep 17 00:00:00 2001 From: Shubham Ingale <77089227+SGI-CAPP-AT2@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:50:39 +0530 Subject: [PATCH 3/5] list format --- content/public/gsoc/2026/taskwarrior.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/public/gsoc/2026/taskwarrior.md b/content/public/gsoc/2026/taskwarrior.md index 8ee0762..0766eaa 100644 --- a/content/public/gsoc/2026/taskwarrior.md +++ b/content/public/gsoc/2026/taskwarrior.md @@ -40,8 +40,8 @@ Structure may look like: ### 6. UI and UX Improvements Some of the following interfaces are to be implemented as in given mockups -Issue 1: https://github.com/CCExtractor/taskwarrior-flutter/issues/421 -Issue 2: https://github.com/CCExtractor/taskwarrior-flutter/issues/385 +- Issue 1: https://github.com/CCExtractor/taskwarrior-flutter/issues/421 +- Issue 2: https://github.com/CCExtractor/taskwarrior-flutter/issues/385 #### References 1. https://github.com/CCExtractor/taskwarrior-flutter/issues/382 From 2c7e55f7ad2f6b18d2531a52de7db60401060be6 Mon Sep 17 00:00:00 2001 From: Shubham Ingale <77089227+SGI-CAPP-AT2@users.noreply.github.com> Date: Mon, 9 Mar 2026 18:22:07 +0530 Subject: [PATCH 4/5] Update ideas_page_for_summer_of_code_2026.md --- content/docs/ideas_page_for_summer_of_code_2026.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/ideas_page_for_summer_of_code_2026.md b/content/docs/ideas_page_for_summer_of_code_2026.md index 3ad9774..53016e2 100644 --- a/content/docs/ideas_page_for_summer_of_code_2026.md +++ b/content/docs/ideas_page_for_summer_of_code_2026.md @@ -125,7 +125,7 @@ a bit after a fantastic run on our core tool. | ----------- | ----------- | ----------- | ----------- | ----------- | ------ | | [ Ultimate Alarm Clock III ](/public/gsoc/2026/ultimate_alarm_clock_3) | The ultimate alarm clock, with features no other one has. And free! | Flutter | Good application design | Medium | 350 hours | | [ support more torrent clients ](/public/gsoc/flutter-more-clients) | We'd like to add support for other clients to our ruTorrent mobile interface (which of course will get a new name): [Flood](https://flood.js.org) and [Deluge](https://deluge-torrent.org). | Flutter | API, Teamwork | Medium | Discuss | -| [TaskWarrior](/public/gsoc/2026/taskwarrior) | Backend Migration, Codebase Modularization, and Reporting Enhancements. | Flutter | Scalability | Medium | 175 hours | +| [TaskWarrior](/public/gsoc/2026/taskwarrior) | Backend Migration, Codebase Modularization, and Reporting Enhancements. | Flutter, Rust | Scalability | Medium | 175 hours | #### Systems From 1b7dd1c40ae756fefd490a460bfba14815a4e269 Mon Sep 17 00:00:00 2001 From: Shubham Ingale <77089227+SGI-CAPP-AT2@users.noreply.github.com> Date: Mon, 9 Mar 2026 19:28:46 +0530 Subject: [PATCH 5/5] qualification task --- content/public/gsoc/2026/taskwarrior.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/content/public/gsoc/2026/taskwarrior.md b/content/public/gsoc/2026/taskwarrior.md index 0766eaa..7500bfd 100644 --- a/content/public/gsoc/2026/taskwarrior.md +++ b/content/public/gsoc/2026/taskwarrior.md @@ -1,5 +1,5 @@ # **TaskWarrior Mobile App** -# GSoC 2026 Goals +## GSoC 2026 Goals **Mentors:** - [Shubham Ingale](https://ccextractor.zulipchat.com/#user/862906) @@ -47,4 +47,10 @@ Some of the following interfaces are to be implemented as in given mockups 1. https://github.com/CCExtractor/taskwarrior-flutter/issues/382 2. https://github.com/CCExtractor/taskwarrior-flutter/issues/378 3. https://github.com/CCExtractor/taskwarrior-flutter/issues/385 -4. https://github.com/CCExtractor/taskwarrior-flutter/issues/421 \ No newline at end of file +4. https://github.com/CCExtractor/taskwarrior-flutter/issues/421 + +## Qualification Task + +Add a function query_task() in rust lib (tc_helper) to search for a task(s) using different attribute(s) such as uuid, status, tags(+/-), project. Use that fuction somewhere in flutter side. + +Send link for that branch **do not open PR to the repo** and also add link in proposal. \ No newline at end of file