Name Baptiste Mouterde
Contact/Email: Irc : Ko_lo
mail/jabber baptiste.mouterde@gmail.com
Background:
I am in my last year at the University of Technology (IUT) in Belfort (France), I have learned there a lot of languages such as Python, java, c, c++, html/css (trying to use as often as possible the latest versions and including the same feature for old browsers), php, Javascript, sql, Functional test on Java. I will start working on ajax/Jquery soon. I have been acquiring a large part of my knowledge by myself, doing some projects for friends, this include for example Django, Python, html/css, java. I do not have any knowledge on deboostrap, but my philosophy is that learning something new is always a positive challenge and I am not afraid to work on my own. I am currently working on how to make those programs open Sourced. In all my projects I have always tried to make my work as user-friendly as possible without loosing any feature. I have also had to make algorithm lighter and lighter because of the poor quality of these servers I have had to use.
I am curious, thanks mainly to scouting where I am an animator and educator and which requires people to have a lot of ideas. That’s why I can say that I am quite creative and ingenious. I am also serious and committed to my work and I see myself as a very punctual person who cannot stand being late.
I have always looked for a personal Virtual Image of Debian but adding my own package on it, in order to be able to install or run a full equipped Debian anywhere.
Project title a web interface for Virtual Image creation
Synopsis: the project is a user-friendly web interface to make your own virtual Image of Debian, using Debian servers with your own script and data on it.
Project details
Main idea
The first aim of the project is making a web interface to help non programmers make their own virtual Image of Debian for the cloud with their own selected package, this will include user script than can be launched on the first or on all boot. The user may be able to add some data that he or she can find useful for the Image.
The second aim of the project is to create something that is easy and quick to understand , indeed knowing quickly if a package will or will not work with some others without having to read all the documentation seems to me of foremost importance.I also aim at working on an interactive package. Finally after asking the Virtual Image,Python and some scripts will do the work server size as Cron task. Each Virtual Image will have its own ssh key and its own password
Details:
- Using Python:
- Powerful language
- Tests are easy to do
- I am experienced in this language
- Using script:
- The best way to interact with Os
- Easier for making Virtual Image (using Chroot and Deboostrap)
- Using Django:
- I am experienced using it
- Powerful framework
- Using python..
Design proposal:
The project will be divided into 3 parts
The pure python part:
- this part will have to use the Debian API
- it will have to check the Virtual Image result, if there is no package conflict
- It may be able to communicate with web interface for the package list and autocompleting
- Will launch the script for the Image
- Write script for first (or not) boot?
- Write script for making the final image?
- implementing during development process unit test and functional test (using python test feature)
The script part:
- Create the Virtual Image
- Compress data sent from the web
- Install user made script
The web part (Django & html & css & js and/or ajax):
- Will be as friendly as possible
- Will let you choose the package with autocompleting
- Will have a powerful tool to fix package conflicts
- Will upload files from your computer or url
- Will Upload (from computer or url) or write script
Personal idea:
- It can be useful if we had a part like “other user's choice”, it may help the user to remember some important packages. The interface can propose basic templates for office work, server work users could create their templates and submit them. It is possible to make a step-by-step process to help the user
Maybe the web part could have two views:
- The first one is for a lightweight navigation, (console based browser) basic autocompleting features, and simple package conflict, uploading or writing script tool. The second one will be bigger with package suggestion, basic template and all features from the lightweight one, more sophisticated and still simple!
Proposed development method:
- The first part of the development will be the python part and the web part in order to test the feature at each step .
- I think the script part will come in the middle, then the interactive part will come at the end. I choose this development method because it's seem legit that you build the core, than a test interface, than making everything glossy and shiny
Testing:
- It seems important to see if the project is not going to destroy the server, the testing time will be set for testing memory usage (for building Virtual Image as well as for uploading files). It may test for protection about scripting, ssh key generation, password per Image. Finally if everything works fine. It would be interesting to test the system at any time, it could be useful for Cron check. Other way, during the development process all the program will be tested with functional test and unit test in order to prevent useless code or any other errors. using python tools the code will be validated during development process. (using unittest for example)
Benefits to Debian
- As Suse studio does it, it may be really interesting if Debian could have the same tools. if some people wanted to make a Virtual Image for a cloud based server, people will have to learn a lot before making one Image. With this tools Debian would be a must have for cloud computing.
Deliverables:
Per week I will post at least one article on a blog for the week’s work I will send a mail to the mailing list in the same goal At each hard point or Search work I will post the result and maybe the how-to on the blog I can post the work on progress on twitter or other websites like...
Project schedule:
Before summer:
- Playing with debian API
- Continue learning ajax/jquerry
- Improving Django knowledge
- Looking at deboostrap
First two weeks:
- Preparing the structure including:
- Folders structure
- Installing django
- Making first python works
- Creating a simple template for testing python program
4 weeks:
- (2 weeks) Implementation of script
- (2 weeks) Ending python work
- Continue web testing interface (could be the lightweight?)
1 week:
- Making a demo of the project with lightweight interface, script, first Virtual Image making
2 weeks:
- Implement the biggest interface
- Implement uploading file and script
- Implement template submission
1 week:
- Test, code cleaning
Last weeks:
- Bug tracking/fixing
- Final test
- Listen to community
- Final documentation
- Minor design adaptation
After Gsoc:
- Maintain projects alive
- Listen to the community
Exams and other commitments:
I have got exams the last week of May and the first of June, before that I will be available for 20h or more per week after that I will be able to work more
Other summer plans: some days for animation (voluntary work for scouting) (less than 10 for sure), can change if the project needs more work.
Why Debian?:
Debian is to my mind one of the best systems available, I use it server side, and when I work. I choose Debian because I trust in the future of open sourced and free software, Debian is also a huge part of the Linux world that I would like to help growing, this summer of code can be for me a way to take part in the Debian movement, I find the work done on Debian pretty amazing, it’s uncommon to find an Os as stable as Debian.
- This year I'm only applying for this project
points with a question mark mean idea that may be fixed, or deleted, also all the details on the project are the image that I got, there is nothing fix yet I'm available to discuss on each point if needed!
