Page MenuHomePhabricator

[Proposal: WikiEducation Dashboard] Add Multi-Wiki Support to WikiEduDashboard and Internationalize the Wizards.
Closed, ResolvedPublic

Description

Profile Information

Name: Amit A Joki
Email: amitjoki@gmail.com
IRC: amitjoki
Github: AmitJoki
StackOverflow: Amit Joki
Location: Madurai, Tamil Nadu, India.
Typical working hours: On weekdays, I will be working from 6.30 PM to 12.30 AM and on weekends, I will be working from 9 AM to 5 PM. All the timings are in Indian Standard Time.

Synopsis

Wiki Education Dashboard is an excellent tool for students to learn how Wikipedia operates and promotes collaborative, team-based learning with Wikipedia as the medium.
I have been in touch with core collaborators and have been corresponding on Slack, Zulip, and through GitHub comments and occasionally by Mail. The suggestions given by them have been helpful in getting my PRs done.
Mentor: @Ragesoss

Final Summary

  • Instructors/Facilitators will be able to add specific wikis on which they would like students to work on, during the Course Creation and will also be provided with an option to modify/add wikis after the course has been created. These additional wikis will be tracked.
  • Increased Multi-Wiki Support in the WikiEduDashboard would mean that users will have more control over what is tracked and what isn’t. Issues like #2198 will be addressed.
  • In line with the global inclusiveness that Wikipedia promotes by having the knowledge delivered to those in need in their native tongue, steps will be taken to internationalize WIkiEduDashboard in its entirety. As a first step towards that goal, Assignment Wizard and Course Creation Wizard will be internationalized, setting the pace for further such internationalization of other parts of dashboard which can be worked upon beyond this project’s timeline.
  • As the consequence of multi-wiki support, students will have the freedom to edit wikis of their liking, as long as it stays within the subject proposed by the facilitators, but in case it is needed, the facilitators will be provided with an easy to use component to mark the articles that need not be tracked.
  • The Course Model will have more meaningful AR associations with regards to Wikis and CourseRevisionUpdater and CourseCreation will have changes that reflect the added multi-wiki support.

Timeline


Phase 0 (May 6 to May 27): Community Bonding Period Get familiar with the working of Phabricator. Learn more about the Wikipedia API. Conduct some user research with users of the dashboard to know what they would like to have in terms of multi-wiki support. Learn their use-cases; both from the facilitators and the students’ perspective and shape up the implementation based on the outcome of the research.

Phase 1 (May 28 to June 23):

  • Creating CourseWikis model. This will be the first step of establishing multi-wiki support. This will involve modifying the tracked wikis to include the additional user-specified wikis, the home_wiki and the assigned wikis.
  • Design React Components. Once the backend is done, the React Component to add new wikis to be tracked, its actions, controller, reducer will be developed.
  • Test newly added features. This will involve writing unit tests (for JavaScript/React) and spec/feature tests (for Rails). Proper documentations of the added features is maintained.
  • Phase I Evaluation June 24 - June 28

Phase 2 (June 29 to July 21):

  • Work on issues #2199. This will involve adding the support to track more namespaces which are informative and essential but aren’t being tracked right now.
  • Work on issue #2137. This will involve modifying the PHP Replica endpoints to include the additional mentioned namespaces.
  • Design a component to edit articles. It might so happen that certain off-topic articles be tracked and to filter out such articles, a filter component will be designed.
  • Testing and Documentation. The filter component is tested to make sure it does what it intends to.
  • Phase II Evaluation July 22 - July 26

Phase 3 (July 27 to August 18):

  • Implement a generic translation fetcher. We already have training content’s translations loaded via certain wiki pages. The functionality is in WikiTrainingLoader class. The function is etched out more generically into a separate class to support fetching translated content for Assignment Wizard and Content Creation Wizard.
  • Update corresponding controllers. After the translated content is fetched, the particular controllers in question need to be modified in order to show the translated content whenever applicable.
  • Stretch Goal. Work on issue #2129. This will involve allowing users to be able to track only certain categories of images uploaded instead of the whole of Commons as is done currently.
  • Bug fixes, if any. Test the newly added features. Add i18n documentations. Clean up the code for submission.
  • Final Evaluation August 19 - August 26
  • Result Announced - September 3.

Deliverables

  • Multi-wiki support.
  • UI to add/modify more wikis to the course.
  • Articles Filter Component.
  • Translatable Assignment Wizard, Course Creation Wizard.

Phase I Evaluation

  • CourseWikis Model
  • UI for adding/modifying the wikis.
  • Resolution of issue #2199.

Phase II Evaluation

  • Generic Translation Fetcher
  • Updated Controllers reflecting the preceding changes.
  • Article Filter Component.

Final Evaluation

Participation

  • Following the contribution guidelines, creating new branches on Git, adding the features to the forked repo and issuing a pull request once done with the feature.
  • Online on Slack, IRC in my working hours.
  • Updating the progress on Phabricator.
  • Update the progress after the completion of task each week on my blog.

About Me


Education:

I am in my second year of my college. I am an Information Technology student currently undergoing 4th semester in my 8-semester course.

Where did you hear about GSoC?

I heard about GSoC from my senior who was a GSoC 17 Student with Haiku organisation. I had been a long time FOSS user, raising issues occasionally but always had the guilt of not contributing via code. Hence I have been working on WikiEduDashboard for quite some time now and would now like to be a part of GSOC ‘19.

What other commitments do you have during the course of this program?

I don't have any other commitments in the foreseeable future. The college works usually take an hour or so and I can easily manage that. Even that will be gone when the summer vacation starts; my only priority this summer would be to work on this project, have it completed and tested thoroughly.

What will working on this project mean to you?

Working on this project will mean a lot to me in terms of personal satisfaction. There's pride in knowing that my code will be part of something as amazing as Wikimedia. On the technical front, working on this project will acclimatise me to the ways of how real-time applications are built, tested and deployed. Also, working on this project where every commit to the master branch will be deployed real-time will give me the confidence to continue working on other FOSS projects in the future and will serve as a self-validation.

Past Experience

I have been solving lots of issues in the WikiEduDashboard Github repository and I am proficient in Ruby on Rails and JavaScript. I’ve had fair amount of experience working on ReactJS while I contributed to the WikiEduDashboard. It would be fair enough to say that I’ve been with the project quite long enough to be able to work on each aspect of it efficiently.

Microtasks:

I’ve 31 pull requests merged and listing each and everyone of them would not be productive. Instead, my pull requests can be seen here - https://github.com/WikiEducationFoundation/WikiEduDashboard/pulls/AmitJoki
Specifically, the below PRs are about facilitating translation and following the workflow in these PRs would be an option to work on the internationalization of WikiEduDashboard.
Pull Request #2341 (merged)
Pull Request #2226 (merged)

Event Timeline

Congratulations on completing the project! If there isn't anything remaining in your proposal to address, feel free to close this task. Before you do so, make sure your project is listed here https://www.mediawiki.org/wiki/Google_Summer_of_Code/Past_projects#2019 and has the following information: Student name, Mentors, Relevant links and Outcomes (in not more than two lines).

This project shifted focus somewhat in the final propoal, but it's complete.