[GSOC 2012] Weekly Report – 5

Hi everyone!

Another week done, time for another weekly report :)

Last Week’s TODO

  • Improve upon the Clean theme: DONE
  • Focus on integration with Cloud Sync Server:WIP
  • Add some more themes: ND (As my mentor, Al Sutton suggested, I should focus on the integration. I’ll add the bells and whistles later :))
  • Fix integration issues with OI Server: *DONE *(Not completely done though, the authentication still remains and I’m discussing this with Stanley)

This week, I started off by fixing theClean theme which is a white version of the default ICS like theme. There were quite a bit of CSS bugs and colorscheme issues so I took care of that first.

Next up, I fixed some integration issues with OI Server. Mainly, I had to fix the login page where I asked for the username and password but the server only wanted a password. So, I removed the username field. After fixing some more issues I decided to upload an APK up for testing which can be found here. Also, I fixed a bug in OI Server where in Ice Cream Sandwich the server app displayed an IPv6 address instead on an IPv4. I changed the implementation of getting the device’s IP address in OI Server and sent a pull request to Stanley. Although we need to discuss on this a bit.

This week, I managed to serve the web interface from the App Engine which  was easy as pie but it took me a while to get it going since I didn’t have any previous App Engine development experience so it took quite a bit of reading to accomplish that. Also, I managed to develop a REST implementation which is still in a very early stage for the Cloudsync app engine project. I’ll be focusing on this implementation this week.

So, that’s that. No screenshots this time since there are no major changes to ‘show off’ :P

Also, the online demo of the interface is a bit out of date with the current development version. I’ll have to update that :)

Stanley sent me a couple of bug reports for bugs he found in the interface. So, I’ll be fixing them at the earliest.

Next Week’s TODO

  • Fix bugs in the interface
  • Get a REST interface up and running in App Engine for CloudSync
  • Organize the code of the web interface (Includes splitting of JavaScript files as right now I only have one big file which I’ll split up according to the OI applications that they represent)
  • Some more stuff that I can’t think of now :P

[GSOC 2012] Weekly Report – 4

Another week done! :)

As I always do, I’ll start with last week’s TODO:

  • Fix some cross-browser CSS bugs: *DONE *(For now, as I add more stuff, more bugs will come so this will go on and on xD)
  • Improve the mobile interface: DONE
  • Test the interface on a real mobile device through OI Server: DONE
  • Add Theming support to the web interface: DONE
  • Work out a way to serve the interface on the App Engine with Vettukal: WIP

I accomplished the long awaited theme support for the server. There are two themes for now, a Default theme which is an ICS colorscheme and a Clean theme with a white colorscheme. The Clean theme is a work in progress, so you might notice some unthemed elements like the notes in OI Notepad.

Also, to accompany the theme switching functionality, I added a settings dialog which works both in the mobile browser as well as the desktop browser. It has the ability to show or hide different applications, show / hide the sidebar and select the theme from a dropdown box.

The major thing was to integrate the web interface and the OI Server. The web interface works fine with the OI Server except for the update functionality which I will look into some more as to why it’s not working.

I also have an experimental theme framework which would allow a theme to completely change the UI. But I don’t know how good that idea is, we’ll need to discuss it on the list :)

I also implemented a login page and functionality on my local web server, now you can login with the following credentials: Username: openintents and Password: openintents. As of now, the login page does not use the selected theme, but I’ll implement it in the next week.

We didn’t have a meeting this week though, I got sick with a throat infection and a fever so I had to rest a lot. We’ll have a meeting next week most probably :)

You can test out the interface here: http://kbhaskar.in/webinterface

Next Week’s TODO

  • Improve upon the Clean theme
  • Focus on integration with Cloud Sync Server
  • Add some more themes
  • Fix integration issues with OI Server

And some more ;)

[GSOC 2012] Weekly Report – 3

Hello everyone!

This is the weekly report #3 of GSOC. First of all let’s start with last week’s TODO!

Last Week’s TODO

  • Improve upon the interface’s visual aspect: DONE
  • Discuss the common interface specification further with Stanley and Vettukal: DONE
  • Start working on some real data from OI Server and Cloud Sync server: WIP
  • Work out how the interface will be packaged in OI Server: DONE (Stanley already has it covered :))
  • Create a login page and functionality: DONE

This week I started off with making the interface mobile-browser compatible. The bootstrap CSS framework provides responsive design methods that make it pretty easy to design websites for mobiles and tablets. The mobile interface replaces the Action Bar button and shows the usual pop-up menu as collapsible menu, like most Android compatible websites do. You can test it out by resizing the browser :)

Go ahead visit http://kbhaskar.in/webinterface/ and resize your browser window to checkout the mobile interface.

Another thing I added is the ability to save settings using a cookie stored on the client browser. If you choose to display the sidebar it will save the setting and the next time the sidebar will be visible :)

Next I worked on fixing some CSS bugs, reorganized the CSS structure and moved the interface from WebInterfaceTest to WebInterface in the repository. Now, I’ll only be working on the WebInterface folder, since the other one was only for testing :P

I also created a login page with the same colorscheme as the main interface.

We (Me, Stanley and Vettukal) had our weekly discussion a bit late though on 10th June (Sunday). There we discussed about some of the REST calls (cleared out some misunderstandings) and also discussed about a common response format between that both the OI Server and Cloud Server would use. Next we discussed upon the login / authentication mechanism we should use in the OI Server and also a way to serve the web interface from the Google App Engine (Although we haven’t figured it out yet :P). You can checkout the logs here.

This week was a bit slow on new things, but next week I’m working on a lot of interesting stuff like adding themes support for the web interface and testing the interface on a real mobile device with real data through the OI Server.

Next Week’s ToDo:

  • Fix some cross-browser CSS bugs
  • Improve the mobile interface
  • Test the interface on a real mobile device through OI Server
  • Add Theming support to the web interface
  • Work out a way to serve the interface on the App Engine with Vettukal

Cheers!

[GSOC 2012] Weekly Report – 2

Alright! So, week 2 of GSOC finished! Here’s a report of what I’ve done this week.

First of all, as per last week’s report, I expected to finish certain goals this week, here’s a list of what I’ve done and not done or work in progress (WIP):

  • Start a discussion with the server guys for integration: DONE
  • Work out a common specification for the integration: WIP
  • Make some mockups of the interface: DONE
  • Finalize the interface design and start work on it: DONE

This week, I started a discussion with OI Server and Cloud Sync Server developers Stanley and Vettukal. We discussed about some initial problems  like what language to use when communicating with the server and client. We finalized on REST + JSON. Next we defined some REST calls for OI Notepad which are:

  • /notes/get – Get list of all notes
  • /notes/get/id – Get contents of note with a specific ID
  • /notes/update – Update the note

We also discussed about a RESTful interface in Google App Engine. Although we haven’t figured it out how to implement it, we’re thinking of Restlet (http://www.restlet.org/).

Here’s a summar and IRC logs of the discussion can be found here:

  • Mode of communication between the client and the server: REST + JSON
  • Finalized REST calls for OI Notepad and user login
  • For added security add a salt based authentication method along with the usual user login
  • Discussed the integration of AppEngine (Cloud Sync Server) and the Web Interface by providing a REST interface to the web interface

Next up, I did a complete overhaul of the interface that I am working on. The overhaul is both in the frontend and the backend. I made an Android Ice Cream Sandwich like theme using the ICS color pallete and made the interface look more Android-ish by including an Action Bar at the top as well.

Another thing I implemented is the toggle-able sidebar. This can be selected from the Action Bar icon on the top right corner. What this does, is, yup drum-roll hides the sidebar so for those who don’t need it, it won’t be shown. I added some navigation to the home page to quickly and easily switch between the application you wish to access.

**

Also, I restructured the code and moved from jQuery UI to Twitter’s Bootstrap framework which is a lot easier to work with in my opinion. It provides a lot of functionality out of the box, both for the CSS layout and look, so I can structure the page and style it using the same framework! So that means less JavaScript bloat! Pretty cool :)

I also started work on dynamic content loading (previously the client only loaded static content from the same page). Now, I’ve set up a local RESTful service with PHP and Slim which simulates the functionality provided by the OI Server / Cloud Server and sends the data in JSON format so the client can load it dynamically via jQuery / JavaScript.

I’ve implemented the basic functionality for OI Notepad, Add, Update and Delete and it works fine (needs some rigorous testing though).

A notification system has also been added. So, the user gets notified when the note has been saved /added / deleted successfully or an error has occurred. It’s something I made from scratch using jQuery and Bootstrap’s alert classes. It’s a bubble-style notification and multiple notifications get stacked on top of each other. A timeout of 5 seconds is there after which the notifications fade out, they can also be made persistent.

To summarize the above, here’s what I did this week:

  • Switched from jQuery UI to Twitter’s Bootstrap
  • Created an Android-like theme for the interface with ICS colorscheme
  • Added an Action Bar like menu to display a menu
  • Support for Toggle-able sidebar
  • Added AJAX support for OI Notepad
  • Created a local RESTful service with Slim and PHP to simulate the OI Server / Cloud Server (Well, it’s just something to make my work easier for local testing, not a part of my project :) )
  • Added a bubble notification system for the interface

Some things that I’ll be working on next week:

  • Improve upon the interface’s visual aspect
  • Discuss the common interface specification further with Stanley and Vettukal
  • Start working on some real data from OI Server and Cloud Sync server
  • Work out how the interface will be packaged in OI Server
  • Create a login page and functionality

This week was quite fun, I learned a lot of new things :)

As for the new interface, if you wish to test it you can goto http://kbhaskar.in/webinterface/ics

NOTE: Please keep in mind the data is fetched real time from the server and stored on the server, so if you delete some things it will be deleted forever :P (Main reason why I didn’t enable the Delete All menu). Also, if you don’t see any notes, it might be that some smart guy deleted everything, so try adding a new note and see if it works :)