Todo-txt format in Api Baserow

idea

I would like a Baserow api to have the support to read the todo-txt format, so I could write text files and send to baserow

concept

sample

X (A) one more another task test  +project @context dfdadfd 2018-08-02 #2018-08-02 due:2018-08-20

sample object in url

object:{
check: "true", 
priority: "A", 
describe: "one more another task test",
project: "project",
context: "dfdadfd",
date_start: "2018-08-02",
date_due":2018-08-20"
}

sample url rest in api Baserow

https://baserow.io/api/todo/check/<bool>/priority/<string>/describe/<string>/project/<string>/context/<string>/datestart/<string>/datedue/<string>

reason

  1. I know many people who use the todo-txt format to manage their activities, daily tasks
  2. The Baserow api can offer a support layer for the todo-txt format to help these people migrate to Baserow
  3. Libraries written in python and in various programming languages are already able to read and write this text file format, which would be easy to support in the Baserow api
  4. This can unite the open source todo-txt format community with Baserow
  5. There are several programs that support the todo-txt format - Baserow as well as Seatable or Airtable are programs that do not support this file format, it would be innovative if Baserow had support for this file format

reference

Todo.txt is a specialized, context-specific, format for tracking to-dos. I don’t really see how it fits in a general-purpose database like Baserow, since it would then have to manage specific tables and relationships for you.

In the future Baserow might have some form of “apps” besides the main “database” application and then it could make sense for a specialized app to perform such task. Ideally, Baserow will enable people to create these apps through plugins and make it simple to install and use them.

2 Likes

Since you already mentioned you would be calling the Baserow HTTP API, what stops you to convert the format into a set of generic API calls to Baserow at the moment?

2 Likes

Hey guys.

I would like to contribute to this specific topic. Please, see this Using the Baserow api to import tasks from a txt file(todo.xt), here I explain step by step how to use 3 python libraries(requests, json, todotxtio) to import data in todo.txt to baserow.

Feels like a plugin could work nicely with this. But I question how you’ll interact with the data. A todo list is not something static. Do you upload once ? What happens when you need to update, do you update in baserow ? Or do you update the todo.txt, and re-upload ?
It’s important to think of the lifecycle of data, because that will dictate how you design the whole thing.

Hi @lucw, how are you?

Before answering some of your questions, I’d like to say thank you very much for commenting here.

thanks for this feedback here.

Please, see this: Using the Baserow api to import tasks from a txt file(todo.txt) for more informations if possible.

This is true.

Yes.

I didn’t think about updating the file, just sending the file data in Baserow with the http-post method, and viewing the information with the http-get method.

I would like to name “two data flows”: an ideal data flow and the data flow I created.

1. In an ideal flow of data it would be something like this:

1.1 The best way would be that every change in the txt file is saved locally in SQLite and the update is sent to Baserow with date and time.

1.2 In case I need to know which tasks were executed, I have the complete history in Baserow with date and time.

1.3 However, if I need a backup, as I have a local copy, it’s easy to go back to the old version.


2. The data flow I developed is very different from this ideal flow:

2.1 I thought that for most developers having “VSCode” is something very easy to install.

2.2 Then, in general, you install VSCode with an extension called “local-history” that generates an automatic copy of the files you modify in VSCode.

2.3 Then, I installed python to run this algorithm which loads the todo.txt file only once in Baserow.


Which of these data streams is the best: 1 or 2? Is this thought interesting? What do you think of these ideas?

I highly suggest you start by maintaining, and using your todo list in baserow first. Use it for two weeks like that, just in baserow. Then after two weeks, you’ll have a better idea of what you need to build exactly. Maybe you’ll find that you don’t need to build anything. Maybe you’ll want to manage in a todo.txt file and smartly import and merge. This is just my opinion, as someone who helps other people bring their program ideas to life, the most important thing is to have a very clear idea of the need first.

An interesting idea I just thought of with your feedback would be to create a task data model following the todo.txt spec. For example, a plain text file(todo.txt) would be:

A) read books about open source #read +todo @books 

but a Baserow database could be something like this: