API for streber (early discussion) / #2310

Just a few ideas what an API for streber could do:
  • add a "time tracker"-widget: little symbol in (windows/Mac/Linux-)taskbar which can be used to easily add efforts on "my tasks". The widget reads out "my tasks" and I can easily change tasks.
Instead of:
  1. opening streber
  2. searching/opening the specific task
  3. add effort
  4. remember when I started and stopped the effort
  5. filling out the effort-form
  6. saving
It will be
  1. right click the symbol
  2. left click the task
  3. (optional) type in some "text"
=> start/end time is done in time tracker. time tracker adds the efforts
  • do some cool exports
    • Export some data in XLS/XML/...
    • synchronize database with other programs (e.g. Exchange, local Outlook,...)
  • cronjobs could be doing some cool things as repeating / regular tasks
  • streber could do some repository-jobs (SVN integration,...); we could write some lines of code to integrate an existing SVN-repository within streber (read-only). So all repository-jobs could be done with a tool, which was written for such things. (I have some headaches with inflating streber to a full-features SVN-Tool *G*)
  • ...

15 Comments

pixtur

Oct 5, 2006
version 3
what is an API
I heard, that google does provide an API. But how excatly would such an API look like?

Are there some links which I can read?

binder

Oct 5, 2006
version 4
some links

first some lazy explanation

with an API (application programming interface = Programmierschnittstelle) you can simply make some queries on a database (mostly) regardless which language you use. The API could be adressed via various programs or scripts (PHP, PERL, .NET, exe,...). Perhaps you have installed google desktop? This piece of software adresses google API to get the requested information like weather, news, ...
Principially it's like a function; you give some input (e.g. what information based on a few parameters you want to have) and you get some output (hopefully the answer you requested). The API can not also give you read-access, but can give you write-access to the database.

For streber this could be:
  1. please give me a list of tasks of person with id 1234
  2. please add some effort for person 1234 today from 12:00 till 14:00 on task 4321
  3. please give me a list of task, which are more than 75% done
  4. please give me a list of tasks, which are overdue
  5. ...
of course you can secure the API with login/password or other codes. It's nothing more different than accessing the database via strebers PHP-codes itself, but in a more simpler way. That way you can solve some problems like: almost forgotten:
And one of the best things, you can write a litte .NET programm, which synchronizes strebers database with Exchange (or Outlook). This is really cool and one key feature for a good PM-software. With this you can take your dates and tasks with your PDA, mobile phone, ... whatever can synchronize with your exchange or outlook (of course a plugin for iSync could be written, too!)

tino

Oct 5, 2006
version 4
Very amazing...
Hey Thomas,

I hang upon your words and I dreamed for a while - that would be sooooo cool to put streber in the direction of such an intersting, easy-handling project management tool - wow.

I love the widget idea...

With you and burger (I think his name is Thomas, too isn't it) we got so much input and nice ideas which is really overwhelming!

binder

Oct 5, 2006
version 5
Reply to Very amazing...
hi tino, just to make the team clear:
  • = Esther Burger
  • = Thomas Binder
*G*

but back to topic. Dreaming is legal! ;)
the API-thing is nothing we could write just like that! ;) we need some strategy and options, what an API could do. we have some heavy brainstorming ahead of us! *G*

pixtur

Oct 5, 2006
version 2

binder

Oct 5, 2006
version 2
Antwort auf Sounds very cool...
yes, of course, this would be some kind of API, but also lacks authentication; streber must decide, whether you are allowed to retrieve (or put) the data.

pixtur

Oct 6, 2006
Well. There already is the TUID-Parameter from the notification mails:
https://www.still-scene.org/index.php?go=activateAccount&tuid=f8b2af06749cb6f620c508c8467d49

This parameter is essentially identical with an authorisation.

binder

Oct 6, 2006
version 3
Antwort auf Well. There already is the TUID-Parameter from the notification mails:
there are numerous ways to add authentification. like one of these:
  1. use TUID (but this is used for *T*emporary use)
  2. the API must be adressed via GET/POST-values, one of them would be a code, unique for each user
  3. the API must be adressed via GET/POST-values, two of them would be login/password for users
  4. think of any others... *G*

madlyr

Oct 10, 2006
version 7
it's >>must be<< :-)
Hi, after almost 2 week of holidays :-)
I see, that binder propose such a thing I'm thinking about too :-).

This kind of widget in my opinion is a >mu be< feature.

Some of my directions.

We could use Flash extenders like Zinc or Screenweaver and get the power of Flash and programs which integrate Flash with hundreds of native OS functions.

Zinc - http://www.multidmedia.com/
pros:
  1. Windows, Mac OSX and Pocket PC versions
  2. hundreds of external functions
  3. common code for different platforms (except of native OS functions)
  4. has support, this product is evolving fast
  5. strong encryption/decryption build into it
cons:
  1. commercial product (but there is fully functional trial with nag screen, we could ask them if we could obtain to non commercial product their license),
my firm has bought Windows version so at least we could release Windows projectors :-)
  1. buggy from build to build
Screenweaver - http://www.screenweaver.org
there are 2 versions - 3 and brand new HX

version 3 pros:
  1. very stable in runtime
  2. fast
  3. open source and free
version 3 cons:
  1. less functions than Zinc (but it's really enough :-) )
  2. only Windows platform
  3. developing is not active, most effort is on HX
version HX pros:
  1. crossplatform between Win32 and MAC OSX
version HX pros:
  1. brand new product, stability not known
  2. ugly tools (command line)
  3. strange api, not flas a'like
I know Screenweaver since it's commercial version (3 becomes open source), my firm used this many times and mostly use Screenvweaver, not Zinc (which was not so stable and sometimes do not work properly on naked Win 9x platform).

Do we need API widget crossplatform?

I know, what you may say: Flash? But it's really in my opinion very good solution.
Regardless much better for us, that .Net in my opinion.

binder

Oct 10, 2006
version 2
Antwort auf it's >>must be<< :-)
hi madlyr,

hope your holiday was quite relaxing! ;)

We did some early version "proof of concept" with .NET and it feels good! We wrote just a little tray-icon-widget, which pops up, if you have new tasks. just a few lines of code and it works just fine. This would be easy to extend for like:
  • TimeTracker
  • outlook sync
  • exchange sync
  • ...
personally I'm not so convinced about the flash-things around. ;) Especially when flash needs to cooperate with windows...

writing some widgets for MacOS X should be easy, too! We have no experience in MacOS X widgets, but they should do even better with fast hacking solution! ;)

If we have the API-features ready, it should be very easy to write litte programs in whatever programming language you like!

pixtur

Oct 10, 2006
Maybe we could write and discuss some specs...
although doing implemented tests is just fine, I am a little bit affraid of finished facts. Such thing as an API should be pretty stable for some years. So we should write some spects (with sample code in python and .NET) and discuss this. I made this for the file handling and it gave a tremendous improvement.

binder

Oct 10, 2006
version 2
Antwort auf Maybe we could write and discuss some specs...
jupp. specs-discussion would be the next step! I thought, it would be too early, but let's begin! *G*
for a start some quick drafts:

general purpose

  • retrieving information from streber without a browser-frontend
  • changing information stored in streber database
  • exchange information with streber with third-party software (e.g. EMail-client, external database, ...)

transfering information

defining procedures

I would use the established naming of functions in streber with prefix "get" to read specific information:
  • getProjList => all Infos, that projList offers for that authenticated user
  • getprojViewTasks => all Infos on a project-ID for that authenticated user
  • ...
On the other side I would use prefix "put" for storing/changing information in streber:
  • putEffortNew => book new effort (requires all information like "start", "end", ...)
  • putPersonNew => add new person
  • ...
link for WSDL: http://www.w3.org/TR/wsdl.html

pixtur

Oct 11, 2006
New folder [[API]] for writing the specs
I tried to move most information from this discussion to the new folder API. In there we should start to finetune the spec.

luchyx

Nov 4, 2008
View comment
I'm planning to add a widget (maybe desktop/maybe web) to track the time consumed on an specific task. It's a like a time-tracker but pluged in to streber so you can play|pause|record a task effort and submit to streber.
I can write it in pure HTML + ajax or Adobe Air.
These enhancement will make really easy the effort submission task.

pixtur

Nov 5, 2008
version 2
yeah...
an API would solve lots of problems. But implementing an API would require to refactor field queries. And I am sooo scared about this task :)

BTW: We should also refer to original page after submit to prevent double posts

 

Comment / Update