GTG! Web: The Final GSoC Report

Wow! 12 weeks just flew by and I really can’t believe it’s over.
Applying for GSoC, especially with an organization as cool as GNOME, was one of the best things I’ve ever done.
I would like to say how great and wonderful my mentors Bertrand and Lionel were (and still are 😉 ), and it was great to meet them at GUADEC and work with them. The entire GTG team is awesome and it’s a really friendly community.

For my last week I did some documenting and cleaning up the code. But that doesn’t mean that this project is over. Au contraire!
Even though I did what I planned to do for the summer of code, there’s still a lot of work to do and I’m looking forward to working on it 🙂

Getting things GNOME! Web: The Penultimate Report

From my last report I managed to get home from GUADEC, which was great! The trip home.. not so much. The plane was on time, trains in Netherlands also, actually I can’t stop talking about how great the trains in Netherlands are. But the train from Budapest to Croatia was 3 hours late, mostly because of the border control which actually unscrewed the ceiling panels from train cars, and checked if anything is in there. I really hate border control.

Well, back to my project.

What’s new this week: a few css improvements – css is now a bit more organized and easier to work with. Desktop GTG switched from the old gtg ids (e.g. 3@1) to uuids a while ago which is now done in gtgonline too. Since the introduction of tag color support last week, someone asked me where are the colors coming from, so now there is a color picker for tags. It needs polishing, but it works quite nicely.

Tag color picker

Finally you can have your tags all in shades of pink and purple

For next week: It is the last week of summer of code, so I’m going to work on documentation, cleaning up the code and other similar and related activities, yeey! 🙂

Getting things GNOME! Web service: “GUADEC Report”

Today is the last day of GUADEC and tomorrow morning I’m going back home. This was my first GUADEC and my first open source conference and it was an awesome week! It was great to meet my mentors and fellow students, and also a lot of other gnome hackers. The talks were great and I hope I’ll be coming back.

As for my project, user interface is improving and bugs are being fixed. For next week I’m hoping to improve the design of the task editor and make the general appearance more unified.

And a big thanks to the GNOME Foundation for sponsoring my stay in Den Haag!

Screen shot of the improved interface:

GTG Web Report #9

Hello planet,

my 8th report was only an email to the mailing list, as my computer was thunderstruck. It is being repaired at the moment and I’m using my mother’s netbook as a replacement. It’s quite slow but it works.

This week I made a hover menu for quick task manipulation. For now it only has two buttons and over time it might get one or two more, maybe for changing dates or something, but I wouldn’t like to make it too bloated. I also fixed some bugs, fixed a lot of html errors and started improving css.

Next week I’m going to GUADEC so I won’t make any predictions on my work, but I’ll try to discuss the overall interface design with my teammates.

My bags are already packed and I have a train to Budapest at 2am today, and a flight from Budapest to Eindhoven in the afternoon, so I hope I’ll get a couple of hours to enjoy Budapest before heading off to Netherlands.

Here are couple of screen shots of new features, the Quick Add entry and a hover menu:

GTG Web, report 007

This week I made a read/write backend for GTG (which was my main goal) and I started working on improving the UI. Making the backend also uncovered some bugs in api handlers which are now fixed. Backend works, it syncs tasks between GTG and gtgonline, but it’s buggy. Most of the bugs are caused by my dummy dbus server. It’s called dummy for a reason. Once a proper dbus server is used I’ll be able to fix most of the problems with sync.

First UI improvement I made is an old GTG feature – work view. It only displays startable tasks, like in regular gtg. No screenshot, just open GTG and click on work view to see how it works 😉

For next week the plan is to:

  • improve the tree view – add shortcuts to common tasks like marking tasks as done.
  • improve the task editor to make it more usable and good looking.
  • make a QuickAdd entry like in… you guessed it – GTG!

Overall – I’m happy that I’m on schedule and that I’ve completed my midterm goal!

GTG web – The halfway report

Hello everyone!

This week I had less time than I thought I would. I was able to work on my project only since yesterday, but I managed to get acquainted with the sync system and I made a simple one-way (import only) periodic backend. For next week I would like to make a two-way sync backend and start working on improving the web interface.

From now on I’ll have a lot of free time to work on gtg online as my last exam is on tuesday, so my productivity should increase a bit 😉

Pretty pictures:

And happy 4th of July to US readers!

GTG web: The fifth report

In yet another weekly report I’ll talk about stuff I’ve done this past week + some plans for the future.

Last week I said I’ll do

  • Text parsing
  • Read-write API
  • Start writing a new GTG backend to enable synchronization.

Text parsing now works quite nicely. When you make a task (in web interface or using the API) tags and subtasks are recognized and added to the task, new subtasks also inherit parent’s tags. In reader view you can follow links to subtasks and tags, it’s a nice way to navigate through tasks. Subtask links were implemented a couple of weeks ago but the feature was broken until this week.

Read-write REST API is functional. For now it uses basic http authentication, someday it will use oauth but it’s not a priority (yet). I’ve also written a small and simple python client library that provides interface to the API, which will be used in the sync backend.

As for the third point – I’m glad I said “start writing” instead of “write”. I did start, configuration interface works. Not much else. 🙂 I’m looking at code of other backends, and I’m trying to wrap my head around the system.

And that is the only task I’ll give myself for this week – make a sync backend. The bulk of final exams is this week, but I think I’ll manage to do everything in time. After that, most of the major features of my summer of code project will be done and I’ll be focusing on usability and interface for a while. That’s great for blog readers as I’ll finally have some new pictures to show.

Getting things GNOME! Web service and API: Weekly Report 04

Hello planet and others!

This is yet another weekly report. It’s been a very busy week at my college. All that remains are the final exams, which are spread out over three weeks thanks to two national holidays in Croatia next week, so they won’t take too much of my time. It’s anti-fascist struggle day on tuesday and statehood day on friday – so for most people it’s a week off from work. Sometimes it’s good to live in such a lazy country. 🙂
The plan for this week was:

  • start working on task text parsing. (TODO) – I didn’t manage to do this, but it’s on the list for next week.
  • start working on the REST API. (DONE) – We now have a functional read-only API with basic authentication. It can be tested using curl. API details are on the project’s LGO page
  • enable user registration, so the django admin interface is no longer needed. (DONE) – It works but it doesn’t look nice, it will get prettier over time.

For next week, the plan is to do:

  • Text parsing
  • Read-write API
  • Start writing a new GTG backend (using Luca Invernizzi’s mighty backend system) to enable synchronization.

Instructions for testing the API are on my portfolio page.

Hope everyone had a good first gsoc month!

Getting things GNOME! Web service – Weekly report 3

Hi folks!

This is my third weekly report, the second one was only on the mailing list because I couldn’t do much work last week. But here we are now, a week later with quite a few new features.

As you may not know, the web service I’m working on is not only a web server, it’s also a dbus client. That means that it is useless on its own, it has to be used with a GTG dbus provider. Until this week, I’ve been using a recent trunk version of Getting Things GNOME! with a modified dbus api, but that got overly complicated with adding new features to the web interface. Because of that I reworked the innards of the fake server that I made in the beginning, and it’s actually useful now.

Better dummy dbus server allowed me to make the web interface multiuser-friendly. Now each user has its own tasks. This is done by using the new dbus parameter user, which was easy to implement with a fake server and will take time to do with the real GTG.

Another new feature is changing task statuses, which can be seen on the left:

Task view interface

As you can see, there is now a user area on the right, with a broken preferences link and a working log out link. User accounts have to be created using django admin interface, but that will soon be fixed.

One more thing… As you can see in the screen shot, web interface can now be used to create and edit tasks. For now new tasks can only be roots in the task tree. Once proper text parsing is in place, we will be able to make task trees just as easily as in desktop GTG.

For next week, I hope I will do the following:

  • start working on task text parsing, so that it will be possible to mark tasks with tags and to make task trees.
  • start working on the REST API.
  • enable user registration, so the django admin interface is no longer needed

If you want to test it and play with it, the instructions are on project’s live.gnome.org page. Have fun, it’s buggy! 🙂

Thanks for reading; have a nice day!

Getting Things GNOME! – GSoC weekly report 1

Hello Planet and others!

This is my first weekly report about my project – GTG web service and api. I’m currently working on the service itself, no api yet.

What have I done this week:

  • Started my project, pushed it to launchpad
  • Began writing the main task list and a more detailed task view (see pretty pictures!)
  • Started work on expanding gtg dbus api.
  • Lost my telephone and internet connection, fortunately only for a day. Turns out it’s not a good idea to have a telephone line to your house go through someone else’s house first, especially if there are construction works over there and the cables are connected A je to! style, i.e., badly. (A je to! – One of the best cartoons ever, a true monument to DIY (do-it-yourself) culture. Don’t know if it was ever popular outside the eastern block :D).
  • Sent a couple of revisions to launchpad using cell phone tethering with a crappy signal, great fun.

What I plan and hope to do next week:

  • Discuss dbus api changes with other lovely GTG devs.
  • Beef up the main views, so it’s easier to track down problems later. It’s hard to fix a problem you can’t see.
  • Start with adding user support.
  • Do something about my bachelor thesis. Now that it’s public, it’ll make me work on it a bit more.

Now, on to the pretty pictures.

Oh, and enjoy the weekend!