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.
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 (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