From Fedora Project Wiki

Idea

To design and implement a robust open source web hosting control panel that could replace commercial control panels such as cPanel or Plesk. The goal is to design a system which would be useful for users of all skill levels, presenting all the necessary tools of a control panel in a simple, efficient, design.

Why?

I believe having a native web-hosting control panel inside Fedora has a multitude of benefits. First and foremost is the obvious move from reliance on commercial control panels to a free, open source, software that could receive community updates, contributed code, and all the other benefits that open software has. Also, I believe that having this native control panel could make Fedora more competitive of a consideration for any web/server operating system, as the integrated web-hosting control panel would be very appealing to users, especially those with little experience manually setting up systems.

Detailed Description

I intend to not only replicate the functionality provided by current web hosting control panels, but to develop an intuitive and easy to use interface that will further attract potential users. Current web hosting control panels are either old, bloated, or hard to understand. It is my goal to create a simple, efficient, yet robust and powerful control panel that a user of any skill level can look at and immediately understand how to complete what they want to complete with little or no assistance. This, I feel, is a key aspect of this project. Functionality is a given, but creating a design that is good for any user, beginner to advanced, is key to creating a control panel that will replace the existing commercial systems. The control panel would, as I said, implement most of the features that are common in commercial web-hosting control panels and perhaps even go beyond that to provide some features that current panels lack. A plugin system perhaps as well, so that there would be unlimited potential for expansion of the system.

To create a solid, functional, user facing web interface that can automate the background tasks required to deliver the end result to the user. I intend to implement the system in Python, though I may talk with the mentor and consider if another language might be a better alternative, I'm not entirely sure what the requirements language wise are or if python was chosen for a specific reason. Regardless of the language, I will have a structured web interface that will be cleanly written and well documented as well as easily extensible. I plan on implementing a plugin system that would allow users to extend the functionality of the site to their heart's content. The site may be front-ended in PHP with calls to Python back-end scripts to complete the required tasks.

Core Tasks

1) Develop user-facing interface
2) Create robust python scripts that can automate the desired actions with the minimal user input
  i) These scripts must be well tested and nearly infallible, we cannot expect users to debug and errors therein.
  ii) These scripts will be hooked into the UI as they are created.
3) Design plugin system and perhaps theme system
4) Test, test, then test more.
5) Review and release

Scheduled Progress Timeline

Before SoC: Research any unfamiliar aspects, and brush up on my Python

Phase 1: Plan all functionality, beyond the required functionality on the ideas page, then develop a rich user interface to provide for this. Also completely develop plugin system and all web-application features.

Phase 2: Implement backend scripts to provide for the required functionality of the control panel. After this phase, a working project will exist.

Phase 3: Testing and debugging, then create solid documentation for the control panel. Once this is complete, submit it for review.