Undergraduate Capstone Open Source Projects

Archive for the ‘Proposals’ Category

Winter 2010 Project #9: MarkUs

Posted by Greg Wilson on 2009/11/19

MarkUs is an open-source tool which recreates the ease and flexibility of grading assignments with pen on paper, within a web application. It also allows students and instructors to form groups, and collaborate on assignments. MarkUs is implemented in Ruby on Rails, and every line of code has been written by undergraduate students. It is currently used in 3 classes at the University of Toronto. There are plans to use it for one course in Waterloo starting in January with the hopes of expanding our user base in the Fall of 2010.

We had great fall term! UCOSP students from Laval, Waterloo and Toronto worked on integrating spiffy testing tools into MarkUs, a new flexible marking scheme, a grade entry form, logging, and a notes system. The team worked very well together and we are fortunate to have a great TA, Mike Conley (who knows MarkUs inside and out), and two industry advisors who were available to answer questions and point us in the right direction.

A major goal for the winter term is extensive work on the user interface. I would like to do some user studies to find out where the UI would benefit most from attention. We need to implement a system to allow instructors to present test results to the students, and we need to rethink some aspects of how groups are formed. Another major goal is to add summarization information in the form of grade histograms and usage statistics for both the instructors and students.

Posted in MarkUs, Proposals | Leave a Comment »

Winter 2010 project #8: WikiDev in Wonderland

Posted by eleni on 2009/11/14

The objective of the team project is to develop a 3d visualization in Sun’s Wonderland. The team will be given access to a WikiDev2.0 project with a set of data on multiple versions of a project developed collaboratively by a small team. The WikiDev repository includes data about classes their metrics and the relations among them. The task will be to implement 3D models and appropriate interactions for users to explore the data in WL, using a city metaphor, as discussed in the paper “A 3D Metaphor for Software Production Visualization” – see http://ieeexplore.ieee.org.login.ezproxy.library.ualberta.ca/stamp/stamp.jsp?tp=&arnumber=1217996&isnumber=27378. Note that this paper does not actually talk about real work: they have not done anything, what they show is from a video created in 3DS Max of the ideas they have. This is a piece of work that can definitely lead to a publication!

Posted in Proposals, WikiDev | Leave a Comment »

Winter 2010 Project #7: Basie

Posted by Greg Wilson on 2009/11/12

Basie is a web-based software project forge that integrates revision control, issue tracking, mailing lists, wikis, status dashboards, and other tools that developers need to work effectively in teams. It is simple enough for students to master in just a few minutes, but powerful enough to support large, distributed teams, and is freely distributed under an open source license.

Basie is built on top of Django, a Python-based web application framework, and the jQuery Javascript library. Our plans for the Winter 2010 term include improving security, adding a code review tool, redesigning parts of the user interface to make full use of AJAX, making the whole system faster, integrating external services like Google Calendar and Twitter, and creating tools to help users of older systems like Trac upgrade. Students must have previous web programming experience (including a basic knowledge of Javascript). Familiarity with Python and Django are also assets.

Mentor: Greg Wilson (University of Toronto)

Posted in Basie, Proposals | Tagged: | Leave a Comment »

Winter 2010 Project #6: GeoTools Support for Ingres

Posted by Greg Wilson on 2009/11/12

The Geospatial Information System industry is over $4B in size and growing rapidly. Perhaps more interesting is that geospatial (think maps) technology is being integrated into mainstream technology. For example, how may people have not used Google Maps or a GPS at some point? Technology change has made what was impossible a decade ago not only possible, but perhaps practical for firms that could not use geospatial technology in the past. Driving this along with technology change are new standards and a non-profit foundation called the Open Source Geospatial Foundation (OSGeo).

GeoTools is a geospatial toolkit developed in Java that is used by GeoServer, a standards-based web mapping engine under the banner of OSGeo. It is feature rich and very competitive in terms of performance with other web mapping software available today. There is government, industry, and community interest in this project. This project therefore has the potential to enable a consortium of smaller firms to rally together and bid on geospatial projects tendered by larger firms and governments. This in turn has a high likelihood of creating jobs, saving the government and industry firms money, strengthen the open source geospatial community, and enable the scientific teams to be more productive.

This is a great opportunity for students to learn a lot about Java, Java web programming, geospatial technologies, and databases, and to work with teams from IngresOpenGeo, OSGeo, and roughly half a dozen other companies. This project could launch a very successful career for students with the organizations involved. Many of these firms are recruiting in anticipation of baby boomer retirements coming in the next decade.

Mentor: Andrew Ross (Ingres)

Posted in Ingres, Proposals | Tagged: | Leave a Comment »

Winter 2010 Project #5: Mercurial

Posted by Greg Wilson on 2009/11/12

The Mercurial distributed version control system is used by thousands of developers. NetBeans, OpenJDK, OpenOffice, and Python itself are just a few of the projects that have adopted Mercurial as their version control system. But as much as Mercurial has been making incredible inroads in the open-source community, it has some key deficiencies that make it a poor choice for real-life commercial development.

Here at Fog Creek Software, we’re about to release a brand-new source control management system called Kiln that’s based on Mercurial. As part of that project, we want to fix the problems in Mercurial that currently prevent commercial development shops from adopting it with the same enthusiasm as their open-source counterparts.

That’s where you come in. In UCOSP, you will focus on improving Mercurial’s performance and user. More specifically, you’ll:

  • Improve the handling of binary files
  • Improve support for very large repositories
  • Add support for secure password management
  • Improve end-user feedback during lengthy network operations
  • Improve history viewing tools

Once you’ve implemented these improvements, we’ll be sending them to the Mercurial project, which has a highly supportive developer community and a predictable release schedule. So you’ll have a really high chance of seeing your code in production soon after the project ends.

Mercurial is written in high-level Python and low-level C, and has relatively complex on-disk formats and network protocols. Because we’ll be touching most of the stack, you’ll feel most comfortable if your past experience runs the gamut from high- to low-level work.

Mentor: Benjamin Pollack (Fog Creek Software)

Posted in Mercurial, Proposals | Tagged: | Leave a Comment »

Winter 2010 Project #4: Thunderbird

Posted by Greg Wilson on 2009/11/12

Mozilla Thunderbird is the award winning email client created by Mozilla Messaging. Used by millions of people world wide, it is made available for Windows, Mac OS X, and Linux in over 40 different languages.

Mozilla’s aims for this term’s project will be to introduce you to the technological, social, and pragmatic aspects of developing open source software through direct involvement in the project, and secondarily to work on features and bugs in Mozilla Thunderbird 3. The results of your efforts will be rolled in to the next version, Thunderbird 3.1. There is a list of the potential bugs for you to browse through.

Knowledge of C++ or JavaScript, HTML, and XML is strongly suggested.

Mozilla is a global community of people creating a better internet. We build public benefit into the internet by creating free, open source products and technologies that improve the online experience for people everywhere. We work in the open under the umbrella of the non-profit Mozilla Foundation. Everything we create is a public asset available for others to use, adapt, and improve. As a wholly owned subsidiary of Mozilla, Mozilla Messaging organizes the development and marketing of email and messaging products. This unique structure has enabled Mozilla Messaging to financially support and cultivate competitive, viable community innovation.

Mentor: Blake Winton (Mozilla Messaging)

Posted in Proposals, Thunderbird | Tagged: | Leave a Comment »

Winter 2010 Project #3: Pony-Build

Posted by Greg Wilson on 2009/11/11

Pony-build is a simple system for gathering, managing, displaying, and integrating build and test results.   It consists of two core components: a server (for gathering and managing results) and a client library for describing build and test processes.

The project goals are pretty open, but we’d like to enable features like “phoning home” from tests run during installation; integration with test-running frameworks; upload and storage of binary “-latest” packages; inclusion and display of code coverage; “test swarms” and a leaderboard for the Python community; integration with the Python Package Index; and configurable PubSubHubbub-based “push” notification of build events.

Students should be familiar with Python and Web programming; pony-build subprojects will include Web programming and testing, systems administration,package management, and notification implementation.

Mentor: Titus Brown (Michigan State University)

Posted in Proposals | Tagged: | Leave a Comment »

Winter 2010 Project #2: Data Server Flight Simulator

Posted by Greg Wilson on 2009/11/11

One of the major long term goals for the Technology Explorer for IBM DB2 has been to provide an environment similar to a flight simulator for Database Administrators. Pilots used to learn to deal with potentially dangerous and stressful situations in a real plane. This was risky and expensive. Pilots today learn to deal with system failures and extreme conditions on flight simulators. DBAs still develop their experience on live multi-million dollar production systems. They could develop skills and confidence faster and more safely on a simulator.

Over the past few years the Technology Explorer for IBM DB2 team has built all the base components to create this simulator as part of our open source project. The next step is to pull the pieces together into a viable simulation. The team will use the existing open source building blocks to simulate a stable production system and then disrupt it with a number of planned or unplanned problems. The system will then walk the DBA through problem recognition and resolution.

This project would:

  • Extend the existing framework to simulate database management problems
    • Simulate DB2 in production
    • Create a disruption of the system, for example a hard drive failure, lock contention, or excessive workload
    • Guide a DBA to identification and resolution of the disruption
  • Develop at least one example of a problem simulation

Students should be comfortable working in PHP, JavaScript, JAVA, HTML and XML. They should also be familiar with databases concepts. Administration experience and knowledge of IBM DB2 or an aptitude for visual interface development would be an asset.

Mentor: Peter Kohlmann (IBM Canada)

Posted in Proposals | Tagged: | Leave a Comment »

Winter 2010 Project #1: IDE4EDU

Posted by Greg Wilson on 2009/11/11

The Eclipse IDE for Education (IDE4EDU) is a version of Eclipse streamlined specifically for use by university and college students. The environment provides support for programming languages that are commonly used in university courses, including Java, Scheme, and Prolog.

Our initial efforts were focused on providing a Java environment with reduced clutter that allows students to focus on their immediate requirement of getting classroom work done. This version provided a streamlined environment featuring stripped down versions of wizards for creating common elements. We anticipate that students will use this environment in their first months of learning and then progress to a more complete Eclipse configuration.

Our next immediate focus is to provide support for other languages commonly used in post-secondary education such as Scheme and Prolog (Scheme support is expected soon, pending a positive outcome from our IP due diligence process). We have discussed some crazy ideas of where we might take the Eclipse IDE for Education. It is has been suggested, for example, that it might be cool to use the ECF discovery APIs to allow an instructor to make assignments available through the environment itself; students might obtain those assignments by merely being in network proximity to their instructor’s computer. These discussions are occurring and in our mailing list.

The Eclipse IDE for Education certainly is ripe for contributions as part of student projects, master’s theses, and more (hint, hint). Come join the project and make a difference. Your contributions will have immediate impact on those students that already use the IDE4EDU to complete their assignments.

Mentor: Prof. Dwight Deugo (Carleton University)

Posted in Proposals | Tagged: | Leave a Comment »