Google Summer of Code 2013 - final report

Categories: Community Created by Tobias Liebig
The Google Summer of Code is over and it's time to recap. In the last 3 month Google gave 1,060 students in total the opportunity to work and code for an Open Source Project at one of 177 mentoring organizations. That's the annual Google Summer of Code. We, the TYPO3 Community, participated for the fourth time and mentored five students this year.

Projects

We are pleased to announce that four of our five student projects passed the final evaluations. Unfortunately in one project we had communication issues from the beginning. While we first thought we could improve that in the first phase, we actually had a hard time in the second half of the summer, so we needed to stop the project early. A special thanks to Kay Strobach (mentor), Oliver Klee (co-mentor) and Andriy Kushnarov (helping with the 'foreign-languages'-communication). You guys did a great job and I appreciate that you didn't give up. Besides of that one, we had four great students. Here are the project descriptions and reports of the successful projects written by the students:

"Create an oAuth layer" by Denys Butenko, mentored by Sebastian Michaelsen

<link https: google-melange.appspot.com gsoc project google gsoc2013 ua13dark>google-melange.appspot.com/gsoc/project/google/gsoc2013/ua13dark/22001

Project description

Native oAuth authentication plugin - it's good and practical. I've seen this in other CMSes and am a little bit familiar with the device of the mechanism. Log-ins through social networks are now an essential part of any modern content management system. Classical methods of authentication go a little by the wayside. It's much more convenient for users to use their accounts from Twitter for authentication, rather than registering a new account on each site.

About the student

My name is Denys Butenko. I live in Ukraine, Lugansk. I am a student at the Faculty of Computer Science and Technology at the East Ukrainian National University Volodymyr Dahl.

Final report

Summer 2013 was very important for me. I was very happy when I was accepted in the TYPO3 project for open authentication. The problems that I encountered during the project are as follows:
  • Missing documentation in my native language (Russian).
  • Outdated documentation. When I started to develop - the current version was 6.1, and almost all the extensions associated with the authorization of using the old methods of 3.X and 4.X versions and were not compatible. 
  • Problems with the routing URLs. The inability to create a url from an extension and use my own view to handle it, for example create url: localhost/auth/facebook after clicking, the user is sent to Facebook to allow access to its data.
  • [Implementing the] Authentication Service greatly slowed the project when there is no authorization without submitting the form.
These are all the difficulties I encountered while doing the project.

"Fluid: Cut dependencies on Flow" by Puja Singh, mentored by Karsten Dambekalns

<link https: google-melange.appspot.com gsoc project google gsoc2013 puja>google-melange.appspot.com/gsoc/project/google/gsoc2013/puja/71001

Project description

My project is titled Fluid: Cut dependencies on Flow. Fluid and Flow are both rather new, and complicated ideas, coming from the TYPO3 project. Fluid is a template rendering engine and TYPO3 Flow, formerly known as FLOW3, is a PHP framework. The use of Fluid would be great for other frameworks as well, as it could help with creating dynamic website designs/templates. However, trying to integrate Fluid with any PHP framework other than Flow means losing some of its properties or functionalities. Since Fluid is an excellent template engine to use, it would be really nice if it could be used with other PHP application platforms as well as the backend. This is what I aim to do in my project.
Fluid uses a lot of things, viz, Utility Class, the Object Class, the ControllerContext etc.  So, I aim to find all these ‘dependencies’ and eliminate them as much as possible.

About the student

I am Puja Singh, a 20 year old, third year Undergraduate (B.Tech, Computer Science and Technology) , India. It was early this year that I decided to apply for Google Summer of Code (GSoC) 2013, and it was a few weeks from then that I found about the TYPO3 project. I had been an open source enthusiast for the last 8-10 months, and I was really looking forward to be contributing to it. It was then that I understood, that I should apply for GSoC as well, as it could have provided me with the best environment to boost up my love and passion towards coding and open source. It is always a good time to start contributing and joining any community, but GSoC provides the best and the most open platform to do just that.

Final report

Find the full report on <link https: github.com puja0708 gsoc-typo3.base wiki project-report>github.com/Puja0708/GSoC-TYPO3.Base/wiki/Project-Report. All code is available on Github. Check github.com/Puja0708/GSoC-TYPO3.Base and github.com/Puja0708/GSoCNew-TYPO3.Fluid

"FluidBoilerplate" by Jacob Floyd, mentored by Robert Weißgräber

<link https: google-melange.appspot.com gsoc project google gsoc2013 cognifloyd>google-melange.appspot.com/gsoc/project/google/gsoc2013/cognifloyd/30001

Project description

A lot of people have been talking about TemplaVoila (TV) recently, as it is a very useful extension in the TYPO3 CMS world. With the TemplaVoila Framework (by Busy Noggin), TV became even more user friendly by making shareable website skins and hiding the TV parts that were most user-unfriendly. Though the future of TV is uncertain right now, two things are certain: (1) TYPO3 Flow and TYPO3 Neos need a user-friendly TemplateBuilder, and (2) we need a good way to share the templates we make with others.For my GSoC project, I am creating some backend services that should make these goals possible. As I am focusing on creating officially-supported robust re-useable services that will stand the test of time, I will not complete the user interface during this project. However, once my project is complete, you will be able to (A) convert plain html/css templates (aka SourceTemplates) into a set of fluid templates, (B) share a Boilerplate package whenever you want to share some Fluid templates with someone, and (C) use ZurbFoundationBoilerplate or TwitterBootstrapBoilerplate to quickly create templates for your Site or Application based on these popular visual frameworks.

Final report

Jacob published his code and documentation on Github in three repositories:

"Kickstarter for Flow/Ember.js applications" by Manuel Mitasch, mentored by Rens Admiraal

<link https: google-melange.appspot.com gsoc project google gsoc2013 manuel_mitasch>google-melange.appspot.com/gsoc/project/google/gsoc2013/manuel_mitasch/20001

Project description

TYPO3 FLOW and Ember.js are both new and innovative projects that share many concepts like domain driven design or convention over configuration. Each framework has its own strengths and is very well structured. Ember currently gets a lot of attention for the development of ambitious, rich client-side applications. Thus, using both together - Flow for the server-side and Ember for the client-side - offers lots of potential for a fast development of a cleanly structured, ambitious application with a great user interface. The goal of this project is to enable a loose coupling of TYPO3 Flow domain models and Ember.js data models through conventions. Therefore, a Flow-based REST API (controller, view, route part) that complies to the Ember conventions will be implemented. A scaffolding/kickstart functionality will provide the generation of Ember models from Flow model semantics. Additionally, the kickstarter will be able to generate a full prototype of all remaining client-side assets (Ember controllers, views, handlebar templates) for a basic Ember-based user interface. In short, using Flow to build great Ember apps should become very easy.

About the student

I'm a web enthusiast for over 10 years. I study business informatics in Linz, Austria. Most of my web projects were based on TYPO3 CMS. Lately, I love building rich client-side application using Ember.js.  I'm very enthusiastic to contribute and give something back to the great TYPO3 community.

Final report

Manuel has made some good progress in the project. Codewise the serialization, typeconverters and reflections for the REST interface is working. Some of this work still needs to be tuned (regarding storing of complex relations). The package provides kickstart commands to automatically generate a fully functional Ember app prototype, based on the Flow models and a layer of configuration in Flow. This way the integrator has control over the generated code, and has the possibility to customize the behavior even more with the Ember API. The project looks really promising for creating full blown one page webapplications, and will (in my opinion) help people a lot towards creating solid Flow-based applications.

The Mentor Summit end of October

At the end of each GSoC Google organizes the mentor summit at the Google Headquarters. This year Sebastian Michaelsen and Christian Müller will represent TYPO3 there and meet mentors of all other organizations. I'm sure they will report about that later.

Thanks

At this point we want to thank Google for the awesome opportunity to be part of the GSoC. Thanks to all, who were part of the application period, evaluating and choosing the students and projects and those, who help us in organization, administration and communication (we are still working on the after-match). And a special thanks goes to all mentors, who volunteered to mentor a student and gave them the chance to be part of our community.

GSoC 2014

Google already announced the <link http: www.google-melange.com gsoc homepage google gsoc2014>Google Summer of Code 2014. That will be the 10th GSoC and we really hope we are able to be part of that again. If you want to participate as mentor or student next year, get in touch with us! - In behalf of the GSoC-Admin-Team -
   Tobias Liebig