GSoC/GCI Archive
Google Code-in 2011 FreeBSD

Implement FreeBSD community portal (FCP7) - file upload from the command line

completed by: Alex Rucker

mentors: Wojciech A. Koszek, Jakub Klama

Description of a task

This is a research task. It may or may not be deployed in production systems. No effort has been made to coordinate this task with the FreeBSD Core Team.

In order to accomplish this task you must implement a .sh/ANSI C and .php programs/scripts which work together.

This is VERY important functionality. Think of sending bug reports and kernel panic messages on a system failure. Users could make their rc.conf fit their 'FreeBSD community portal' settings and make bug reports be sent automatically or semi-automatically, after administrator's confirmation.

Client:

The client side must be able to work as a part of the FreeBSD base system. In other words - it is your task to find a way to take whatever we have already in the base system and make it send a file via HTTP. Base system means 'minimal system with no additional applications installed'. Examples of possible solutions: you analyze how fetch(1) program is written and you try to use it's routines/libraries to implement file upload functionality. 

Server:

The PHP side of things should be smart enough to receive a request for the file upload. Details on how to handle uploading and saving are explained in detail FCP6 task (SHA1-based naming scheme). Please follow the rules explained there.

Please follow Steve's Krug "Don't make me think" principles as well as Jacob Nielsen's useability rules when designing the WWW form. In other words: make it as minimalistic and simple as possible.

It is important to understand that client must work from the bare system installation. Technology choice is up to you, but PHP is preferred (Facebook API is in PHP at least). No framework is required to accomplish the task; however, frameworks aren't prohibited. In case of not using any framework, please follow the MVC design principles.