mstijak / tdo

Keyboard driven, hackable TODO list
https://mstijak.github.io/tdo/
MIT License
183 stars 24 forks source link

[enhancement] Set data storage location #13

Open argorain opened 7 years ago

argorain commented 7 years ago

Hi. I love tdo and it would be great if I can set location where are data stored. Gist storing is cool, but I use owncloud and it would be great to sync my notes via that like file. Thanks a lot, Vojtěch Vladyka

mstijak commented 7 years ago

I agree, that would be great. Dropbox and Google Drive are also very interesting options.

It seems that Google supports implicit auth flow which could be used for this, although I'm not sure if it would work with our hash based routing.

Unfortunately, GitHub doesn't support this auth flow and it would require some kind of server-side middleware.

This is a big task so let's see if there are more people who would like the same feature.

argorain commented 7 years ago

And where are data stored now when I haven't Gist connected? How about just give option to set location of that file?

mstijak commented 7 years ago

By default, the data is stored in browser's localStorage.

argorain commented 7 years ago

I see... I am thinking if is there possibility to store data in file somewhere else, but I don't think so...

nnako commented 7 years ago

Hi,

I would be very much interested in integrating / handling lists stored locally (at least as an alternative to Gist storage). I would offer my support for implementing / testing this kind of feature (if support is needed / welcome).

At first, one question about the application structure. The browser address link always says something like this:

https:// <server_name> / <path_to_indexfile> / #<identifier>

(1) where is the <identifier> locally pointing to? (2) how is that (temporary local) file structured?

In a first step, an additional tool could grab local portions from the browser's storage and synchronize it with a remot (e.g. GIT) repository on user demand. Likewise updates could be fetched from the same remote repo. Authentification could be organized in the standard GIT way?

mstijak commented 7 years ago

The identifier is just an id pointing to the active board. By putting it in the url, boards become linkable.

Regarding storing lists locally, I'm not sure if that is the right path for tdo. I'm more interested in cloud features offered by Firebase, such as cloud login, real-time database and hosting. It would be great if someone is willing to help me integrate that.

If you really need a local tdo server, feel free to fork it and adapt it to your needs. That should be rather simple to implement.

nnako commented 7 years ago

Do you have an "outline" of the path you'd like to go with tdo? Would you like to share it?

I will try to sketch an outline about what I would have in mind regarding a further development of tdo (in one of my next posts). Maybe (hopefully) a combination would be a possible solution? 1+1=3 ;-)

Some small requirements (all points to make the utilisation more "crisp" for real projects):

USER INTERFACE

DATA MODEL

FUNCTIONALITY

RELIABILITY / QUALITY

Anyway, I could imagine supporting you with integrating cloud operation, real-time database and hosting. But I have to say that I am a "generalist". I know lots of programming languages as I (in the past) always adapted to existing project environments and picked any language necessary to contribute to the task at hand (ASSEMBLER, C/C++, JAVA, HTML, CSS, JavaScript, PHP, Python,...). But I am not a real "specialist" in any of them. Rather in the field of "development environments". The same with other technologies (microcontrollers, hardware design, content management, ...) . So, I might be rather a help regarding INFRASTRUCTURE, QUALITY and HELPFUL DOCUMENTATION. If that's ok for you, we can give it a try.

mstijak commented 7 years ago

@nnako Sorry for a late reply. I don't have an outline, so I wrote my ideas in a new issue #18. Please comment there what would you like to see in tdo and why.

nnako commented 7 years ago

@mstijak Just a short question about the storage of tdo's data (when not using a Ghist account). Where exactly do I find the user's tasks / lists / boards in the browser's local storage? And what data structure is used for this? I could figure it out, I guess, if I had at least a starting point within the source code. Any help?

mstijak commented 7 years ago

@nnako You can find it here: https://github.com/mstijak/tdo/blob/master/app/data/middleware/persist.js. You can simply type localStorage.tdo in the console and you'll see all data (json encoded).

jacekk commented 7 years ago

@nnako any chrome-like browser image

Memphizzz commented 6 years ago

@mstijak I've just discovered tdo today. Wonderful work! I already dropped Wunderlist from all my devices and replaced it with tdo.

@nnako

So, I might be rather a help regarding INFRASTRUCTURE, QUALITY and HELPFUL DOCUMENTATION. If that's ok for you, we can give it a try.

I can provide a VM (any OS) on my server with good disk space, a 100MB/s internet connection (EU) and publish on whatever port we need. Got some domains for testing too.

Got a Nextcloud server running too, would love to get that as a storage location. Alternatively as you mentioned Git, GitLab CE integration would be nice too. Unfortunately I'm a C# developer, dunno how much I can help with that.

rhijjawi commented 6 months ago

Yeah how about you don't click that link.