Page MenuHomePhabricator

Proposal for Wiki Education Dashboard Android App (Outreachy Round 19)
Open, Needs TriagePublic

Description

Profile Information

Name: Melissa Shields
Email: mshieldsny@gmail.com
IRC nickname on Freenode: None
GitHub: melissasny1
Location: New York (GMT-5)
Typical working hours: Monday - Friday, between 10am - 6pm (GMT-5)

Synopsis

The main feature of this app is to support Wikipedia education assignments, edit-a-thons, and other editing projects. It provides data and course management features for groups of editors — instructors, students, and others — who are working on Wikipedia, Wikidata, and other Wikimedia wikis. Users log in with their Wikipedia accounts (through OAuth) and allow the Dashboard to make edits on their behalf. The Dashboard automates many of the standard elements of organizing and participating in a Wikipedia classroom assignment, edit-a-thon, or other wiki contribution campaign.

Deliverables

  1. Wiki Education Dashboard User Engagement: Engage with the community (current app users and non-users) and gather feedback to improve the app and drive app usage.
  2. Add Features and Enhancements to the app with user outreach and testing to add functionality and improve code quality (to be prioritized with mentor and based on user feedback):

    a. Add a list of my articles (articles assigned to me) on the course page.

    b. As a program organizer, create accounts for edit-a-thon participants

    c. Join a course (that does not require a passcode or require a passcode)

    d. Assign yourself s for a course you are in.

    e. Campaign Details Page

    f. Offline Support in Android App (using local Database)

    g. Write unit tests

    h. Migrate app from MVP to MVVM architecture

    i. Additional features/improvements to be determined based upon user feedback
  3. Fix bugs

Timeline

Week 1 ( Dec. 2 - Dec. 6)

  • Identify current app users and website-only users; develop app feedback survey (consider using web-based survey tool to gather feedback)
  • Clarify and confirm my understanding of the existing list of features/enhancements with the mentor
  • Familiarize myself with the WikiEduDashboard APIs
  • Ongoing work to fix bugs and remaining newcomer issues (max. 20% of time)

Weeks 2 and 3 (Dec. 9 - Dec.20)

  • Monday, December 9: Publish app feedback survey to community (responses due Friday, December 20)
  • Add Offline Support in Android App (using Room)
  • Add Campaigns Detail Page
  • Ongoing work to fix bugs and remaining newcomer issues (max. 20% of time)

Week 4 ( Dec 23 - Dec. 27: light week due to the Christmas holiday)

  • Review app feedback survey results with mentor and review/update prioritization of Features and Enhancements based on survey results
  • Ongoing work on bug fixes

Week 5 ( beginning Monday, December 30)

  • Communicate to the community the app development path forward, based on the app feedback survey, and invite participation in the pre-release testing mentioned below (if we decide to implement).
  • Idea: Use Google Play testing for ongoing pre-release testing and feedback by interested community members as new features are developed (use either Google Play internal testing or closed release testing depending upon the number of users who will participate).
    • Set-up test environment.
    • Release Offline Support in Android App and Campaign Details Page to the test environment.
  • Begin work on As a program organizer, create accounts for edit-a-thon participants.
  • Ongoing work on bug fixes (max. 20% of time)

Week 6 ( beginning Monday, January 6)

  • Complete work on As a program organizer, create accounts for edit-a-thon participants and release to test environment (if implemented).
  • Add a list of my articles (articles assigned to me) on the course page and release to test environment (if implemented).
  • Review/address test environment feedback on new features (if implemented)
  • Ongoing work on bug fixes (max. 20% of time)

Week 7 ( beginning Monday, January 13)

  • Join a course (that does not require a passcode or require a passcode) and release to test environment (if implemented).
  • Review/address test environment feedback on new features (if implemented)
  • Ongoing work on bug fixes (max. 20% of time)

Week 8 ( beginning Monday, January 20)

  • Assign yourself s for a course you are in.
  • Review/address test environment feedback on new features (if implemented)
  • Ongoing work on bug fixes (max. 20% of time)

Week 9 ( beginning Monday, January 27)

  • Learn how to migrate the app from MVP to MVVM using Android Architecture Components (note: this migration is new to me and I am assuming it is a large, complex task for an app like this, and have allocated substantial time for learning and implementation. If that’s not the case, we can adjust this part of the timeline accordingly.)
  • Review/address test environment feedback on new features (if implemented)
  • Ongoing work on bug fixes (max. 20% of time)

Week 10 ( beginning Monday, February 3)

  • Migrate app from MVP to MVVM
  • Review/address test environment feedback on new features (if implemented)

Week 11 ( beginning Monday, February 10)

  • Migrate app from MVP to MVVM
  • Review/address test environment feedback on new features (if implemented)

Week 12 ( beginning Monday, February 17)

  • Monday, February 17: Release new version of the app on Google Play.
  • Communicate new app version release to the community and solicit feedback.

Week 13 ( beginning Monday, February 24)

  • Review community feedback on new app version, prioritize and begin to address new issues raised, as feasible.
  • Finalize documentation and any outstanding items related to work completed during the internship period.

Participation

Describe how you plan to communicate progress and ask for help, where you plan to publish your source code, etc
I will be on Slack when I'm working; will plan to push code to GitHub daily or almost daily; and will be available for mentor/team updates and meetings as agreed and as needed.

About Me

  • Education and experience

I first became interested in coding when I took a front-end web development (CSS3 and HTML5) and Ruby-on-Rails course at General Assembly because I wanted to learn how to build a website. I loved it and created a Ruby-on-Rails project that was the precursor to the Android app I later created as my final project for the Android Developer Nanodegree program (see below).

When I decided to further pursue my new passion for coding, focused on Android mobile development, I began learning online with Udacity, first tackling Java and then earning an Android Basics Nanodegree and an Android Developer Nanodegree (both of which required that students use Java). The Udacity Nanodegree programs, developed with Google, focus on teaching best practices in Android development and require participants to build several apps from the ground up, reviewed by experienced developers. For my final project for the Android Developer Nanodegree, I designed and built the NYC4Free Guide, a curated guide to free NYC cultural events, and subsequently published it to the Google Play Store, where you can download it today at NYC4Free Guide. For this project I used Android Room to store favorites locally, created a home screen widget, and wrote UI tests using Espresso. The code for this app and several other Nanodegree projects are on GitHub.

I recently completed Udacity’s Kotlin Bootcamp for Programmers and am very excited about this opportunity to work with the open source community, using the skills I've developed and gaining more experience working with Kotlin, Android Architecture, new libraries and tools and generally becoming a better Android developer while contributing to a very worthwhile project.

I have a B.A. in Economics from Swarthmore College in Swarthmore, PA.

  • How did you hear about this program? I'm a member of Women Who Code and learned about this opportunity from them.
  • Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program? I will not have any other time commitments for the duration of the program. I would like to work a reduced schedule from December 24 - January 1 to celebrate the Christmas holiday with my family.

Event Timeline

Melshnyc created this task.Mon, Nov 4, 3:06 AM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptMon, Nov 4, 3:06 AM

Thanks for creating a proposal! As we are past the deadline, if you would like us to consider your proposal for review, please move it to the submitted column. Thank you!

Thanks, done - moved to Proposals Submitted.