SoK/2021/StatusReport/Sai Moukthik Konduru

From KDE Community Wiki

foKus

Abstract

Currently Plasma Mobile is a budding platform, and there is a need for quality apps to make the platform bloom. Productivity apps are very important for any platform, be it desktop or mobile. To make the productivity suite of plasma mobile platform better by a notch, we need a simple, yet effective app and Fokus will just be that. Fokus will be a task management app that will help the user stay organized and manage their day-to-day tasks, thus making them productive. Many of the current to-do apps, miss the right balance and end up being counter-productive. The goal of Fokus is to be the perfect productivity app, and below are the features that will make it the best. Features of the app:

  1. Simple yet beautiful UI.
  2. Ability to quickly enter the task.
  3. Ability to reorder the tasks.
  4. Ability to prioritize the tasks.
  5. Ability to set a reminder for the tasks.
  6. Ability to time the completed tasks, to keep track of our performance.
  7. Have a "focus mode", which helps the user to focus on the tasks, by locking out the unproductive apps(like social media).
  8. Cloud Sync, to access the list from any platform and from anywhere.


Why a new app if Calindori( the calendar app of plasma mobile) has the task management feature built into it?

Calendar apps are great for static events like meetings, appointments, etc. Tasks management apps are great for actionable items(tasks) that we need to do in a day or a week. Sometimes the Calendar might become overpopulated with the “tasks”(which may be small things like listening to a podcast, walk the dog) and might be counter-productive. Using the Calendar and the Task management app in tandem together, we can be our most productive selves. As the task management app isn’t heavy, it won’t affect the performance of the device(if that is your concern).


Goal for the SoK

As the duration of Sok is less than three months, it may not be possible to develop the perfect app. By the end of Sok, Fokus should have the basic functionalities (the first few features from the above list) with a simple and elegant design. As the KDE community is ever-growing and active, we can keep on adding more and more features to the app, and make it better every day. There is a lot of potential in this app, and through Sok, I plan to set a strong platform for it to grow.


Mentor


Links


Work Done

As I didn't find any other projects that I could use as the starting point for my project, I had to start from scratch. I used the basic Kirigami template to start my project.

  • Created a simple UI (still in progress, need to refine it a bit)
  • Created a to-do item model, based QAbstractListModel, which is for individual lists of tasks.
  • Created a to-do list model, again based on QAbstractListModel, which will enable us to create multiple lists of tasks.
  • Created a local storage system, which stores all the app data in JSON format.
  • Todo List has two collapsable sections, "ToDo" and "Completed".
  • Todo Items are now draggable and can be reordered by dragging and dropping.
  • Todo Items can now be prioritized.

Here's the link to the repository of the project Fokus, which I had built from scratch during the time of SoK: https://invent.kde.org/rowdyninja/fokus Here are the links to the blog posts that I have written during the time of SoK : https://mouktech.wordpress.com/2021/01/14/the-new-beginnings-season-of-kde/ https://mouktech.wordpress.com/2021/02/22/season-of-kde-project-update-1/


Things that I've learned

  • I did not understand the concepts of Object-Oriented Programming as I didn't build any project before. But by working on FoKus, the concepts are getting clearer.
  • I got a better understanding of pointers.
  • My debugging skills are improving.
  • I understood the importance of the knowledge of Data Structures.
  • I am learning how to use git(version control)
  • My communication skills are getting better as I am constantly in contact with my mentor.
  • I have learned a bit of the Qt framework, and also the Kirigami.
  • I now understand the "model-view-delegate" concept.
  • How to use JSON for storing app data.
  • I have learned that there is no such thing called a "dumb question".
  • Most importantly I have learned that perseverance is the key to success.

Challenges that I've Faced

  • As I was new to programming, I found it difficult to learn QML, Kirigami, Qt as there were no video tutorials(I was used to them back then).
  • I didn't know how to utilize the documentation of a framework properly.
  • I found it challenging to work with C++ as I used python as my primary language(to learn data structures and other programming basics).
  • It was hard to write code using kate(until I started using Qt creator) as it didn't have an auto-complete feature(maybe I don't know the plugin).

What's Next?

As of now, Fokus is still a baby project, but I have accomplished what I wanted to by the end of SoK. My mentor Devin Lin and I are planning to keep working on the project and make it a complete productivity package. We will be working on adding the leftover features from the list above, and also we are planning to add a Pomodoro timer and also a white noise generator, which will help increase the "Fokus" of the user. SoK gave me an opportunity to explore the world of open source. I met many amazing people throughout this journey and have learned a lot of things. I am grateful to the organizers for providing such a great platform for beginners to introduce themselves to this wonderful world of opensource.


Contact Me