Yifan Ren from the University of Waterloo provides this overview of his UCOSP experience:

I Participated in the BB10 PhoneGap team and was working on porting native plugins for BlackBerry10. I had an enjoyable and rewarding time working on the project, and experienced real-world software engineering practices and open source collaboration.

One thing I really appreciate about the BB10 PhoneGap project is its tasks. It has a list of independent tasks, and each one requests to build a complete plugin project of a useful feature, for example, zip file extraction and compression, barcode scanner, and system dialog. We had a chance to select one that interested us most, and would deal with the whole project, including configuration, source code, build, documentation and tests.

The first task I selected was to finish the Distimo plugin. Distimo is a mobile app analytics firm, and that plugin helps application developers to track users activities. The project was partly done, and my job was to finish the configuration and add several features. It took my some time to get familiar with the whole system including the Cordova frameworks, the plugin interface, the JavaScript implementation, the native C++ code, and how everything is connected. Fortunately, everything was well-documented, and Tim, our mentor, was extremely helpful and very experienced at the BB10 plugins. By the end of the code sprint, I had finished the configuration, made the test app run, and got some idea about the remaining works.

Once I was working on a feature called Applink. It gets app id from the Distimo server and shows that app in the blackberry Appworld. I figured out that its implementation needs http requests and http header settings, and I had just learned these early that week in a university course. At that moment, I felt strongly that this project was a great opportunity to apply my knowledge and skills learned in class to the real-life.

My second task was to build the system dialog plugin, which allows users to prompt global dialogs with buttons from their applications. Thanks to the handy templates and detailed documents, the starting steps were quite easy, while the rest of the work was a little bit challenging but also interesting.

When I was working on this plugin, I was introduced to the Qt library and its signals & slots mechanism of objects communication. I found that to be extremely useful and planed to import that library to my personal project. Moreover, I did learn a lot about fundamental aspects of projects building, such as project structure, configuration, Makefile, and documentation.

Help is always available. We had weekly team meeting to report our process and ask questions. Tim was also available and helpful during the rest of the time. I often received timely feedback and really useful suggestions.

At the final words I can say that working on the BB10 PhoneGap plugins and participate in the UCOSP was a big step for me. Not just for the fact that I developed practical skills and got a deeper understanding of the real-world projects; I also gained open source experience and made contribution to the community. I certainly enjoy working in the team with these awesome people, and would strongly recommend computer science students who wish to get involved themselves and gain open source expensive to apply for UCSOP and contribute!