Jump to: navigation, search

Difference between revisions of "Internship ideas"

(API All-in-one Guide)
(OpenStack API Reference and Guide Documentation)
Line 25: Line 25:
 
# Add a new API guide that captures and adds to the existing guidance information in the specs.  
 
# Add a new API guide that captures and adds to the existing guidance information in the specs.  
 
# Continue to provide one API reference page for each implemented OpenStack API. Incorporate all existing reference information in the specs (next bullet) into the WADLs for the API Reference pages.  
 
# Continue to provide one API reference page for each implemented OpenStack API. Incorporate all existing reference information in the specs (next bullet) into the WADLs for the API Reference pages.  
# Remove the API specs from the http://docs.openstack.org page. Then, after capturing content in the WADLs for the API Reference pages, move the source content from the repositories to the appropriate project repositories.  
+
# Remove the API specs from the http://docs.openstack.org page. Then, after capturing content in the WADLs for the API Reference pages, move the source content from the repositories to the appropriate project repositories. <br />
 +
<br />
 +
 
  
 
'''Intern tasks:''' (as time permits)
 
'''Intern tasks:''' (as time permits)

Revision as of 15:31, 7 November 2013

Outreach Program for Women Ideas List

The GNOME Foundation provides an outreach program for women. You can learn more here: https://live.gnome.org/OutreachProgramForWomen.

OpenStack would like to participate as a project for the Dec. 2013 to March 2014 session. We have identified some mentors and have sponsorship from the OpenStack Foundation, Rackspace and HP to participate in this program. This page should collect the ideas for applicants to work on.

GNOME OPW emphasizes that applicants may not have ever worked on FLOSS before. There are several stages to the program, but the first stage is to mentor during the application process itself. Joining mailing lists, IRC, understanding the channels of communication are good first steps. Logging bugs and fixing bugs are also good ideas.

Interns are expected to spend 40 hours a week on the project.

So, feel free to list ideas here:

Documentation

OpenStack documentation is highly technical and processed like the code itself. See below for ideas on how to participate as a doc contributor.

OpenStack API Reference and Guide Documentation

Description: Create comprehensive API Guide, remove existing API Reference/s (specs), and enhance API Complete Reference pages.

Goals:

  1. Add a new API guide that captures and adds to the existing guidance information in the specs.
  2. Continue to provide one API reference page for each implemented OpenStack API. Incorporate all existing reference information in the specs (next bullet) into the WADLs for the API Reference pages.
  3. Remove the API specs from the http://docs.openstack.org page. Then, after capturing content in the WADLs for the API Reference pages, move the source content from the repositories to the appropriate project repositories.



Intern tasks: (as time permits)

The intern's focus will be on #3 in the goals list above. Specifically, the intern will help:

  • Move information from existing API specs into API reference page WADLs
  • Test revised WADLs to ensure they produce correct output
  • After WADLs are updated, move existing source specs into appropriate project repositories

Blueprint: https://wiki.openstack.org/w/index.php?title=Blueprint-os-api-docs

Expected results: Single API Guide on the api.openstack.org/ site to offer uniform, consistent instructions across multiple OpenStack APIs. Improved API Reference pages.

Knowledge Prerequisites: XML, HTML, build automation, APIs, javascript Nice-to-have knowledge: WADL, REST API, JSON, programming, Git

Mentor: Diane Fleming

Community

  • Build a supply-chain management system to distribute merchandising to OpenStack User Groups around the world [reed on IRC / stefano at openstack org] Details
  • Write a mobile app for tablets to create a paperless kiosk for marketing collateral at events [reed on IRC / stefano at openstack org] Details
  • Add audio (video?) real time collaboration capabilities to OpenStack User Groups portal [reed on IRC / stefano at openstack org]

Coding

Reporting Framework for Ceilometer based on Oslo Reporting

Description: we need a way to store summary reports generated by Ceilometer. These would be stored as special Events in the CM database and accessable via the CM API. It would be nice to leverage the report work underway in Oslo, if possible.

Existing Reporting BP: https://wiki.openstack.org/wiki/GuruMeditationReport

New Reporting BP: https://blueprints.launchpad.net/ceilometer/+spec/add-ceilometer-reporter

Discussion: http://lists.openstack.org/pipermail/openstack-dev/2013-October/016122.html

Related work: https://github.com/openstack/oslo-incubator/tree/master/openstack/common/report

Expected results: patches to Ceilometer to support the creation of Report Events.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python

Mentors: Sandy Walsh, Julien Danjou

Marconi WebSocket Transport

Description: Marconi, a queuing service for OpenStack, is in its early ages and some of its areas are still being designed and developed from scratch. It is a great opportunity for interns to learn about queuing systems, OpenStack architecture and development methodologies. The proposed project is to help developing a WebSocket based transport for Marconi.

Related blueprint: https://blueprints.launchpad.net/marconi/+spec/websocket-endpoint

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: RESTFul APIs, HTTP, MongoDB

Mentor: Flavio Percoco

Marconi API Spec

Description: Marconi is a queuing service for OpenStack. it's grown very fast, since it was kicked off in late Grizzly. This growth has allowed it to be incubated and to support multiple technologies under the same API and goal. However, there are still some areas that could be more generic and improved. One of those areas is the API specification. As for now, an API is specified within the transport itself. A transport is a frontend plugin that adds support for a specific protocol to Marconi - wsgi, zmq, tcp.

This project is about creating a generic enough API spec that can be interpreted by every transport and that will also allow to have extensions and versioning without sacrificing Marconi's API stability.

Related blueprint: https://blueprints.launchpad.net/marconi/+spec/cross-transport-api-spec

Expected results: Patchsets submitted for review, reviewed by community members. Blueprint draft completion and good development progress. Nice-to-have Knowledge: RESTFul APIs, HTTP.

Mentor: Flavio Percoco

Sparklines in Horizon

Description: A lot of work is currently being done to integrate metering (Ceilometer) better with the web dashboard (Horizon). One nice addition would be to add "sparklines" (for an example of what a sparkline is, see this) to some of the tables in Horizon, so that they poll the data from Ceilometer. The Line Charts library should already provide asynchronous polling.

Related blueprint: https://blueprints.launchpad.net/horizon/+spec/sparklines

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python, Django

Mentors: Julie Pichon, Ladislav Smola

Selenium integration

This project is taken.

Description: The web dashboard (Horizon) unit tests heavily rely on mocking in order to run fast and avoid requiring a fully set up OpenStack environment to run. It would be good to expand the Selenium test suite and use it for integration tests that would test Horizon in more depth, including the APIs it relies on.

Members of the community already have ideas on how one might want to implement this, therefore the first step will be to reach out to the community to collect and discuss ideas. Investigating if Selenium is the best tool for the job or if another may suit better (PhantomJS, ...?) would also be part of the task.

Related blueprint: https://blueprints.launchpad.net/horizon/+spec/selenium-integration-testing

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python, Django, Selenium/UI Testing

Mentors: Julie Pichon

Glance - adding MongoDB support

Description: Glance is used as metadata repository management tool within OpenStack for server Images. NoSQL can be really useful for DB backend for Glance.

Members of the community already have ideas on how one might want to implement this, therefore the first step will be to reach out to the community to collect and discuss ideas. Glance folks are pretty active on #openstack-glance channel most of the time and would be willing to share their opinions on this or any other project.

Related blueprint: https://blueprints.launchpad.net/glance/+spec/enable-mongo-db

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python, MongoDB

Mentors: Iccha Sethi, Nikhil Komawar

Glance - add memcache support for backend upload/download

Description:

Members of the community already have ideas on how one might want to implement this, therefore the first step will be to reach out to the community to collect and discuss ideas. Glance folks are pretty active on #openstack-glance channel most of the time and would be willing to share their opinions on this or any other project.

Related blueprint: https://blueprints.launchpad.net/glance/+spec/glance-upload-memcache , https://blueprints.launchpad.net/glance/+spec/glance-download-memcache

Expected results: Patchsets submitted for review, reviewed by community members.

Knowledge prerequisites: programming knowledge

Nice-to-have knowledge: Python

Mentors: Iccha Sethi, Nikhil Komawar

Design

Persona research and design for Horizon UI

Description: There has been some initial work done in a few different areas around generating Personas for the Horizon UI. This task/project would allow someone to lead the effort to pull the research together, perhaps perform further end-user interviews or surveys, analyze data, form groups of personas, and put together an initial set of target Horizon personas that we can use during requirements gathering, design phases, and general discussion.

Related blueprint: https://blueprints.launchpad.net/openstack-ux/+spec/horizon-personas

Expected results: Initial set of Personas for people to use during requirements gathering, design phases, and general discussion of our target Horizon users.

Knowledge prerequisites: basic interviewing skills, willingness to talk with a lot of new people, readiness to listen and report back findings

Nice-to-have knowledge: User Experience Design basics

Mentors: Liz Blanchard, Ju Lim

Redesign for the Object Storage -> Containers section in Horizon

Description:

Currently, there is a section under the Object Storage panel that allows users (e.g. Consumers and/or Project Administrators) to Create, Delete, and Edit Containers. It would be great to do a little bit of research into identifying the use cases around these features and then proposing a redesign of these features based on the findings. This will include learning some basic Usability best practices and applying them to a design. The design would be done in wireframe format, so it could be done in any tool that allows for this. The design would be reviewed on the UX AskBot site, a new blueprint would need to be created as well. This would take a new designer through the process that currently exists for proposing an updated design to a current feature in Horizon.

Related blueprint: N/A (To be created by intern as part of process)

Expected results: Redesign of "Containers" section in Object Storage panel proposed and approved by Horizon community.

Knowledge prerequisites: basic sketching or wireframing skills

Nice-to-have knowledge: User Experience Design basics

Mentors: Liz Blanchard, Ju Lim


Horizon Concept Review and Usability Testing

Description: There has been very little work done around Horizon UI concept reviews and usability testing. This task/project would allow someone to lead the effort to put together a test plan, identify customers as test participants, conduct (contextual) inquiry / interview, survey users, analyze data to share results / findings with the community findings regarding how current production OpenStack users are using the software, their use cases, and whether the Horizon UI meets their needs. Along the way, you may identify areas of improvement, concepts that need further refinement, and new use cases or opportunities that have not yet been addressed.

Related blueprint: https://blueprints.launchpad.net/openstack-ux/+spec/ux-users-community-testing

Expected results: (1) Identify a community of users willing to participate in Horizon UI usability testing and participate in various OpenStack concept reviews. (2) Share usability test findings with the community that will be used for design and general Horizon discussions.

Knowledge prerequisites: usability testing skills, basic interviewing skills, willingness to talk with a lot of new people, readiness to listen and report back findings, ability to analyze data to find patterns.

Nice-to-have knowledge: User Experience Design and/or User Research basics

Mentors: Ju Lim, Liz Blanchard