Monday, May 21, 2012

GSoC 2012 : Extension and Integration with External APIs : Introduction

Hi,

I am Aditi Mittal,  a 2012 Google Summer of Code student working with Melange community. It has been four weeks since the GSoC result came out but I had been quite busy with exams so couldn’t remain active, thanks to Mario for keeping his cool ( ^__^ ).

I want to thank a zillion time to Madhusudan for his continuous guidance and help since the time I started with Melange and Orcun for walking me through his code which I will be extending during the summers. Every time I talk to Melange people I learn a new thing from them. This will be my first major contribution to open source community so I am very excited about it.

After getting free from exams I asked Mario for jQuery and Javascript books. I started with The Good Parts by Douglas Crockford and Javascript: The Definitive Guide by David Flanagan and for jQuery I am reading jQuery Cookbook by Cody Lindley.

During the summers I will enhance melange user interface by adding new features such as shipment tracking, proposal syncing and data export to other formats other than CSV export of melange lists. I will also be adding Picker API functionality. Carol must be liking it :-) .

I attended the G+ hangouts(Melange conference call) and it was a unique experience talking to all the Melange members. It was like all of us were sitting in one room and discussing the project.

Talking to very experienced and supporting mentors has already strengthened my morale.
I will talk to Orcun for better understanding of his code and Mario to give the project a real start.

I can’t keep myself less excited as this going to be one of the most productive summer of my  life!!




Sunday, May 20, 2012

Melange Functional Testing


Hi everyone, my name is Syed Armani. This summer i will be working with Melange community as a student  under Google Summer of Code.

I am  very happy that i am working with melange community this summer. Its a pleasure to work with people like Chong Liu, Sverre, Lennard, Madhu, Mario and many others. Madhu is a very nice person and Lennard is always there when you need help. Leo is a great guy and i am thankful to him that he chose me for this project. Till now i have not got enough chance to speak with other members of the community, i hope to meet them soon and  I really love the cool t-shirts that Sverre and Lennard wear in G+ Hangouts.

This summer i will be working on creating a  Data Driven Framework for Functional Testing of  Melange. A test suite consisting of all the possible test cases covering all the possible scenarios of using melange application. Test scripts for executing the test cases will be written in python and executed using Selenium Webdriver. The proposed test suite of functional tests will consist of Test cases and test data, User actions and assertions in Python, Data parametrization, Headless (xvfb) mode , Screenshots on errors.

I will write test scripts for various scenarios as "user stories".  A story depicting how a user interact with GSoC and GCI apps. We will use xlrd module to read the cells of excel sheet, these cells will contain the unique identity of the objects present in the application as well as there values, The values will be taken from the cells and they will be used to fill the forms. Assert statements will check the presence of various error messages, headings, title and text present on the pages.  Test output can be displayed to the console or saved as an HTML report. If any of the test fails a screen shot will be taken on failure to see where the test failed.

Functional test cases will be included for both GSoC & GCI applications:

GSoC:  Melange Home Page, Student Registration Page, Mentor Registration Page, Login Page, My Profile Page, My Dashboard Page, About Page, Events and Timeline Page, Connect With Us Page, Search Page, FAQ page.

GCI:  Home Page, My Dashboard, Register As Student, Events and Timeline,  The official Leader board, Tasks Page, Login, Invites to me

Monday, May 7, 2012

GSoC 2012 Introduction

Hi, my name is Andrew (Drew) Rodman and I'm going to be working as a student for Melange this summer as my Google Summer of Code Project.

I'm excited to work with my mentor Daniel Hans, Lennard, Sverre, Madhu, and all of the other contributors that I have not yet had the opportunity to meet. I'll be working on rebuilding the invite and request modules for both gsoc and gci more or less from scratch in order to take into account issues that have arisen so that they can be eliminated without requiring heavy patching. I'll also be doing a little bit of template design work in order to make it more apparent how to invite mentors and organization admins to a program. I have worked previously with Google App Engine and have refreshed and expanded my knowledge by re-reading the GAE Python 2.7 docs regarding the datastore. I am also reasonably familiar with the Django framework and am currently in the process of figuring out "the big picture," or improving my conceptual overview of how Melange works. I'm also working on determining the specific requirements of the invite and request modules that I'll be working on since Daniel asked me not to look at the current implementation.

I'm excited to start this project and even more so to be working with a community of incredibly proficient developers in order to improve my own skill-set and hopefully make some friends within the Open Source world...in addition to gaining a long-term project to which I can contribute after the program ends.  

Tuesday, August 23, 2011

GSoC 2011 Integration with External APIs: GSoC ends with great experiences

Hi,

We came into the end of Summer of Code 2011. It was one of the best collaborative development environments i've ever been before. I learned lots of stuff especially about Google Data APIs, OAuth, Javascript, Rest structure . I improved my code writing skills for more beautiful Python code. I worked with very nice and smart people. I tried to look problems like from their perspectives which  led me better reasoning against problems. As a result, it was a long but short summer that I spent my most of my time in front of my computer, but that was really fun. I own special thanks to my mentor Mario and co-mentor Madhusudan for spending quite amount of their time with my problems, reviews and newbie questions.

Last week was a little rush for me. I worked on Carol's issue about shipment trackings. Program administrator wants to share some spreadsheets that holds shipment tracking numbers, notes, address for students. A task for this spreadsheet is going to run and data will be synced to Melange datastore so student will be able to see the shipments sent for them in the dashboard page. We hope it will be used for the final shipments this year.

That's a video i captured for its initial state:

Wednesday, August 17, 2011

GSoC 2011 GUI Overhaul: Generic Iconic Dashboard

Hi everyone,

This week I need to post remaining patches, especially the generic iconic dashboard. I just posted early so I can have much time iterating the review process and hopefully got the patches submitted this week. The generic dashboard class is now placed in app/soc/views/dashboard.py. It contains the underlying view base for iconic dashboard. Every nested-iconic-dashboard should be inherited from Dashboard class. You can take a loot at admin.py, dashboard.py and org_admin_dashboard.py views to get the idea how to use Dashboard class. Now all related base dashboard templates were placed in v2/soc/dashboard directory. It contains the base.html and _user_action.html. All stylesheet rules should be defined inside v2/gsoc/dashboard.css.

There were changes on the melange.list and melange.dependency JS after refactoring the dashboard. The changes were to hold the lists to be queued and executed when the lists were rendered inside the dashboard. After applying the changes, I run the test and it broke in the test_admin.py. I figure out the case immediately, should be the assertTemplate. Yeah, there were some templates removed and added. After fixing the test, I post all the patches and ping Daniel. I hope I can run fast for the review process ;)

Monday, August 15, 2011

GSoc 2011 : Melange Testing Project CP W12 Last Week

Hi,

Only a week is left for GSoC to end and I need to finish testing all the important views as soon as possible. I had been working on views.org_profile, profile_show, accepted_orgs, proposal_review, duplicates and proposal_review this week. Testing views is turning out to be a little more involved and complicated task as compared to testing the logic. I got stuck at some places and so could not submit them for review. I had thought that I would be able to finish the views much earlier and start functional testing but I was not fast enough and also I could not devote 10+ hours per day during the weekends as I had promised in the proposal due to heavy course work, classes and personal issues.

      I will be trying to commit as much tests as possible in this week and work on the remaining tests after GSoC. I aim to work on functional testing and buildbot after GSoC. Lets hope for the best :).

GSoC 2011 GUI Overhaul: What's Left

Hi everyone,

The GSoC 2011 program will end shortly. Last week I was working on the account management, assign host, adding evaluation group and dashboard. There's a problem with Django test client that I couldn't figure out. The handler always treat self.data.POST as regular dict for every requests (in my case via POST) made from Django test client. Since in validate method there's a line that expect QueryDict instance, by calling getlist method self.data.POST.getlist('assign_program'), the test always fail. Maybe I missed something here, so I read the client.py code from Django that comes along with Google App Engine SDK. It took me two days or more to trace this problem. I don't think we should remove getlist from the handler nor hacking the django test client. So, I left the test ATM and move to another to do list, that's it, the dashboard.

The dashboard will be moved to soc/views/helpers/dashboard.py and the code itself is self explanatory:
class Dashboard(Template):

"""Base dashboard for admin page
"""

def __init__(self, request, data, subpages=None):
"""Initializes the dashboard.

Args:
request: The HTTPRequest object
data: The RequestData object
subpages: Subpages of current dashboard
"""
self.request = request
self.data = data
self.subpages = subpages

def getSubpagesLink(self):
"""Returns the link to other dashboard that appears
on top of the dashboard.
"""
return self.subpages

def templatePath(self):
"""Returns the path to the template that should be used in render()
"""
return 'v2/modules/gsoc/dashboard/dashboard.html'

def _divideSubPages(self, subpages):
"""Returns the subpages divided into two columns.
"""
middle_ceil = int(math.ceil(float(len(subpages))/2))

return [
subpages[:middle_ceil],
subpages[middle_ceil:],
]

The templates is improved to be able to handle list components that we have seen from regular dashboard. I hope the patch will be posted for reviewing process lately this week and pushed before the program ends.