Student Application Template
Name Thiago Ribeiro
Contact/Email/IRC nick: thiagovsk #debian #debci #debian-soc on freenode/OFTC and thiagitosouza at gmail dot com and https://github.com/thiagovsk
Studying Engineering software at Universidade de Brasilia, programming lover and follower of agile software development, practitioner of open source development and free science. I always try to solve the problem in the simplest but optimized possible way.
Programming Languages and Frameworks:
- Django, rails and angular js.
- Agile Development and Xp practices.
1- Mezuro: Understanding code metrics. 2014
My participation was to evolve the "prezento" web application that interacts with the user. And created a recipe for easy environment configuration with the "chef" tool. https://github.com/thiagovsk/mezuro-cookbooks
More in : www.mezuro.org
2- Django Revproxy
Reverse proxy for django apps. https://github.com/thiagovsk/django-revproxy
My participation was to make a parse in which dated back an HTTP header , it was necessary because currently the django and library urlib3 do not support multiple cookies, my idea was to remount manually header without using the urlib3 library, and the solution was accepted .
3- Omniauth Remote user
Omniauth Remote User
https://github.com/thiagovsk/omniauth_remote_user (just a mirror from oficial repository)
This gem was created to solve a problem, we needed to authenticate users in many different applications with a single login, and a way that was using the http protocol.
This gem gets a HTTP header with single user and the other tools that use this gem can authenticate the user received.
My participation was in development, testing and library implanting.
4- PSPB - Portal of the Brazilian Public Software.
The new portal of the Brazilian public software seeks to bring together a space where all Brazilian organs can develop software in a collaborative environment in which allows the dissemination of available software leading the economy of public money.
My participation in job was to develop and evolve the tools like : gitlab : https://about.gitlab.com/ colab : https://github.com/colab/colab noosfero : http://noosfero.org/ mezuro : http://mezuro.org/
I'm very motivated to participate in the google summer of code for the first time, and have the chance to make a great contribution to the debian and the community at large. Soon being chosen I will be the best person to work on this project.
Project title Automated configuration of packaged web applications
The project "Automated Configuration of Web Packaged Applications" comes with a very good motivation. Who's developer knows the work that is to configure an application. Listing some activities are: configure application server, configure database, serving static files, packaging, install dependencies ... These are just some well-known tasks, and are not simple tasks, especially for a beginner developer or just a regular user.
The project goal is to create a tool that will be able to install and configure Web applications. The user will interact with the tool through a web application to allow the use of such functionalities.
We will have a backend that will receive the information provided by the user, so getting installed and configured application. Soon say goodbye to complicated settings! This would help many people mainly the responsible for the systems infrastructure.
And how would that be?
First would be to build the backend so can apply the chef recipes, this step is very important. Here there will have recipes for configuration of the environment, such as application server (ie nginx), database, required packages templates etc.
We will use the Chef-soil to configure and install the packages.
The idea is that the user has the least work possible with the web application, with small steps the user can already have all configurations done. Ie filling in the required information and a few clicks to complete the installation and configuration.
It is interesting to keep the user's settings so it can edit at will, and we must quickly support changing the configuration desired, thereby generating an update on the installation and configuration.
With three initial projects to serve as a model to others I thought of Gitlab (ruby on rails), Ghost.io (node.js) and Wordpress (php).
I also think it would be itenressante an integration with Gitlab. For example: The user could create settings in your git repository using a template, or even point out your repository to the desired application and the configuration file, and the installation and configuration would be made after synchronizing your repository in our tool.
During the development will be used some of the best practices of software engineering, such as TDD, continuous integration, "?DevOps" with chef, clean code, etc.
It will also be made to the project documentation, and examples for using the system.
Synopsis: A tool that can automate the configuration and installation of web applications on debian.
Benefits to Debian: The debian users will not have difficulties to set up and install your web tools. Install web applications on debian will be easier than usual.
Deliverables: A tool to automate the installation and configuration of web applications from a web application that interacts with the user.
BEFORE CODING PERIOD:
- Evolve my knowledge with packings and chef.
- Contribute to the tools to be used, a good example would be the evolution of chake gem.
- Working in an early version prototype.
- And what more the mentor say what should be done.
- Weeks 1-2 :
Write chef recipes for the first sample application. Write tests and deploy the created recipe. Bug fixes.
- Weeks 3-4
Start the web application development, with tasks such as testing, automate development environment, the front-end improvements, etc. Bug fixes. Documentation.
- Weeks 5-7
Continuation of the web application development Write chef recipes for the second and third sample application. Write tests and deploy the created recipe. Bug fixes.
- Weeks 8-10
Continuation of the web application development Git integration. Documentation. Bug fixes.
- Weeks 11-12
Bug fixes. Test and test and more test with many applications. More tests and bug fixes. Documentation. fine adjustments.
Exams and other commitments:In Brazil we are in the period of classes, but I have programmed my semester with an opening for contributions to free software, and if selected will dedicate those hours to GSoC.
Other summer plans: No, but maybe I participate in events like FISL and ?AgileBrazil. But nothing that hinders the progress of the project.
Well, I met during my debian graduation, a teacher who showed me, Professor Paulo. This makes about 2 years i changed my previous linux. With him learned to like free software and to help people, I see that I can be useful people around me, with debian I could be useful to many more people, it is simple just contribute with their projects.
I chose debian in google summer of code by three small reasons:
Having the chance to work and learn with Antonio Terceiro .
Participate in the development of a tool that I know will really help the people, I know many people would like to use the tool, being developer or not.
Debian has several legal projects, I want to be active in the free software community, I will finish my university in this year and no doubt I will have more time for that.
- Are you applying for other projects in SoC? No =).