Google Summer of Code – Week 4 – 6 & Mid-Term Evaluations

First of all, I’m very delighted that I have passed the GSoC Mid-Term evaluation of my project that’s the most recent development in my GSoC journey.

Right after first 2 weeks, I had my final semester exams scheduled. Thus, I requested my mentor to give me off for my final exams and he granted me leave for 10 days. So, I couldn’t work on anything during 3rd week.

Screenshot of the email that made my day ūüėÄ

passed_gsoc_screenshot

Abstracts Section:

Right after my exams, I resumed my programming. G-Node has now developed a web portal for conferences as well recently and rather than providing me with the JSON files for ‘Abstracts’ my mentor told me about the web portal and it’s RESTful API. So app would communicate with their online server via REST API for fetching the latest data. The major change that reflected here was the new JSON Model for Abstracts Data. They had completely changed the JSON Model for the Abstract. Mentor that’s why asked me to port the app for new model – and an amazing challenge started ūüėÄ

Initially, I started working on old model and started changing it for new model but i wasn’t getting any luck with that. After few time, I decided to go for writing it from scratch and I’m glad i took that decision. I had to change whole DB schema for the new model, DBHelper class,¬†JSON parsing function for making up to the new model. But somehow I got it managed.

schema_diagram

The other problem was: Like in previous version there was option for ‘Next’ & ‘Prev’ navigation of Abstracts – that wasn’t working now. The reason was that for previous model the ID was numeric and¬†auto-increment. So for navigating to the next abstract, all it required was to increment current ID value by 1 and fetch data for that ID. But in new model, the ID has been changed to UUID rather than numeric. But thanks to SQLite, it has functionality of ROWID for each record which is unique and the ROWID is integer & auto-increment. Thus I used ROWID for getting UUID of Next and Previous record like below:

String getCurrentRowIDQuery = "SELECT ROWID FROM ABSTRACT_DETAILS WHERE UUID = '" + currentID + "';";
--currentID is UUID of current abstract

And then incremented or decremented for getting ROWID of next or previous record respectively. After getting the ROWID of required record, the next query that executed was:


String getNextAbstractUUID = "SELECT UUID FROM ABSTRACT_DETAILS WHERE ROWID = " + newRecordRowID + ";";

--newRecordRowID is Row ID of new record to be fetched 

Favorite Abstracts Functionality:

The other feature I worked on during this time was to add functionality for user to ‘Add an Abstract to Favorites’. Because the Conference would be having huge number of Abstracts and user might be interested in few so he/she can now add Abstracts of his/her interest to ‘Favorites’ just by clicking a Star icon in Actionbar.

For maintaining the record of Favorite Abstracts, I added a new Table in Database: ABSTRACT_FAVORITES Рwith 1 column only (UUID). This table maintains UUID of Abstracts that user has favourited. And then in FavouriteAbstract Activity, the SQL Query for getting favorite Abstracts goes like this:


String query = "SELECT UUID AS _id , TOPIC, TITLE, ABSRACT_TEXT, STATE, SORTID, REASONFORTALK, MTIME, TYPE,DOI, COI, ACKNOWLEDGEMENTS FROM ABSTRACT_DETAILS WHERE _id IN (SELECT ABSTRACT_UUID FROM ABSTRACT_FAVORITES);";

--Subquery runs for getting UUIDs of favorite abstracts from ABSTRACT_FAVORITES table.<a href="http://shumailmohyuddin.com/wp-content/uploads/2014/07/abstracts_module_screenshots.jpg">
</a>

 The code for whole Abstracts Module is available on Github.
You can explore it here: https://github.com/shumail92/GCA-Android/tree/master/Conference-v2/src/com/g_node/gca/abstracts

Share your thoughts in comments below. I’ll be looking forward to any suggestions or feedback.

abstracts_module_screenshots

Yaaayyy !!! Selected in Google Summer of Code 2014

Hello everyone ! I have been selected as student for Google Summer of Code 2014 (GSoC2014). ¬†This summer I shall be working with International Neuroinformatics Coodinating Facility (INCF). More specifically, i shall be working with INCF’s¬†Germany node – German Neuroinformatics Node.

incf_gsoc_blog_logo

For those who don’t know what Google Summer of Code is : (from GSoC site)

Google Summer of Code is a global program that offers students stipends to write code for open source projects. We have worked with the open source community to identify and fund exciting projects for the upcoming summer.

Project Details: 

My project with INCF focuses android development. There ¬†were many ideas listed on INCF GSoC ideas page but i decided to go for one that involves Android programming¬†because I need to brush up my Android skills and implement whatever i learnt recently in University of Maryland’s online Android¬†course . (I successfully took and passed this course with distinction)

To keep it short, it’s Android App for their annual conference with a lot of features ranging from simple conference schedule, Abstracts detail and information to some advance features like option for taking notes against Abstracts, synchronization with their online server for frequently updating¬†of Data using RESTful API’s, itinerary planner and much more. In coming weeks, i shall be sharing more details on my project and will keep updating about my GSoC experience and details here.

It’s worth mentioning¬†Sir Christian Garbers – my GSoC Mentor and a nice¬†person who helps¬†me whenever I need help, replies to my all emails and clears my doubts and confusion.

About INCF:

International Neuroinformatics Coodinating Facility (INCF) develops collaborative neuroinformatics infrastructure and promotes the sharing of data and computing resources to the international research community. Their  mission is to facilitate the work of neuroscientists around the world, and to catalyze and coordinate the global development of neuroinformatics. More details regarding INCF can be found on their website:  http://www.incf.org/about

Looking forward to a great summer ahead full of learning and ending up with a wiser, more knowledgeable and not to mention, richer iteration of myself Рstarting a journey in  FOSS  (Free and open-source software) Community.