Page MenuHomePhabricator

Outreachy Proposal: Make the Education program dashboard usable for all languages and projects
Closed, DeclinedPublic

Description

Name: Mary Dickson Diaz
Email: mdickson at gmail
IRC nick: marythought
Portfolio: http://www.marydickson.info
Resume: http://www.marydickson.info/resume

Location: Seattle, WA
Typical working hours: 9 - 5 Pacific Coast Time

Project Synopsis:

Short summary describing your project: what it means to accomplish, and how it will benefit MediaWiki or Wikimedia projects such as Wikipedia.

Since 2010, the Wiki Education Foundation Dashboard has served as a tool to connect nearly 14,000 students to the publishing power of Wikipedia. Using the Dashboard’s training libraries and course management features for groups of Wikipedia users, and under the guidance of an experienced instructor, students make the leap from passive learning to an active expression of knowledge by contributing to Wikipedia. While the Dashboard was originally structured as a tool for university classrooms in the USA and Canada, in recent years it has garnered interest from international educators and groups seeking to use it outside a traditional university classroom setting.

This project seeks to add additional functionality to the Dashboard, making it usable across languages and in multiple learning contexts. This will be accomplished by completing the internationalization (i18n) work, and adding options to disable — or locally configure — the features that are specific to Wiki Education Foundation's programs. The Wiki Ed Dashboard is a Ruby on Rails app that runs dashboard.wikiedu.org ( source on GitHub), with the front-end is powered by React.js. Translations for the Wiki Ed Dashboard interface are handled through translatewiki.net. All new interface strings — excluding the program-specific content of the assignment wizard and the training modules — will be added into the config/locale/en.yml file, and documentation for those strings (describing how they are used in the interface, to aid translators) should go into the corresponding qqq.yml file. All other locale files are updated periodically via translatewiki.net. Within frontend JavaScript (Coffeescript) code, the locale data is uses to generate the I18n.js file, and strings can then be called like this: I18n.t('users.mainspace_chars').

To illustrate, here’s an example of a plain text vs. properly formatted i18n string in use, and the corresponding .yml file providing the English translation (similar language files exist for translations):

Text as plain text:

Text in correct i18n format:

Text added to en.yml file:

By making the Dashboard more accessible to students and instructors in diverse settings and learning contexts, we ensure that more students are exposed to and trained as Wikipedia editors, lowering the barriers to participation and diversifying the editor pool.

Deliverables

Please describe the details and the timeline of the work you plan to accomplish on the project you are most interested in (discuss these first with the mentor of the project). Include a brief, clear work breakdown structure with milestones and deadlines. Make sure to label deliverables as optional or required. It’s OK to include thinking time (“investigation”) in your work schedule. Deliverables should include investigation, coding, deploying, testing and documentation.

MVP:

  • Convert all hard-coded English interface strings to use i18n messages
  • Set up an instance on wmflabs.org for i18n testing, and work with Education Collaborative members to identify additional features that need to be either disabled or generalized from their current Wiki Education Foundation-specific forms
  • Add further configuration options to remove or generalize other features identified by Education Collaborative members, including potentially a feature for "multiwiki" setup, where different courses are working on different wikis.

Timeline:

(in 2 week blocks except where noted)

May 23 - June 3

  • Familiarize with project’s development and staging environments (including wmf labs.org)
  • Review MVP, work plan and schedule with mentors
  • Convert existing strings to i18n in Rails views
  • Convert existing strings to i18n in React views

June 6 - 17

  • Continue to convert existing strings and document protocol for adding new strings to project
  • Deploy instance on wmflabs.org for language testing

June 20 - July 1

  • With feedback from Education Collaborative members, identify additional Dashboard features to be generalized
  • Create a plan for incorporating user experience elements
  • Mock up proposed changes
  • Work with mentors to determine what other dashboard elements could potentially be impacted
  • Document all this

July 4 - 29 (4 weeks)

  • Work on proposed Dashboard generalization feature(s)
  • Add tests
  • Deploy branch to a staging environment for feedback

August 1 - 12

  • Work with mentors to deploy new features to production environment
  • (If time) — Write a blog post or article about the new features and how it can be used by educators
  • Convert any strings from new features to i18n

August 15 - 23 (1 week)

  • Wrap-up and document

Participation

We don't just want to know what you plan to accomplish; we want to know how. Briefly describe your work style: how you plan to communicate progress, where you plan to publish your source code while you're working, how and where you plan to ask for help. (We will tend to favor applicants that demonstrate a clear vision for what it means to be an active participant in our development community.)

Microtasks: fix nav links, standardize recent-activity load, i18n conversion of recent-activity tab text

I have already met with @Ragesoss in person to discuss the scope of the project and get help setting up my development environment (I am connecting via Vagrant/VirtualBox). After having successfully connected to the project, I’m documenting the steps I took (to aid in improving documentation for other would-be contributors) and submitted two PRs for micro tasks that were successfully merged. I’ve joined the WikiMedia-ed IRC channel and plan to be an active participant, question-asker, and initiative-taker. Having gone through code school training and subsequently worked as a Teaching Assistant, I’m well versed in Asking Good Questions — coming prepared to share what the expected behavior is, what is actually happening, and what I’ve tried to troubleshoot it so far.

I’m prepared to communicate my work plan and progress as frequently as needed, and would ideally follow the work and collaboration norms of the WikiMedia-ed team for the scope of this project. My source code could live in a forked repository on Github until it’s ready to be merged with the existing project.

About you

Education completed or in progress: BA English Language and Literature from University of Maryland; Code Fellows certificate in Ruby on Rails, completed 2015

How did you hear about this program?: I learned about Outreachy from Twitter

Will you have any other time commitments, such as school work, another job, planned vacation, etc., during the duration of the program?: No. I am prepared to take on an Outreachy internship as my full time job over the summer.

We advise all candidates eligible to Google Summer of Code and Outreachy (previously known as FOSS Outreach Program for Women) to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)? No, I am only eligible for Outreachy.

We don't just care about your project -- you are a person, and that matters to us! What drives you? What makes you want to make this the most awesomest wiki enhancement ever? You don't need to write out your life story (we can read your blog if we want that), but we want to know a little about what makes you tick. Are you a Wikipedia addict wanting to make your own experience better? Did a wiki with usability problems run over your dog, and you're seeking revenge? :-) What does making this project happen mean to you?

Probably you should read my blog. It’s good! I’ve been blogging about my journey learning to code for the past year. In all seriousness, I’ve worked primarily as an educator and non-profit fundraiser, meaning I talk to people and develop mutually beneficial relationships to support the public good. My first exposure to programming came from working with Fight for the Future raising money with an all-remote team of mostly programmers to support free and open internet advocacy efforts. That experience, combined with my time working at the UW Information School — and, specifically, a Community Data Science Workshop that featured Wikipedia as a data source ripe for analysis — led me to decide to pursue programming full-time.

This project is an ideal fit for me given my background, experience, and passion for education and technology for social justice. What’s more: my training is in Ruby on Rails, a great fit for the Dashboard, and through this experience I’ll gain exposure to React.js, haml, i18n, and more technical tools that will make me a stronger Rails developer.

Past experience

Please describe your experience with any other FOSS projects as a user and as a contributor: I have worked on a number of projects ranging from one contributor (me) to teams of 3-4, all public and open source on Github.

Please describe any relevant projects that you have worked on previously and what knowledge you gained from working on them (include links):

Ruby on Rails portfolio: http://www.marydickson.info -- on-going portfolio site with admin login, uses remote JavaScript for single-page load on project views. Incorporates blog content using WP REST API and ajax. Built on Foundation Zurb.
Ruby on Rails digital docent proof-of-concept, includes has_many/belongs_to and polymorphic relationships.
MVC Blog -- A sample model/view/controller blog in JavaScript. I was a teaching assistant for a class where students built this blog.
U-Fund-It -- Rails app constructed in one week with a team of three using Agile methods
ORDR -- Converted an existing Rails app from MongoDB to Postgres, added notes and contact features (from existing code base), worked in a team of three.

What project(s) are you interested in (these can be in the same or different organizations)?

I’m interested in a variety of civic projects. At this moment I’m working on this one with the WikiEducation Foundation, and helping a local nonprofit with a website refresh. I’m also interested in efforts to support the Seattle homelessness crisis with Open Seattle and Code For America.

Do you have any past experience working in open source projects (MediaWiki or otherwise)? If so, tell us about it! If you have already written a feature or bugfix in a Wikimedia technology such as MediaWiki, link to it here; we will give strong preference to candidates who have done so.

Microtasks: fix nav links, standardize recent-activity load, i18n conversion of recent-activity tab text

I have contributed micro-fixes to the WikiEduDashboard repo including converting the recent-article section text to i18n, which will be directly in the scope of this proposal. Otherwise this is my first major open-source project.


Outreachy Specific Questions for Application

(some duplicates from above)

Name: Mary Dickson
Do you meet the eligibility requirements outlined at https://wiki.gnome.org/Outreachy#Eligibility (if no, explain why not)? Yes
Preferred pronoun (e.g. she, he, they): She
E-mail address: mdickson at gmail
IRC nick: marythought

Internet presence (e.g. web page, blog, portfolio, GitHub, Twitter, LinkedIn links):
Portfolio: http://www.marydickson.info
Github: http://www.github.com/marythought
LinkedIn: https://www.linkedin.com/in/mcdickson

Location (city, state/province, and country): Seattle, WA

Education completed or in progress (include university, major/concentration, degree level, and graduation year): BA English Language and Literature, University of Maryland; Code Fellows certificate in Ruby on Rails, completed, 2015

How did you hear about this program? Twitter

Are you applying for Google Summer of Code and, if so, with what organization(s)? No I am not eligible.

Please describe your experience with the organization's product as a user and as a contributor (include the information, as well as a link or an attachment, for the required contribution you made to the project you are interested in here):

Microtasks: fix nav links, standardize recent-activity load, i18n conversion of recent-activity tab text

I have already met with the project mentor in person to discuss the scope of the project and get help setting up my development environment (I am connecting via Vagrant/VirtualBox). After having successfully connected to the project, I’m documenting the steps I took (to aid in improving documentation for other would-be contributors) and have submitted three PRs for micro tasks that were merged. I’ve joined the WikiMedia-ed IRC channel and plan to be an active participant, question-asker, and initiative-taker.

I have not used the Dashboard as a teacher or student, but I'm familiar with professors at UW who teach classes that do. I also have teaching experience as a middle school teacher and as a teaching assistant with Code Fellows. I worked at UW for over a year and am also therefore acquainted with some of the rhythms and patterns of higher education courses, as well as the types of informal workshops, colloquiums and other learning groups that might be good candidates for the Dashboard in a more generalized class form.

Please describe your experience with any other FOSS projects as a user and as a contributor:
I have worked on a number of projects ranging from one contributor (me) to teams of 3-4, all public and open source on Github.

Please describe any relevant projects that you have worked on previously and what knowledge you gained from working on them (include links):

Ruby on Rails portfolio: http://www.marydickson.info -- on-going portfolio site with admin login, uses remote JavaScript for single-page load on project views. Incorporates blog content using WP REST API and ajax. Built on Foundation Zurb.
Ruby on Rails digital docent proof-of-concept, includes has_many/belongs_to and polymorphic relationships.
MVC Blog -- A sample model/view/controller blog in JavaScript. I was a teaching assistant for a class where students built this blog.
U-Fund-It -- Rails app constructed in one week with a team of three using Agile methods
ORDR -- Converted an existing Rails app from MongoDB to Postgres, added notes and contact features (from existing code base), worked in a team of three.

What project(s) are you interested in (these can be in the same or different organizations)?
I’m interested in a variety of civic projects. At this moment I’m working on this one with the WikiEducation Foundation, and helping a local nonprofit with a website refresh. I’m also interested in efforts to support the Seattle homelessness crisis with Open Seattle and Code For America.

Who is a possible mentor for the project you are most interested in?

Please describe the details and the timeline of the work you plan to accomplish on the project you are most interested in (discuss these first with the mentor of the project):

MVP:

  • Convert all hard-coded English interface strings to use i18n messages
  • Set up an instance on wmflabs.org for i18n testing, and work with Education Collaborative members to identify additional features that need to be either disabled or generalized from their current Wiki Education Foundation-specific forms
  • Add further configuration options to remove or generalize other features identified by Education Collaborative members, including potentially a feature for "multiwiki" setup, where different courses are working on different wikis.

Timeline:

(in 2 week blocks except where noted)

May 23 - June 3

  • Familiarize with project’s development and staging environments (including wmf labs.org)
  • Review MVP, work plan and schedule with mentors
  • Convert existing strings to i18n in Rails views
  • Convert existing strings to i18n in React views

June 6 - 17

  • Continue to convert existing strings and document protocol for adding new strings to project
  • Deploy instance on wmflabs.org for language testing

June 20 - July 1

  • With feedback from Education Collaborative members, identify additional Dashboard features to be generalized
  • Create a plan for incorporating user experience elements
  • Mock up proposed changes
  • Work with mentors to determine what other dashboard elements could potentially be impacted
  • Document all this

July 4 - 29 (4 weeks)

  • Work on proposed Dashboard generalization feature(s)
  • Add tests
  • Deploy branch to a staging environment for feedback

August 1 - 12

  • Work with mentors to deploy new features to production environment
  • (If time) — Write a blog post or article about the new features and how it can be used by educators
  • Convert any strings from new features to i18n

August 15 - 23 (1 week)

  • Wrap-up and document

Will you have any other time commitments, such as school work, exams, research, another job, planned vacation, etc., between May 23 and August 23, 2016? Please provide exact dates for these commitments and the number of hours a week these commitments take.
No. I am prepared to take on an Outreachy internship as my full time job over the summer.

If a student, please list the courses you will be taking between May 23 and August 23, 2016, how many credits you will be taking, and how many credits a full-time student normally takes at your school. Please provide a link or upload your school's academic calendar.
n/a

Event Timeline

Marythought renamed this task from Outreachy Proposal: Make the Make the Education program dashboard usable for all languages and projects to Outreachy Proposal: Make the Education program dashboard usable for all languages and projects.Mar 15 2016, 7:45 PM
JeanFred removed a subscriber: JeanFred.Mar 15 2016, 7:45 PM

@Marythought This is an excellent start. We should talk more about the goals; the wizard parts of it are probably off the table, but there's a lot of other work to do to make sure the core features work for a "multiwiki" setup, where different courses are working on different wikis.

Of course, it's hard to predict what the actual state of it will be by late May, so any proposed timeline will probably need to be considered a rough guess rather than a solid plan at this point.

Thanks for your help! I'm headed out of town this week and wanted to get a proposal in before the deadline, and I'm definitely open to revising this scope of work and plan through April 22 and then again if/when I start in May to make sure I'm working on the most relevant aspects of the globalization process. I'll remove language specific to the wizard and add planning for multiwiki support in the next round of revisions.

Marythought updated the task description. (Show Details)Mar 17 2016, 2:51 AM
IMPORTANT: The deadline for submitting your proposal for Outreachy'12 falls in less than 24 hours at Mar 22 2016, 07:00 pm UTC. . Please make sure that you have a copy of your proposal in the application system at outreachy.gnome.org beforehand, and make sure it has answers to the specific questions in https://wiki.gnome.org/Outreachy#Application_Form. You are encouraged to apply for both GSoC and Outreachy, in case you are eligible.
Marythought updated the task description. (Show Details)Mar 22 2016, 5:34 PM
Nemo_bis removed a subscriber: Nemo_bis.Mar 24 2016, 4:37 PM
01tonythomas closed this task as Declined.Apr 23 2016, 6:19 AM

Thank you for your proposal, but sadly it didn't make it to the selects this time. You are welcome to apply for Outreachy round'13 with the same proposal ( if it still have consensus ) or a new one if eligible. Please notify your siblings below 18 years of age about the Google Code In 2016 ( g.co/gci ) round and add yourself as a mentor for the same, if eligible. Closing the proposal as Declined, see you around in #wikimedia-dev.

01tonythomas reopened this task as Stalled.Apr 23 2016, 7:33 PM

Looks like we have certain confusions here! @Ragesoss and @Capt_Swing, we have discussed over the selections in our conpherence at https://phabricator.wikimedia.org/Z395 ! and it looks like the applicant has her concerns over her withdrawal from the program. It would be great if you can double-check the same with the applicant, and make sure our decision was executed correctly. If not, please leave a message here.

@Marythought : We would love to have you back in the round, if you are available, and please make sure you notify your mentors regarding your decisions. Marina tell's me that we can flex the Outreach rules a bit, in case the your mentors request. My apologies for being orthodox about the age with 'siblings', and the GCI program is open for anyone within the 13 - 17 age group.

Thank you Marina, for bringing in this to me, via Twitter.

@01tonythomas My bad! I should have gotten back in touch with Mary before confirming that she wanted to withdraw. I talked with her by email today, and confirmed. (The last time we had talked, she said that she expected to withdraw because of her new commitments, but wanted to keep the application open until it was necessary to make a decision. I misinterpreted the expectations around that, and the notification from outreachy came as an unpleasant surprise to her.)

I apologize for the communication breakdown.

Ragesoss closed this task as Declined.Apr 23 2016, 8:54 PM
Niharika reopened this task as Open.EditedApr 24 2016, 5:25 AM

Reopening this to explore the possibility of having Mary intern with us this round. @Marythought could you give us a confirmation whether you want to intern with us or withdraw.

Ragesoss closed this task as Declined.May 21 2016, 1:21 AM