From Fedora Project Wiki

< GSOC 2013

Revision as of 14:45, 1 May 2013 by Jcmarca (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Web hosting control panel project

Contact Information

  • Email Address: jcmarca@gmail.com
  • Blog URL: jcmarca.wordpress.com


NOTE: We require all students to blog about the progress of their project. You are strongly encouraged to register on the Freenode network and participate in our IRC channels. For more information and other instructions contact Org Admins.

please answer following questions


Why do you want to work with the Fedora Project?

          I was using fedora for a while (six years)  and I was wondering how get involved in the project. And then I found this great opportunity.


Do you have any past involvement with the Fedora project or any other open source project as a contributor?

          No, I have not any past involvement with Fedora project or any other open source project.

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

          No, I did not participate in any past GSoc program.

Will you continue contributing/ supporting the Fedora project after the GSoC 2013 program, if yes, which team(s), you are interested with?

My intention was to get involved before then find this program. If I'm not selected, I will be interested to contribute with Fedora anyway.

Why should we choose you over other applicants?

I deployed two servers running Fedora, an e-mail server and a web server. I manage more than 100 domains on the web server and more than 300 e-mail accounts on the e-mail server. I have developed a control panel to manage the domains and the e-mail accounts. I have experienced developing in java, .net, php and bash scripting. I also have large experience (over 14 years) in manage database systems as Mysql, Ms Sql Server and Oracle Databases. I'm 42 years old but I back to university two years a go to improve my skills.


Proposal Description

Overview

The target is to develop an easy to use Web hosting control panel to manage domains in a web server. The final project should be an easy to install packet using yum. The goals of the project is to make a real and free alternative tool to manage web hosting, avoiding limitations and confusing interfaces from other web hosting control panels


What it should do.

The project should offer a web interface to manage the domains of the web hosting. First page should be a login page to authenticate the user or create a new one. Second page should show a list of the domain names associated to the user or/and the possibility to add a new one. If the user choose one of the already listed domains, the configuration domain page will be shown. On this page the user will be able to create/edit email accounts and passwords, change DNS names, create/edit ftp users and passwords (and the rest of the options that we found necessary to develop). If the user choose the option to add new domain the insert new domain page will be shown. On this page the user will be able to add a new domain name and then the page will redirect him to the configuration domain page.


How it should be done.

The application will consist on different python scripts that communicates to fedora services (apache, dovecot, Bind, Mysql, ...) to accomplish the tasks. The number of needed scripts and their functionality will be defined on the firsts weeks of the project. The user interface of the web hosting control panel could be developed in php. This web interface will call the different scripts described above to do the tasks. The details and the design of the interface will be defined on the firsts weeks of the project.


Timeline

  • Preliminary: Research, find needs, explore new ideas investigate what it is already developed from others.
  • Week 1: Continue research, describe the final functionalities to develop. Create a project repository in fedorahosted.
  • Week 2: Design the application diagram, describe use cases, design sequence diagrams, Design a database schema
  • Weeks 3 and 4: Draw a basic prototype of the design of the web. Once is validated, develop it for the database already design it.
  • Week 5: Testing, testing and testing.
  • Week 6: Start to develop scripts. Testing will be performed for every script developed.
  • Week 7: Continue developing and testing scripts.
  • Week 8: make webpage communicates with the scripts and setup the things automatically.
  • Week 9: start packaging it for fedora and fedora-epel
  • Week 10: submit it for review
  • Week 11: get it approved.
  • Week 12: Launch it.


About me

My name is Jose Carlos Marugan. I'm from Barcelona (Spain). I have large experienced as a developer (more than 14 years). I'm 42 years old. Two years ago, I enrol myself at the university because I felt the need to learn new things and improve my skills. By now I can say that it was one of the best decisions I ever made.

Related to this project, on my work experience, I have deployed and managed servers running Fedora. One was a web server with over 100 domains hosted and another one was a e-mail server with over 400 e-mail accounts. To manage both servers I already developed a control panel that use a web interface and bash scripts to perform the tasks. I hope this will be helpful for this project.

I never develop on python language before but I can develop in other languages as java, bash script, php and .net, so it will be only the syntax and the particular features of the python language that I will have to learn. I'm quick learning so I hope this will not delay the project. I will try my best.


Possible improvements.

Maybe it could be a good idea to develop the project as web service, so in future projects will be easy to develop different interfaces for different devices as a mobile App to manage domains.