Welcome to the Oregon State University Open Source Lab Google Summer of Code Ideas page.
One of the things we learned in the past three Summer of Code programs is that the more time spent on collecting and refining the proposed project ideas, the better the summer goes. So with that in mind … ta-dah! A new SoC ideas page.
Thank you for your interest in the Open Source Lab's Summer of Code proposals. Here at the OSL we feel we have a two-part goal. First, we are a strong supporter of the open source community and want to help as many projects as we can. Second, we are an educational institution that tries to incorporate teaching and learning into as much of what we do as possible. The Google Summer of Code helps us to do both.
Proposals that are written poorly or in an unprofessional manner, use improper grammar or spelling, or do not answer all the questions in our application template completely will be rejected.
It is important to note that none of these projects are cast in stone. We very much want to work with our students on developing and shaping the project. Think of this page as a general outline of some of the things we want to do. Don't be afraid to propose something that does not exactly match what we have below. If you have a great idea for a project that's not listed here, please feel free to submit it. If it is a very well thought-out proposal with realistic goals, is in some way related to one of the projects we work with and something one of our mentors would be interested in working on, we may consider accepting it.
There's more to a good proposal than just a good project idea. When we evaluate proposals, we don't just look at the idea itself. We also look at how much thought and effort has gone into the proposal. Does it have a roadmap or a timeline with milestones? Are the milestones reasonable? Is there time built in for documentation and bug-squashing? Has something like this been done before? If so, how is this proposal different?
It's important when starting a new relationship like this that both sides are aware of the expectations involved. We're a pretty easygoing bunch here at the OSL - we're far more interested in building neat stuff than we are about rigidly following some policies and procedures manual. However, we do have some pretty simple expectations:
Questions? Concerns? Want ask us if we'd be interested in an application?
Hint: if we've already talked to you about your proposal, it helps your chances for acceptance. We're happy to give feedback and suggestions on proposals, so it's a good idea talk to us before you submit it.
AndroidIRC(name?) is a completely open source IRC client for Google's Android mobile platform (http://code.google.com/android/).
There are 3 logical divisions of labor for this project:
Pydra is an open source parallel and clustered computing solution written in python using Twisted.Python and Django. Pydra is a new project that is working towards it's first public release.
There are a lot of features on the wishlist for pydra. Pick and choose from these ideas, or check out the task tracker:
Develop an application that uses Pydra to reduce its run time. Here are some suggestions, feel free to come up with your own ideas.
Touchscreen is software for running interactive slideshows/demos. Touchscreen allows standalone slideshows or interactive displays using controls such as a touchscreen interface. It is primarily used at the OSL on the large flatscreen+touchscreen directly outside our server room. It displays various statistics and realtime data about the lab.
We are in the process of rewriting touchscreen to use Django, Jquery, javascript, HTML, and CSS.
Write new plugin(s) that showcases things happening at the osl. We'll supply the data, you supply an exciting representation of it.
Here are some screens we have already produced:
Suggestions for new screens:
Here are some suggestions of things to be worked on, or take a look at the task tracker
The Protein Geometry Database is a tool for searching and correlating geometric structures within proteins. It is used to derive empirical information about protein geometry which will produce improved modeling techniques. Highly detailed protein models will ultimately result in knowledge of how diseases function, and what drugs will inhibit them. The software is being developed by the OSL for the Oregon State University Department of Biochemistry & Biophysics
PGD is in an early beta state. We have a usable version there are many features planned for 1.0 that have not been implemented yet
Check out the demo
Here are some example tasks to choose from, or take a look at the Task Tracker and suggest your own idea.
Unify is a unifed package building system using gentoo ebuilds as the “build scripts”. Its primary purpose is to create proper binary packages for deb, rpm, and Solaris package types. The basics of the application was created last year in the previous SoC. Check out the project here.
Currently Unify has no concept of package build dependencies. Each package format has their own naming scheme for package dependencies. Gentoo also has no concept of sub-packages like most binary packages have (i.e. -devel, -libs, etc). The logic and concept for this needs to be created and implemented.
The original goal for the project was creating a sane system for building solaris packages using gentoo ebuilds. Implementing support for at least Solaris 9 and 10 would be great. It would require knowledge of Solaris and its packaging sytem (which is mostly closed sourced). It also has no real package manager, so that would need to be accounted for possibly.
VirtAdmin is a project at the OSL to create a web interface for managing virtual infrastructure. The goals are to simplify management and eventually to be able to give projects limited access to virtualized infrastructure we host for them (for example allowing them to get on the console or reboot a virtual machine).
Here are a few of the ideas we have for the project:
Beaversource (http://beaversource.oregonstate.edu) is a collaborative effort among many different departments on campus to create a code community for open source development at OSU. It attempts to provide a constructive and positive environment for FOSS software developers on campus.
OSWALD (http://beaversource.oregonstate.edu/projects/cspfl) is a student-developed Ultra-mobile PC, made for undergraduate students to explore CS concepts hands-on. To do this, the OSWALD is powerful, flexible, and incorporating some of the latest technology available, while keeping the cost to a minimum.
The Open Source Digital Voting (OSDV) Foundation serves as a supporting organization for a collection of open source digital voting technology projects. The purpose of the Foundation is to provide support and protection for the development of the specifications, draft standards, and reference implementations of high assurance, high veracity digital voting technology
We propose that one or more Google Summer of Code students work with OSL staff on the design and development of a demonstration digital voting service that uses high assurance voting system “reference implementations” which meet the draft standard guidelines, specifications, and potential assessment standards.
Please note that some of these ideas may be too large or too small for a Summer of Code project. Please keep that in mind while formulating your proposal.
Goal: create a substantially minimized Linux distro and build process for simple embedded applications. This distro will be the basis for voting systems designed by OSDV. The reasoning for a reduced distro is to reduce the amount of source code in the distro. Both the build system and all source code must be certified by an independent test lab prior to use in U.S. elections. Less source code simplifies and speeds up the certification process.
Goal: Build a distribution of Python that has the minimal set of functionality needed for voting systems.
Goal: create a first version of the BCCS component that creates the final election results by totaling up partial election results.
Background:
In such a language (python preferred), develop a program to meet these functional requirements:
Goal: The end result is a LiveCD image that boots a system that runs exactly one program, which is a customized Web browser in which security configurations (including certificates) are unchangable. Some assitance from mozilla,org folks may be available.
Background: The eventual objective is to create a browser appliance that is more auditable than the standard alternative (full browser distro running on full OS distro) by virtue of lower size and complexity. Auditability, in turn, is central to developing assurance of the embedded security properties of the browser appliance.
Goal: enhance pvote (a balloting software package, see pvote.org) to print a paper artifact that resembles an official ballot
Goal: create ballot marking software with a presentation layer that closely mimics the presentation of a paper ballot
Electronic ballot marking devices present an unusual challenge in high-assurance system development and user interface design: an EBM system must present ballot information a choice that are exactly the same as that presented by a paper ballot; and ensure that users have the same progress tracking information as offered in a paper ballot; and select the proper ballot that captures the user's choices, with a minimum of software complexity and a maximum of software auditability. Using as an example a real election paper ballot, and building on previous work in pre-rendered user interfaces, implement a visual navigation scheme that shows the whole ballot, selection and zooming to particular contests, selection and marking of each contest, progress tracking showing completed sections of the ballot, and selection of a pre-rendered ballot image to be printed. Demonstrate strong software separation between UI functions, ballot-data storage functions, and ballot image prep and printing functions.
Background: Ballot browser is an existing open source software package that consumes a set of ballot image files, performing image processing to extract marks representing votes, and to record ballot, vote, and tally information in a local database.
Goal: augment Ballot Browser with functions for creating pre-defined reports, and for simple user-user-driven ad hoc queries.
OSDV is building an open source Voter Registration System and Election Management System, using ruby/rails. Contributions range from joining the ongoing implementation team for voter registration, to finishing the design and starting the development for election management. An extensive set of functional requirements is available at http://www.sos.ca.gov/elections/bidders_library/final-rfp-changes-accepted/add8-section-VI-2008-changes-accepted.pdf pages 12 to 95.
The OSL hosts Openoffice.org's Extensions website which is powered by Drupal 5. Unfortunately most of the modifications that were made to the site were done directly to the core Drupal code which makes upgrading it nearly impossible. This project would entail going through the existing code base, proposing a plan for how it could be implemented as one or more modules in Drupal 6, writing the modules, and finally testing the modules. We're currently working on a detailed list of changes that were made which should be posted soon.