Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Firebase and other potential tdo enhancements #18

Open
mstijak opened this issue Jan 4, 2017 · 7 comments
Open

RFC: Firebase and other potential tdo enhancements #18

mstijak opened this issue Jan 4, 2017 · 7 comments

Comments

@mstijak
Copy link
Owner

mstijak commented Jan 4, 2017

I figured that Firebase could be used to remove some of the limitations which are now present in tdo:

  • Concurrent use is not allowed
  • Boards cannot be shared between users
  • No proper login, github tokens feel hacky

Firebase would enable:

  • Proper user login (Google, Facebook, GitHub)
  • Concurrent use on multiple devices with real-time sync
  • Shared boards between users
  • Offline use

I'm sure all these would be great, however, I'm not sure how much time this would take and how many people would be interested in these features?

What are the other things missing in tdo?

This was referenced Jan 4, 2017
@nnako
Copy link

nnako commented Jan 4, 2017

Firebase seems huge and it does not seem to be open source. Or do you mean an other "firebase"? What is the structure you have in mind? Firebase as the backend and tdo as the user interface frontend?

I would like to see the following features ( some as a repetition of contents of #7 ):

USER INTERFACE

  • operation on mobile devices (there seem to be no "DoubleClicks" on tablets)

FUNCTIONALITIES / DATA MODEL

  • use of attributes per task, which could be included in calculations, e.g.
    • integration of optional "task deadlines" to specify the expected / required completion date
    • integration of "task scores" to provide a transparent completion status
    • integration of "task priority" to specify general priority within a list
  • assignment of tasks to persons (responsible for task completion)
  • specification of dependencies between tasks (could be done using "attributes")

CONNECTIVITY

  • export of tasks, lists and boards into plain text files on local (hosting) system
  • thus providing an interface for (self hosted) version control (using GIT)
  • modular backend functionalities implementable in Python (these access data model and UI)
  • modular backend functionalities executable on a self hosted server

@mstijak
Copy link
Owner Author

mstijak commented Jan 4, 2017

@nnako

Yes, I meant Google Firebase. It has a free plan which seems sufficient. Also, please note that tdo is based on Cx which is free for projects of non-commercial nature.

The issue regarding mobile devices should be easy to fix. I wasn't aware of it.

I'm not sure regarding other features. I built tdo as a side project to manage my tasks. I wanted simplicity and keyboard support. What you're proposing is a full blown project management solution. What is the gain for people who are currently using tdo from all that? This seems to me like a completely new product.

@nnako
Copy link

nnako commented Jan 4, 2017

@mstijak

thanks for your replies.

My goal would be to push the "frontend user interface side" of tdo just a bit further in order to display not just the basic TODO (GTD) features but some "control oriented" items as well. In my daily work as a private person, I try to combine calendar items from different sources and different persons. All these items have the character of TODOs, so I want to get away from using different programs (Thunderbird, LotusNotes, EXCEL, remind, ...) but have a universal application. The solution I see is:

  • creating a universal user interface (tdo seems perfect for this) and
  • creating a common text-based file interface to store exported items (example: todo.txt)
  • developing import and export filters to convert from the formats to the universal file format

So, file-based import and export would be essential for me in order to split and merge these different lists.

I have about 20 different private projects at the same time with different groups of team members. And because of this number of projects, I need further functionalities (like "deadlines", "scores", "responsibles", ...) directly displayed on the frontend user interface. For every project member to see and for the backend to access them. So that I don't have to track every single item myself, but the system would be able to see all the measures. What I call "backend" is the layer of functionalities which take these "scores", "deadlines", ... and combine them in a reasonable way and maybe generate further actions (automatically). For this backend to grow, I would wish for a simple Python interface, as I already have developed most of the functionalities.

This programming interface could be my own contribution. For all "normal" users it would be optional to use. Not mandatory. They don't have to take note of it. So, in my view, tdo just needs these following additional features which I would like to support developing:

  • "attributes" like score, deadline, responsible person,... for each task
  • file-based import and export of tasks in a format which is to be defined
  • a good defined modular function interface e.g. for python modules (or JavaScript if you like)

The non-commercial nature is ok for now, but I would like to be able to switch to commercial mode maybe in a few years, depending on the "success" of these projects and the experiences we make while working with the tdo system. In general, I prefer completely free open source solutions for these things. And I would always try to strip off those bindings in the long run.

For tdo we could try to put together these things without damaging the existing features.

What do you think?

@mstijak
Copy link
Owner Author

mstijak commented Jan 5, 2017

@nnako: I'm sorry to disapoint you, but I have no interest in implementing these features. Feel free to fork the project and implement these by yourself.

@nnako
Copy link

nnako commented Jan 5, 2017

@mstijak: no problem. A pitty, but that's life sometimes. I would be happy if you could occasionally help me find relevant places within the tdo code. I'm not sure if I will be able to fully understand the application in order to get started with my implementations.

Thank you for tdo and thank you for any help.

@AlexDvorak
Copy link

@mstijak I find tdo to have all i desire but one feature, a due date. I would be more than happy to implement this myself, however I would need to know where I would implement this feature in the codebase. I was thinking possibly when a user edits a task they would have at the front HH:MM/DATE where DATE is either tdfor today,tm for tomorrow or M/D/Y where the last one is chosen from either that or D/M/Y in settings. Could you direct me to the proper part of the codebase?

@mstijak
Copy link
Owner Author

mstijak commented Sep 7, 2018

@AlexDvorak I think that's a good idea. I have started working on the new Firebase based tdo and had a similar enhancement in mind: codaxy/tdo#7

In order to implement this feature, we should add a parsing function to extract data from the entered text. Also, the task render function should be updated to present additional information.

This file is a good starting point.
https://github.com/codaxy/tdo/blob/master/app/routes/board/Task.js

Since starting v2, I have no plans to maintain this repository anymore. If you wish to submit a PR, please do it in the new repository - https://github.com/codaxy/tdo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants