GSOC 2012/Student Application onurguzel/Web Hosting Control Panel

=Web Hosting Control Panel=

An overview of your proposal
Web Hosting Control Panel allows user to create and manage web, ftp, e-mail, dns, database hosting services for a domain. There are few open source alternatives, however their interfaces are confusing and not easy to use. An open-source control panel software which provides convenient UI is vital for servers.

The need you believe it fulfills
In order to host basic web services, people are needed to configure different applications using different configuration markups with different setting key/values. Managing a hosting server is complicated and hard, especially for beginners.

Creating an easy to use control panel would benefit dedicated and virtual server owners. Instead of buying expensive control panel softwares, people can spend money on better hardware for server.

Any relevant experience you have
I have experience on Linux server administration for 3-4 years. I have used CPanel/WHM and Plesk before, and some other custom control panels by hosting companies. I am aware of how these control panels work, and also what users need/want.

I have been configuring servers manually (without using control panels) since last year. I am familiar with Apache, MySQL, BIND configurations and documentations.

How do you intend to implement your proposal
I am planning to create a Django application for control panel. Configuration settings for all servers and tools will be stored in a database, and the application will provide a front-end interface to modify them. When changes are submitted, this application will create a valid configuration file for related software and save it to system. Application back-end will also be capable of restarting/reloading services if needed.

Final deliverable of the proposal at the end of the period
I believe a beta version which supports limited number of services would be available as a package at the end of the GSoC 2012 program.

After the period of GSoC program, new subpanels for resellers could be implemented as well.

A rough timeline for your progress

 * Week 0-1: Making research and practicing Django framework
 * Week 2: Create database scheme for application
 * Week 3: Create Django application
 * Week 4: Create a UI
 * Week 5: Create a revolutionary UI
 * Week 6-7: Prepare back-end tools to save configuration settings
 * Week 8-9: Connecting back-end parts to front-end
 * Week 10: Testing
 * Week 11-12: Creating package(s) and review
 * Week 12+: Implementing new panel for resellers

Any other details you feel we should consider
Proposed control panel could be expanded with add-ons, such as one-click installer for wordpress/phpbb, creating git repositories, etc.

Since I am an active developer at Pardus GNU/Linux, I am also planning to port the application to Pardus Corporate edition at the end of the period. This port would be a great example for how the application could be ported to other distributions. It is also a promise that I would continue working on the project after GSoC program.

Have you communicated with a potential mentor? If so, who?
I have contacted with Dennis Gilmore. We have discussed about whether I should use database or configuration files as a data source. I have also contacted once more for asking about web frameworks.