Google Summer of Code Ideas 2013

FOSSASIA aims to participate in the Google Summer of Code 2013. We are working together with a number of Open Source developers in the region and function as an umbrella for different projects. If FOSSASIA gets accepted, you will find more information about the application procedure for students on this page.

The ideas list below gets updated continuously. So, please check back again later. And: The best ideas are often ideas of students themselves. So, if you have your own idea or small project, please apply for FOSSASIA on the Google Summer of Code website!

If you have questions or feedback, please write to us on the mailing list: http://groups.google.com/group/fossasia

Important dates for students:

April 9 – 21: Would-be student participants discuss application ideas with mentoring organizations.

April 22: 19:00 UTC: Student application period opens.

May 3: 19:00 UTC: Student application deadline.

GSOC Ideas for FOSSASIA

1. Phimpme Android App

This photo app to connect to “any social service” and Open Source CMS is a project of developers from Vietnam. The goal is to make a beautiful app that also works with web systems based on Drupal, Joomla and WordPress. In Google Summer of Code Students can propose a number of projects around the app. The source code of the app is on github here: https://github.com/phimpme

Ideas for student projects:

Project 1: Implement full Google Maps and OpenStreetMap Support

This project also aims to show photos on a web map on a CMS of own choice.

Usefull skills: Android, Maps API, Understanding of Exif data and implementation, Web development, CMS

Project 2: Add support to more social networks and CMS

Phimpme already supports many social networks including many in Asia. Nevertheless there are still other networks popular in some countries. There are also CMS like TYPO3 which are not yet supported. Students can propose support for other services in this project.

Useful skills: Web Api, Android Development, PHP, Python, Ruby on Rails, Knowledge of CMS

 

2. Meilix Linux Distribution

Meilix is a new Linux project aimed to offer users a fast and easy to use Linux desktop, that can be “frozen” and therefore secured. 

Student projects should implement new features. The goal is to offer a simple user interface to freeze the OS up to different levels, e.g. only freeze the system, but not the home directory.

The Meilix System User Lock can be found on Github here: https://github.com/meilix/systemlock 

Usefull skills: Linux development, Python, Shell, Scripting, GUI design, Inkscape, Gimp

 

3. Networking Tools

OpenWrt is a widely used Linux distribution for embedded devices and specifically routers. Large networks consist of hundreds and even thousand of nodes. Administration of routers, e.g. ESSID setting is a long process.

Student Project: Develop Web Interface Administration tool for large numbers of Nodes (routers) for OpenWrt based on kalua

The goal of a student project would be to develop a new web interface to show the status of routers and enable mass administration of devices. The foundations of this have already been developed in the Kalua application: https://github.com/bittorf/kalua#readme

Useful Skills: Linux development, OpenWrt, Embedded devices, Web UI design, Gimp, Inkscape, Lua, Scripting

Links: http://openwrt.org

 

4. Opencoin.org

Open Coins introduce the idea of versatile digital cash which can be used similar to ordinary cash but allows a higher flexibility. The cash is issued by a central service and you can think of it as digital coins which hold a certain denomination. Each coin is basically a long string like 6A09E317F4BCD… which can be stored locally and transferred between customers in a peer-to-peer manner. Actually the central issuer does not perform the transaction itself but is only involved to ensure the validity of the coins and to prevent fraud by double-spending a coin. This approach is based on David Chaum’s blind signature algorithm in which cryptography protects the coins and ensures the anonymity of the customers. This algorithm was invented 1983 and since then has been analyzed exhaustively by cryptographers and proven to be secure. Since our central issuer service is not directly involved in the transfers, coins can be exchanged peer-to-peer via social networks, e-mail, chat, web portals, and even via portable USB drives.

Links:

* https://github.com/FellowTraveler/Open-Transactions/wiki

https://blindbitcoin.com

* http://opencoin.org

Student Project 1:

The goal is to develop a foundation for the issuer service. The issuer service expose a REST API. For the scope of this project it consists of two simple interfaces for demonstration purposes only:

– A GET interface to allow clients to retrieve coins in JSON format

– A POST interface to allow clients to redeem/send coins in JSON format

Optional: Coins are stored in a SQL database (via squeryl library)

Further Requirements:

– Coins have the following structure: case class Coin(type: String, value: Int)

– The deliverable should contain a documentation which describes how the system is deployed to allow future updates of individual software components. For instance in the future a newer Finagle server version may be used and the documentation should describe step by step how to integrate it with the other libraries and the actual source code.

– Source code should be documented as well.

– Test cases should be performed and documented. Optional: ScalaTest may be used for testing.

Usefull skills and technologies: Scala programming language, Twitter’s Finagle server, SBT build tool,  Optional: Eclipse IDE is recommended, Optional: Coins are stored in a SQL database via squeryl library

The following links might be useful to understand Finagle’s REST capabilities:

https://github.com/robi42/heroku-finagle-rogue/blob/master/src/main/scala/server.scala

https://github.com/twitter/finagle/blob/master/finagle-http/src/main/scala/com/twitter/finagle/http/path/Path.scala

 

Other Student Project Ideas

* Implement opencoin client as a smart phone app (e.g. Android, iPhone, Boot to Gecko)

*Implement core opencoin protocol library in JavaScript. It can be migrated from Python.

* Implement an opencoin client using JavaScript and HTML(5)

* Utilize WebGL to do high performance crypto using JavaScript

* Use the available sensors on mobile phones to generate random numbers that are usable for cryptography (e.g: shake your coins)

* Implement the server side of opencoin using your language of choice (e.g. JavaScript + node.js, Python, Java, Scala, C etc.)

* Implement web wallet in your preferred language which allows users to login an manage their coins and payments.

 

5. Linux Games Distro

The developments in this project are useful for a number of Linux Games distribution. The goal is to create a modern and simple design inspired by new user interfaces in smartphones. The implementation of the UI will be for Linux desktops. The advantage of working with traditional desktop technologies rather than Android is that distributions can make use of numerous games that exist in repositories and combine it with a modern interface.

Project Idea: Develop and implement new UI features with LXlauncher

Apart from designing, developing and implementing new features the student should also package the application for major Linux distributions.

LXLauncher 1: http://sourceforge.net/projects/lxde/files/LXLauncher%20%28for%20Asus%20EeePC%29/

LXLauncher 2: https://launchpad.net/lxlauncher

Useful Skills: C++, Linux Development, gtk+, APIs, GUI design, drivers, Packaging