GSOC 2012/Student Application sayanchowdhury

Contact Information

 * Email Address: sayanchowdhury AT fedoraproject DOT org
 * Telephone: +91 9547511716
 * Blog URL: http://fosswithme.wordpress.com
 * Freenode IRC Nick: sayan

Why do you want to work with the Fedora Project?
I would like to be part of Fedora Project because I take immense pleasure working in an open-source community. After acquiring the knowledge about the community I switched over to Fedora as a full-time user. I also started contributing to various open-source projects. Getting selected in GSoC will be a boost to my skills and shall help in contributing back to the society.

Do you have any past involvement with the Fedora project or with any another open source project as a contributor (if possible please add some references as well)?
Yes, I have contributed to other open source projects, like Transifex, Askbot. I also contributed patches in other projects like wordgroupz, wordcollections. I am also a Technical Hindi Translator for Transifex.

Did you participate with the past GSoC programs, if so which years, which organizations?
No

Will you continue contributing/ supporting the Fedora project after the GSoC 2012 program, if yes, which team(s)/area(s), you are interested with?
Yes, I will really love to keep contributing with the Fedora Project as a Web Developer in Fedora Websites.

Why should we choose you over the other applicants?
I have keen interest in contributing to open source projects, I am interested in web development and have been rendering my service on it for the last one year. I also possess good knowledge on this project's code base.

Proposal Description
Dorrie: A web-interface for building Fedora Spins/Remixes

An overview of your proposal
The motive of my proposal is to work on the feature-list of Dorrie to make it more usable and deployable. The proposal is based on a Fedora GSoC idea by User:Shreyankg. The proposal focuses on the idea to implement features:-
 * Support of formats of images for DVD ISOs, virtual machine, hdd images.
 * Add User-Management in Dorrie for user to maintain a list of his personal builds and public dashboard for other people   to download  the build which will make the build reusable.
 * Add features to download various kinds of Fedora Spins or customize the Spins and download them.
 * Add features to customize settings like Network, Firewall, Users and Groups, Time-zone, Logo and background, etc.
 * Create a test environment for Dorrie.
 * Add support to add custom packages/repos.
 * Support to add custom files/run custom scripts after installation.

The need you believe it fulfills

 * Download various image formats.
 * Maintain list of personal builds.
 * Customize kickstart settings.
 * Add custom repos and run custom scripts post installation.
 * Convenient test environment.

Any relevant experience you have
I am working on python for almost two years and on Django for last one year on various open source projects.

How do you intend to implement your proposal
The proposal can be divided into three parts:

The different kind of format can be implemented using the python libraries for example the install media format of the Fedora DVD ISO can be implemented using pungi; the virt image can be implemented using the python-virtinst. For the Spins, a kickstart file could be kept in Cache and updated on regular basis. When the user selects a particular    Spin, the updated .ks is picked up from Cache and the user can modify thereafter, if he needs. Users can also add custom packages/repos i.e. uploads links of rpms not distributed by Fedora. User also get the option to select files that one wants to include in their home directory. Support to run custom shell scripts after the installation is also thought to be added. As the user changes the above settings, the settings needs to be written to the kickstart file, and the images are built accordingly. The python module pykickstart will be used in order to create the kickstart file. The User management features can be implemented using the django-apps, like the user features can be handled by django-userena and permissions by django-authority. If possible, the django-social-auth feature can also be implemented. FAS authentication is also thought to be implemented using the python module, python-fedora.
 * Formats Support:
 * Kickstart Configuration:
 * User Management:

A rough timeline for your progress
This my expected timeline for the project.


 * April 25 - May 23 (4 weeks): Getting started (Community Bonding Period)
 * May 21 (fixed): Start of coding period
 * May 21 - June 11 (3 weeks): Implement User-Management, User Dashboard, User Profile
 * June 12 - July 3 (3 weeks): Add feature to download DVDs ISO, virtual image
 * July 4 – July 11 (1 Week): Implement feature to build Spin
 * July 12 (fixed): Mid-term evaluations
 * July 13 - July 27 (2 weeks): Add feature to customize image settings, Add support to add custom packages/repos and support to add custom files/run custom scripts after installation.
 * July 28 – August 12 (2 weeks): Add feature to download hdd images
 * August 13 (fixed): Suggested "pencils down" date
 * August 13 - August 20 (1 week): Final polishing
 * August 20 (fixed): Firm "pencils down" date (end of coding period)

Have you communicated with a potential mentor? If so, who?

 * Yes, they are User:Shreyankg and User:Rtnpro.